svn commit: samba r3788 - in branches/SAMBA_4_0/source/rpc_server/samr: .

metze at samba.org metze at samba.org
Tue Nov 16 13:20:33 GMT 2004


Author: metze
Date: 2004-11-16 13:20:32 +0000 (Tue, 16 Nov 2004)
New Revision: 3788

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

Log:
give new accounts and groups a objectGUID

metze

Modified:
   branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c


Changeset:
Modified: branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c	2004-11-16 13:14:02 UTC (rev 3787)
+++ branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c	2004-11-16 13:20:32 UTC (rev 3788)
@@ -418,7 +418,8 @@
 	const char *name;
 	struct ldb_message msg;
 	uint32_t rid;
-	const char *groupname, *sidstr;
+	const char *groupname, *sidstr, *guidstr;
+	struct GUID guid;
 	time_t now = time(NULL);
 	struct dcesrv_handle *g_handle;
 	int ret;
@@ -469,26 +470,27 @@
 		return NT_STATUS_NO_MEMORY;
 	}
 
+	/* a new GUID */
+	guid = GUID_random();
+	guidstr = GUID_string(mem_ctx, &guid);
+	if (!guidstr) {
+		return NT_STATUS_NO_MEMORY;
+	}
+
 	/* add core elements to the ldb_message for the user */
 	msg.dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Users,%s", groupname,
 				 d_state->domain_dn);
 	if (!msg.dn) {
 		return NT_STATUS_NO_MEMORY;
 	}
-	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg,
-			     "name", groupname);
-	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg,
-			     "cn", groupname);
-	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg,
-			     "sAMAccountName", groupname);
-	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg,
-			     "objectClass", "group");
-	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg,
-			     "objectSid", sidstr);
-	samdb_msg_set_ldaptime(d_state->sam_ctx, mem_ctx, &msg,
-			       "whenCreated", now);
-	samdb_msg_set_ldaptime(d_state->sam_ctx, mem_ctx, &msg,
-			       "whenChanged", now);
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "name", groupname);
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "cn", groupname);
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "sAMAccountName", groupname);
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "objectClass", "group");
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "objectSid", sidstr);
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "objectGUID", guidstr);
+	samdb_msg_set_ldaptime(d_state->sam_ctx, mem_ctx, &msg, "whenCreated", now);
+	samdb_msg_set_ldaptime(d_state->sam_ctx, mem_ctx, &msg, "whenChanged", now);
 			     
 	/* create the group */
 	ret = samdb_add(d_state->sam_ctx, mem_ctx, &msg);
@@ -552,7 +554,8 @@
 	const char *name;
 	struct ldb_message msg;
 	uint32_t rid;
-	const char *account_name, *sidstr;
+	const char *account_name, *sidstr, *guidstr;
+	struct GUID guid;
 	time_t now = time(NULL);
 	struct dcesrv_handle *u_handle;
 	int ret;
@@ -648,6 +651,13 @@
 		return NT_STATUS_NO_MEMORY;
 	}
 
+	/* a new GUID */
+	guid = GUID_random();
+	guidstr = GUID_string(mem_ctx, &guid);
+	if (!guidstr) {
+		return NT_STATUS_NO_MEMORY;
+	}
+
 	/* add core elements to the ldb_message for the user */
 	msg.dn = talloc_asprintf(mem_ctx, "CN=%s,CN=%s,%s", account_name, container, d_state->domain_dn);
 	if (!msg.dn) {
@@ -661,6 +671,7 @@
 		samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "objectClass", additional_class);
 	}
 	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "objectSid", sidstr);
+	samdb_msg_add_string(d_state->sam_ctx, mem_ctx, &msg, "objectGUID", guidstr);
 	samdb_msg_set_ldaptime(d_state->sam_ctx, mem_ctx, &msg, "whenCreated", now);
 	samdb_msg_set_ldaptime(d_state->sam_ctx, mem_ctx, &msg, "whenChanged", now);
 



More information about the samba-cvs mailing list