summaryrefslogtreecommitdiff
path: root/source3/librpc/ndr/sid.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-04-17 18:29:48 +0200
committerGünther Deschner <gd@samba.org>2008-04-17 18:49:30 +0200
commit4f46c2d9268ffb418e4f43baf479c03384e2ddda (patch)
tree2c55ac27bd9dca6bc61a600d7cfb90ffcdec1fa0 /source3/librpc/ndr/sid.c
parent452789ca801867e3ad99101f81180a468902d90b (diff)
downloadsamba-4f46c2d9268ffb418e4f43baf479c03384e2ddda.tar.gz
samba-4f46c2d9268ffb418e4f43baf479c03384e2ddda.tar.bz2
samba-4f46c2d9268ffb418e4f43baf479c03384e2ddda.zip
IDL: Re-run make idl and hand merge some required functions from Samba 4.
Guenther (This used to be commit edb0092e4d66496181de4e21c91d398d54208e60)
Diffstat (limited to 'source3/librpc/ndr/sid.c')
-rw-r--r--source3/librpc/ndr/sid.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/source3/librpc/ndr/sid.c b/source3/librpc/ndr/sid.c
index b6ec045806..ed27375de1 100644
--- a/source3/librpc/ndr/sid.c
+++ b/source3/librpc/ndr/sid.c
@@ -187,3 +187,44 @@ enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const
return NDR_ERR_SUCCESS;
}
+
+/*
+ parse a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
+*/
+enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
+{
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ if (ndr->data_size == ndr->offset) {
+ ZERO_STRUCTP(sid);
+ return NDR_ERR_SUCCESS;
+ }
+
+ return ndr_pull_dom_sid(ndr, ndr_flags, sid);
+}
+
+/*
+ push a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
+*/
+enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
+{
+ struct dom_sid zero_sid;
+
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ if (!sid) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ ZERO_STRUCT(zero_sid);
+
+ if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ return ndr_push_dom_sid(ndr, ndr_flags, sid);
+}