svn commit: samba r3358 - in branches/SAMBA_4_0/source: libcli/util
librpc/ndr
abartlet at samba.org
abartlet at samba.org
Fri Oct 29 08:31:28 GMT 2004
Author: abartlet
Date: 2004-10-29 08:31:27 +0000 (Fri, 29 Oct 2004)
New Revision: 3358
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=3358
Log:
Try to put all the basic struct dom_sid manipulation functions in one
place. (I always have trouble finding one half or the other).
Andrew Bartlett
Modified:
branches/SAMBA_4_0/source/libcli/util/dom_sid.c
branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c
Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/dom_sid.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/util/dom_sid.c 2004-10-29 07:29:26 UTC (rev 3357)
+++ branches/SAMBA_4_0/source/libcli/util/dom_sid.c 2004-10-29 08:31:27 UTC (rev 3358)
@@ -23,6 +23,39 @@
#include "includes.h"
/*
+ convert a dom_sid to a string
+*/
+char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
+{
+ int i, ofs, maxlen;
+ uint32_t ia;
+ char *ret;
+
+ if (!sid) {
+ return talloc_strdup(mem_ctx, "(NULL SID)");
+ }
+
+ maxlen = sid->num_auths * 11 + 25;
+ ret = talloc(mem_ctx, maxlen);
+ if (!ret) return talloc_strdup(mem_ctx, "(SID ERR)");
+
+ ia = (sid->id_auth[5]) +
+ (sid->id_auth[4] << 8 ) +
+ (sid->id_auth[3] << 16) +
+ (sid->id_auth[2] << 24);
+
+ ofs = snprintf(ret, maxlen, "S-%u-%lu",
+ (uint_t)sid->sid_rev_num, (unsigned long)ia);
+
+ for (i = 0; i < sid->num_auths; i++) {
+ ofs += snprintf(ret + ofs, maxlen - ofs, "-%lu", (unsigned long)sid->sub_auths[i]);
+ }
+
+ return ret;
+}
+
+
+/*
convert a string to a dom_sid, returning a talloc'd dom_sid
*/
struct dom_sid *dom_sid_parse_talloc(TALLOC_CTX *mem_ctx, const char *sidstr)
@@ -121,3 +154,27 @@
return ret;
}
+/*
+ add a rid to a domain dom_sid to make a full dom_sid
+*/
+struct dom_sid *dom_sid_add_rid(TALLOC_CTX *mem_ctx,
+ const struct dom_sid *domain_sid,
+ uint32_t rid)
+{
+ struct dom_sid *sid;
+
+ sid = talloc_p(mem_ctx, struct dom_sid);
+ if (!sid) return NULL;
+
+ *sid = *domain_sid;
+ /*TODO: use realloc! */
+ sid->sub_auths = talloc_array_p(mem_ctx, uint32_t, sid->num_auths+1);
+ if (!sid->sub_auths) {
+ return NULL;
+ }
+ memcpy(sid->sub_auths, domain_sid->sub_auths, sid->num_auths*sizeof(uint32_t));
+ sid->sub_auths[sid->num_auths] = rid;
+ sid->num_auths++;
+ return sid;
+}
+
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c 2004-10-29 07:29:26 UTC (rev 3357)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c 2004-10-29 08:31:27 UTC (rev 3358)
@@ -51,39 +51,6 @@
/*
- convert a dom_sid to a string
-*/
-char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
-{
- int i, ofs, maxlen;
- uint32_t ia;
- char *ret;
-
- if (!sid) {
- return talloc_strdup(mem_ctx, "(NULL SID)");
- }
-
- maxlen = sid->num_auths * 11 + 25;
- ret = talloc(mem_ctx, maxlen);
- if (!ret) return talloc_strdup(mem_ctx, "(SID ERR)");
-
- ia = (sid->id_auth[5]) +
- (sid->id_auth[4] << 8 ) +
- (sid->id_auth[3] << 16) +
- (sid->id_auth[2] << 24);
-
- ofs = snprintf(ret, maxlen, "S-%u-%lu",
- (uint_t)sid->sid_rev_num, (unsigned long)ia);
-
- for (i = 0; i < sid->num_auths; i++) {
- ofs += snprintf(ret + ofs, maxlen - ofs, "-%lu", (unsigned long)sid->sub_auths[i]);
- }
-
- return ret;
-}
-
-
-/*
print a dom_sid
*/
void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, struct dom_sid *sid)
@@ -106,30 +73,6 @@
}
/*
- add a rid to a domain dom_sid to make a full dom_sid
-*/
-struct dom_sid *dom_sid_add_rid(TALLOC_CTX *mem_ctx,
- const struct dom_sid *domain_sid,
- uint32_t rid)
-{
- struct dom_sid *sid;
-
- sid = talloc_p(mem_ctx, struct dom_sid);
- if (!sid) return NULL;
-
- *sid = *domain_sid;
- /*TODO: use realloc! */
- sid->sub_auths = talloc_array_p(mem_ctx, uint32_t, sid->num_auths+1);
- if (!sid->sub_auths) {
- return NULL;
- }
- memcpy(sid->sub_auths, domain_sid->sub_auths, sid->num_auths*sizeof(uint32_t));
- sid->sub_auths[sid->num_auths] = rid;
- sid->num_auths++;
- return sid;
-}
-
-/*
return the wire size of a security_ace
*/
size_t ndr_size_security_ace(struct security_ace *ace)
More information about the samba-cvs
mailing list