svn commit: samba r25048 - in branches/SAMBA_4_0/source/libnet: .

abartlet at samba.org abartlet at samba.org
Mon Sep 10 01:39:25 GMT 2007


Author: abartlet
Date: 2007-09-10 01:39:20 +0000 (Mon, 10 Sep 2007)
New Revision: 25048

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25048

Log:
>From the archives (patch found in one of my old working trees):

Try two different DNs, when performing a samsync from an AD server.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c	2007-09-09 19:34:30 UTC (rev 25047)
+++ branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c	2007-09-10 01:39:20 UTC (rev 25048)
@@ -432,14 +432,21 @@
 		if (ret != 0) {
 			struct ldb_dn *first_try_dn = msg->dn;
 			/* Try again with the default DN */
-			msg->dn = talloc_steal(msg, msgs[0]->dn);
-			ret = samdb_add(state->sam_ldb, mem_ctx, msg);
-			if (ret != 0) {
-				*error_string = talloc_asprintf(mem_ctx, "Failed to create user record.  Tried both %s and %s: %s",
+			if (!remote_msgs) {
+				*error_string = talloc_asprintf(mem_ctx, "Failed to create user record.  Tried %s: %s",
 								ldb_dn_get_linearized(first_try_dn),
-								ldb_dn_get_linearized(msg->dn),
 								ldb_errstring(state->sam_ldb));
 				return NT_STATUS_INTERNAL_DB_CORRUPTION;
+			} else {
+				msg->dn = talloc_steal(msg, remote_msgs[0]->dn);
+				ret = samdb_add(state->sam_ldb, mem_ctx, msg);
+				if (ret != 0) {
+					*error_string = talloc_asprintf(mem_ctx, "Failed to create user record.  Tried both %s and %s: %s",
+									ldb_dn_get_linearized(first_try_dn),
+									ldb_dn_get_linearized(msg->dn),
+									ldb_errstring(state->sam_ldb));
+					return NT_STATUS_INTERNAL_DB_CORRUPTION;
+				}
 			}
 		}
 	} else {



More information about the samba-cvs mailing list