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