diff options
author | Stefan Metzmacher <metze@samba.org> | 2008-11-07 21:31:04 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-11-08 08:02:26 +0100 |
commit | 0d2551772301e9c25e63bb02479e09fc45fdaa26 (patch) | |
tree | 5ad26583f44ee83ee3a6b29a98ae7608bb912c1c /source3/librpc/ndr/sid.c | |
parent | 9579036dc5ce74820d12dc3a1ec2f1cd4a93e246 (diff) | |
download | samba-0d2551772301e9c25e63bb02479e09fc45fdaa26.tar.gz samba-0d2551772301e9c25e63bb02479e09fc45fdaa26.tar.bz2 samba-0d2551772301e9c25e63bb02479e09fc45fdaa26.zip |
s3: security.idl: split of dom_sid stuff into dom_sid.idl
And use the toplevel ndr_sec_helper.c
metze
Diffstat (limited to 'source3/librpc/ndr/sid.c')
-rw-r--r-- | source3/librpc/ndr/sid.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/source3/librpc/ndr/sid.c b/source3/librpc/ndr/sid.c index ed27375de1..39b7e3cd59 100644 --- a/source3/librpc/ndr/sid.c +++ b/source3/librpc/ndr/sid.c @@ -21,6 +21,35 @@ #include "includes.h" +/* + return the wire size of a dom_sid +*/ +size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags) +{ + if (!sid) return 0; + return 8 + 4*sid->num_auths; +} + +size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags) +{ + struct dom_sid zero_sid; + + if (!sid) return 0; + + ZERO_STRUCT(zero_sid); + + if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) { + return 0; + } + + return 8 + 4*sid->num_auths; +} + +size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags) +{ + return ndr_size_dom_sid28(sid, flags); +} + enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r) { uint32_t cntr_sub_auths_0; @@ -228,3 +257,27 @@ enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const s return ndr_push_dom_sid(ndr, ndr_flags, sid); } + +/* + print a dom_sid +*/ +void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, const struct dom_sid *sid) +{ + ndr->print(ndr, "%-25s: %s", name, dom_sid_string(ndr, sid)); +} + +void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct dom_sid *sid) +{ + ndr_print_dom_sid(ndr, name, sid); +} + +void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid) +{ + ndr_print_dom_sid(ndr, name, sid); +} + +void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct dom_sid *sid) +{ + ndr_print_dom_sid(ndr, name, sid); +} + |