[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-test-1634-g1781a57
Günther Deschner
gd at samba.org
Thu Jan 24 13:01:38 GMT 2008
The branch, v3-2-test has been updated
via 1781a57b18f681f1bc03873330147a813f10eba2 (commit)
via 57f2b8d0a8d8987a62419e9852ac9a9cf39c3109 (commit)
via 3b87c5ce4f74f8dd01bfdf8859c6c832da15cd24 (commit)
from 9b5f69cb1f7d22174b2cd67ebf02a271d4bf6e2f (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit 1781a57b18f681f1bc03873330147a813f10eba2
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 24 13:53:36 2008 +0100
Re-run make idl and use generated ndr based on samba4 security.idl (except for DOM_SID).
Guenther
commit 57f2b8d0a8d8987a62419e9852ac9a9cf39c3109
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 24 13:45:38 2008 +0100
Merge over security.idl from samba4.
Guenther
commit 3b87c5ce4f74f8dd01bfdf8859c6c832da15cd24
Author: Günther Deschner <gd at samba.org>
Date: Thu Jan 24 11:44:29 2008 +0100
Fix samr_EnumDomainUsers in samba3, must not be a ref pointer here.
Guenther
-----------------------------------------------------------------------
Summary of changes:
source/Makefile.in | 3 +-
source/include/smb.h | 5 +-
source/librpc/gen_ndr/cli_samr.c | 4 +-
source/librpc/gen_ndr/ndr_samr.c | 28 +-
.../ndr_sec_helper.c => gen_ndr/ndr_security.c} | 420 +++++++----
source/librpc/gen_ndr/ndr_security.h | 41 +-
source/librpc/gen_ndr/samr.h | 2 +-
source/librpc/gen_ndr/security.h | 335 ++++++++-
source/librpc/idl/samr.idl | 2 +-
source/librpc/idl/security.idl | 31 +-
source/librpc/ndr/libndr.h | 2 +-
source/librpc/ndr/ndr_sec_helper.c | 815 --------------------
source/librpc/ndr/security.h | 257 ------
source/librpc/ndr/sid.c | 67 --
14 files changed, 692 insertions(+), 1320 deletions(-)
copy source/librpc/{ndr/ndr_sec_helper.c => gen_ndr/ndr_security.c} (68%)
delete mode 100644 source/librpc/ndr/security.h
Changeset truncated at 500 lines:
diff --git a/source/Makefile.in b/source/Makefile.in
index c519ff8..5b408a5 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -257,6 +257,7 @@ LIBNDR_OBJ = librpc/ndr/ndr_basic.o \
librpc/ndr/ndr.o \
librpc/ndr/ndr_misc.o \
librpc/gen_ndr/ndr_misc.o \
+ librpc/gen_ndr/ndr_security.o \
librpc/ndr/ndr_sec_helper.o \
librpc/ndr/ndr_string.o \
librpc/ndr/sid.o \
@@ -1091,7 +1092,7 @@ modules: SHOWFLAGS $(MODULES)
## Perl IDL Compiler
IDL_FILES = unixinfo.idl lsa.idl dfs.idl echo.idl winreg.idl initshutdown.idl \
srvsvc.idl svcctl.idl eventlog.idl wkssvc.idl netlogon.idl notify.idl \
- epmapper.idl messaging.idl xattr.idl misc.idl samr.idl
+ epmapper.idl messaging.idl xattr.idl misc.idl samr.idl security.idl
idl:
@IDL_FILES="$(IDL_FILES)" CPP="$(CPP)" PERL="$(PERL)" \
diff --git a/source/include/smb.h b/source/include/smb.h
index f3cf1db..3160365 100644
--- a/source/include/smb.h
+++ b/source/include/smb.h
@@ -259,9 +259,6 @@ typedef struct dom_sid {
uint32 sub_auths[MAXSUBAUTHS];
} DOM_SID;
-#define dom_sid2 dom_sid
-#define dom_sid28 dom_sid
-
enum id_mapping {
ID_UNKNOWN = 0,
ID_MAPPED,
@@ -296,7 +293,7 @@ typedef struct data_blob {
extern const DATA_BLOB data_blob_null;
#include "librpc/gen_ndr/misc.h"
-#include "librpc/ndr/security.h"
+#include "librpc/gen_ndr/security.h"
#include "librpc/ndr/libndr.h"
#include "librpc/gen_ndr/lsa.h"
#include "librpc/gen_ndr/dfs.h"
diff --git a/source/librpc/gen_ndr/cli_samr.c b/source/librpc/gen_ndr/cli_samr.c
index 99e7e45..73c123b 100644
--- a/source/librpc/gen_ndr/cli_samr.c
+++ b/source/librpc/gen_ndr/cli_samr.c
@@ -621,7 +621,9 @@ NTSTATUS rpccli_samr_EnumDomainUsers(struct rpc_pipe_client *cli,
/* Return variables */
*resume_handle = *r.out.resume_handle;
- *sam = *r.out.sam;
+ if (sam && r.out.sam) {
+ *sam = *r.out.sam;
+ }
*num_entries = *r.out.num_entries;
/* Return result */
diff --git a/source/librpc/gen_ndr/ndr_samr.c b/source/librpc/gen_ndr/ndr_samr.c
index f407fcf..ed80da2 100644
--- a/source/librpc/gen_ndr/ndr_samr.c
+++ b/source/librpc/gen_ndr/ndr_samr.c
@@ -6409,10 +6409,10 @@ static enum ndr_err_code ndr_push_samr_EnumDomainUsers(struct ndr_push *ndr, int
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
- if (r->out.sam == NULL) {
- return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.sam));
+ if (r->out.sam) {
+ NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sam));
}
- NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sam));
if (r->out.num_entries == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -6424,6 +6424,7 @@ static enum ndr_err_code ndr_push_samr_EnumDomainUsers(struct ndr_push *ndr, int
static enum ndr_err_code ndr_pull_samr_EnumDomainUsers(struct ndr_pull *ndr, int flags, struct samr_EnumDomainUsers *r)
{
+ uint32_t _ptr_sam;
TALLOC_CTX *_mem_save_domain_handle_0;
TALLOC_CTX *_mem_save_resume_handle_0;
TALLOC_CTX *_mem_save_sam_0;
@@ -6449,8 +6450,6 @@ static enum ndr_err_code ndr_pull_samr_EnumDomainUsers(struct ndr_pull *ndr, int
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
NDR_PULL_ALLOC(ndr, r->out.resume_handle);
*r->out.resume_handle = *r->in.resume_handle;
- NDR_PULL_ALLOC(ndr, r->out.sam);
- ZERO_STRUCTP(r->out.sam);
NDR_PULL_ALLOC(ndr, r->out.num_entries);
ZERO_STRUCTP(r->out.num_entries);
}
@@ -6462,13 +6461,18 @@ static enum ndr_err_code ndr_pull_samr_EnumDomainUsers(struct ndr_pull *ndr, int
NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
- if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
+ if (_ptr_sam) {
NDR_PULL_ALLOC(ndr, r->out.sam);
+ } else {
+ r->out.sam = NULL;
+ }
+ if (r->out.sam) {
+ _mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, 0);
+ NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sam));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, 0);
}
- _mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sam));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.num_entries);
}
@@ -6512,7 +6516,9 @@ _PUBLIC_ void ndr_print_samr_EnumDomainUsers(struct ndr_print *ndr, const char *
ndr->depth--;
ndr_print_ptr(ndr, "sam", r->out.sam);
ndr->depth++;
- ndr_print_samr_SamArray(ndr, "sam", r->out.sam);
+ if (r->out.sam) {
+ ndr_print_samr_SamArray(ndr, "sam", r->out.sam);
+ }
ndr->depth--;
ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
ndr->depth++;
diff --git a/source/librpc/ndr/ndr_sec_helper.c b/source/librpc/gen_ndr/ndr_security.c
similarity index 68%
copy from source/librpc/ndr/ndr_sec_helper.c
copy to source/librpc/gen_ndr/ndr_security.c
index d1938b9..ab34143 100644
--- a/source/librpc/ndr/ndr_sec_helper.c
+++ b/source/librpc/gen_ndr/ndr_security.c
@@ -1,95 +1,9 @@
-/*
- Unix SMB/CIFS implementation.
-
- fast routines for getting the wire size of security objects
-
- Copyright (C) Andrew Tridgell 2003
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
+/* parser auto-generated by pidl */
#include "includes.h"
+#include "librpc/gen_ndr/ndr_security.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;
-}
-
-/*
- return the wire size of a security_ace
-*/
-size_t ndr_size_security_ace(const struct security_ace *ace, int flags)
-{
- if (!ace) return 0;
- return 8 + ndr_size_dom_sid(&ace->trustee, flags);
-}
-
-
-/*
- return the wire size of a security_acl
-*/
-size_t ndr_size_security_acl(const struct security_acl *acl, int flags)
-{
- size_t ret;
- int i;
- if (!acl) return 0;
- ret = 8;
- for (i=0;i<acl->num_aces;i++) {
- ret += ndr_size_security_ace(&acl->aces[i], flags);
- }
- return ret;
-}
-
-/*
- return the wire size of a security descriptor
-*/
-size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int flags)
-{
- size_t ret;
- if (!sd) return 0;
-
- ret = 20;
- ret += ndr_size_dom_sid(sd->owner_sid, flags);
- ret += ndr_size_dom_sid(sd->group_sid, flags);
- ret += ndr_size_security_acl(sd->dacl, flags);
- ret += ndr_size_security_acl(sd->sacl, flags);
- return ret;
-}
-
-/*
- 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);
-}
-
+#include "librpc/gen_ndr/ndr_misc.h"
static enum ndr_err_code ndr_push_security_ace_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
{
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
@@ -104,7 +18,7 @@ static enum ndr_err_code ndr_pull_security_ace_flags(struct ndr_pull *ndr, int n
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_flags(struct ndr_print *ndr, const char *name, uint8_t r)
+_PUBLIC_ void ndr_print_security_ace_flags(struct ndr_print *ndr, const char *name, uint8_t r)
{
ndr_print_uint8(ndr, name, r);
ndr->depth++;
@@ -129,11 +43,11 @@ static enum ndr_err_code ndr_pull_security_ace_type(struct ndr_pull *ndr, int nd
{
uint8_t v;
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
- *r = (enum security_ace_type)v;
+ *r = v;
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_type(struct ndr_print *ndr, const char *name, enum security_ace_type r)
+_PUBLIC_ void ndr_print_security_ace_type(struct ndr_print *ndr, const char *name, enum security_ace_type r)
{
const char *val = NULL;
@@ -165,7 +79,7 @@ static enum ndr_err_code ndr_pull_security_ace_object_flags(struct ndr_pull *ndr
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_object_flags(struct ndr_print *ndr, const char *name, uint32_t r)
+_PUBLIC_ void ndr_print_security_ace_object_flags(struct ndr_print *ndr, const char *name, uint32_t r)
{
ndr_print_uint32(ndr, name, r);
ndr->depth++;
@@ -176,9 +90,8 @@ void ndr_print_security_ace_object_flags(struct ndr_print *ndr, const char *name
static enum ndr_err_code ndr_push_security_ace_object_type(struct ndr_push *ndr, int ndr_flags, const union security_ace_object_type *r)
{
- int level;
- level = ndr_push_get_switch_value(ndr, r);
if (ndr_flags & NDR_SCALARS) {
+ int level = ndr_push_get_switch_value(ndr, r);
switch (level) {
case SEC_ACE_OBJECT_TYPE_PRESENT:
NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->type));
@@ -190,8 +103,10 @@ static enum ndr_err_code ndr_push_security_ace_object_type(struct ndr_push *ndr,
}
}
if (ndr_flags & NDR_BUFFERS) {
+ int level = ndr_push_get_switch_value(ndr, r);
switch (level) {
case SEC_ACE_OBJECT_TYPE_PRESENT:
+ NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->type));
break;
default:
@@ -220,6 +135,7 @@ static enum ndr_err_code ndr_pull_security_ace_object_type(struct ndr_pull *ndr,
if (ndr_flags & NDR_BUFFERS) {
switch (level) {
case SEC_ACE_OBJECT_TYPE_PRESENT:
+ NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->type));
break;
default:
@@ -230,7 +146,7 @@ static enum ndr_err_code ndr_pull_security_ace_object_type(struct ndr_pull *ndr,
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_object_type(struct ndr_print *ndr, const char *name, const union security_ace_object_type *r)
+_PUBLIC_ void ndr_print_security_ace_object_type(struct ndr_print *ndr, const char *name, const union security_ace_object_type *r)
{
int level;
level = ndr_print_get_switch_value(ndr, r);
@@ -248,9 +164,8 @@ void ndr_print_security_ace_object_type(struct ndr_print *ndr, const char *name,
static enum ndr_err_code ndr_push_security_ace_object_inherited_type(struct ndr_push *ndr, int ndr_flags, const union security_ace_object_inherited_type *r)
{
- int level;
- level = ndr_push_get_switch_value(ndr, r);
if (ndr_flags & NDR_SCALARS) {
+ int level = ndr_push_get_switch_value(ndr, r);
switch (level) {
case SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT:
NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->inherited_type));
@@ -262,8 +177,10 @@ static enum ndr_err_code ndr_push_security_ace_object_inherited_type(struct ndr_
}
}
if (ndr_flags & NDR_BUFFERS) {
+ int level = ndr_push_get_switch_value(ndr, r);
switch (level) {
case SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT:
+ NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->inherited_type));
break;
default:
@@ -292,6 +209,7 @@ static enum ndr_err_code ndr_pull_security_ace_object_inherited_type(struct ndr_
if (ndr_flags & NDR_BUFFERS) {
switch (level) {
case SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT:
+ NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->inherited_type));
break;
default:
@@ -302,7 +220,7 @@ static enum ndr_err_code ndr_pull_security_ace_object_inherited_type(struct ndr_
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_object_inherited_type(struct ndr_print *ndr, const char *name, const union security_ace_object_inherited_type *r)
+_PUBLIC_ void ndr_print_security_ace_object_inherited_type(struct ndr_print *ndr, const char *name, const union security_ace_object_inherited_type *r)
{
int level;
level = ndr_print_get_switch_value(ndr, r);
@@ -323,9 +241,9 @@ static enum ndr_err_code ndr_push_security_ace_object(struct ndr_push *ndr, int
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
NDR_CHECK(ndr_push_security_ace_object_flags(ndr, NDR_SCALARS, r->flags));
- NDR_CHECK(ndr_push_set_switch_value(ndr, &r->type, r->flags&SEC_ACE_OBJECT_TYPE_PRESENT));
+ NDR_CHECK(ndr_push_set_switch_value(ndr, &r->type, r->flags & SEC_ACE_OBJECT_TYPE_PRESENT));
NDR_CHECK(ndr_push_security_ace_object_type(ndr, NDR_SCALARS, &r->type));
- NDR_CHECK(ndr_push_set_switch_value(ndr, &r->inherited_type, r->flags&SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT));
+ NDR_CHECK(ndr_push_set_switch_value(ndr, &r->inherited_type, r->flags & SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT));
NDR_CHECK(ndr_push_security_ace_object_inherited_type(ndr, NDR_SCALARS, &r->inherited_type));
}
if (ndr_flags & NDR_BUFFERS) {
@@ -340,9 +258,9 @@ static enum ndr_err_code ndr_pull_security_ace_object(struct ndr_pull *ndr, int
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
NDR_CHECK(ndr_pull_security_ace_object_flags(ndr, NDR_SCALARS, &r->flags));
- NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->type, r->flags&SEC_ACE_OBJECT_TYPE_PRESENT));
+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->type, r->flags & SEC_ACE_OBJECT_TYPE_PRESENT));
NDR_CHECK(ndr_pull_security_ace_object_type(ndr, NDR_SCALARS, &r->type));
- NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->inherited_type, r->flags&SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT));
+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->inherited_type, r->flags & SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT));
NDR_CHECK(ndr_pull_security_ace_object_inherited_type(ndr, NDR_SCALARS, &r->inherited_type));
}
if (ndr_flags & NDR_BUFFERS) {
@@ -352,23 +270,22 @@ static enum ndr_err_code ndr_pull_security_ace_object(struct ndr_pull *ndr, int
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_object(struct ndr_print *ndr, const char *name, const struct security_ace_object *r)
+_PUBLIC_ void ndr_print_security_ace_object(struct ndr_print *ndr, const char *name, const struct security_ace_object *r)
{
ndr_print_struct(ndr, name, "security_ace_object");
ndr->depth++;
ndr_print_security_ace_object_flags(ndr, "flags", r->flags);
- ndr_print_set_switch_value(ndr, &r->type, r->flags&SEC_ACE_OBJECT_TYPE_PRESENT);
+ ndr_print_set_switch_value(ndr, &r->type, r->flags & SEC_ACE_OBJECT_TYPE_PRESENT);
ndr_print_security_ace_object_type(ndr, "type", &r->type);
- ndr_print_set_switch_value(ndr, &r->inherited_type, r->flags&SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT);
+ ndr_print_set_switch_value(ndr, &r->inherited_type, r->flags & SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT);
ndr_print_security_ace_object_inherited_type(ndr, "inherited_type", &r->inherited_type);
ndr->depth--;
}
static enum ndr_err_code ndr_push_security_ace_object_ctr(struct ndr_push *ndr, int ndr_flags, const union security_ace_object_ctr *r)
{
- int level;
- level = ndr_push_get_switch_value(ndr, r);
if (ndr_flags & NDR_SCALARS) {
+ int level = ndr_push_get_switch_value(ndr, r);
switch (level) {
case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT:
NDR_CHECK(ndr_push_security_ace_object(ndr, NDR_SCALARS, &r->object));
@@ -392,6 +309,7 @@ static enum ndr_err_code ndr_push_security_ace_object_ctr(struct ndr_push *ndr,
}
}
if (ndr_flags & NDR_BUFFERS) {
+ int level = ndr_push_get_switch_value(ndr, r);
switch (level) {
case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT:
NDR_CHECK(ndr_push_security_ace_object(ndr, NDR_BUFFERS, &r->object));
@@ -470,7 +388,7 @@ static enum ndr_err_code ndr_pull_security_ace_object_ctr(struct ndr_pull *ndr,
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace_object_ctr(struct ndr_print *ndr, const char *name, const union security_ace_object_ctr *r)
+_PUBLIC_ void ndr_print_security_ace_object_ctr(struct ndr_print *ndr, const char *name, const union security_ace_object_ctr *r)
{
int level;
level = ndr_print_get_switch_value(ndr, r);
@@ -498,13 +416,13 @@ void ndr_print_security_ace_object_ctr(struct ndr_print *ndr, const char *name,
}
}
-enum ndr_err_code ndr_push_security_ace(struct ndr_push *ndr, int ndr_flags, const struct security_ace *r)
+_PUBLIC_ enum ndr_err_code ndr_push_security_ace(struct ndr_push *ndr, int ndr_flags, const struct security_ace *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
NDR_CHECK(ndr_push_security_ace_type(ndr, NDR_SCALARS, r->type));
NDR_CHECK(ndr_push_security_ace_flags(ndr, NDR_SCALARS, r->flags));
- NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_security_ace(r,ndr->flags)));
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_security_ace(r, ndr->flags)));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->access_mask));
NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->type));
NDR_CHECK(ndr_push_security_ace_object_ctr(ndr, NDR_SCALARS, &r->object));
@@ -512,11 +430,12 @@ enum ndr_err_code ndr_push_security_ace(struct ndr_push *ndr, int ndr_flags, con
}
if (ndr_flags & NDR_BUFFERS) {
NDR_CHECK(ndr_push_security_ace_object_ctr(ndr, NDR_BUFFERS, &r->object));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->trustee));
}
return NDR_ERR_SUCCESS;
}
-enum ndr_err_code ndr_pull_security_ace(struct ndr_pull *ndr, int ndr_flags, struct security_ace *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_security_ace(struct ndr_pull *ndr, int ndr_flags, struct security_ace *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
@@ -530,17 +449,18 @@ enum ndr_err_code ndr_pull_security_ace(struct ndr_pull *ndr, int ndr_flags, str
}
if (ndr_flags & NDR_BUFFERS) {
NDR_CHECK(ndr_pull_security_ace_object_ctr(ndr, NDR_BUFFERS, &r->object));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->trustee));
}
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_ace(struct ndr_print *ndr, const char *name, const struct security_ace *r)
+_PUBLIC_ void ndr_print_security_ace(struct ndr_print *ndr, const char *name, const struct security_ace *r)
{
ndr_print_struct(ndr, name, "security_ace");
ndr->depth++;
ndr_print_security_ace_type(ndr, "type", r->type);
ndr_print_security_ace_flags(ndr, "flags", r->flags);
- ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_security_ace(r,ndr->flags):r->size);
+ ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_security_ace(r, ndr->flags):r->size);
ndr_print_uint32(ndr, "access_mask", r->access_mask);
ndr_print_set_switch_value(ndr, &r->object, r->type);
ndr_print_security_ace_object_ctr(ndr, "object", &r->object);
@@ -558,11 +478,11 @@ static enum ndr_err_code ndr_pull_security_acl_revision(struct ndr_pull *ndr, in
{
uint16_t v;
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
- *r = (enum security_acl_revision)v;
+ *r = v;
return NDR_ERR_SUCCESS;
}
-void ndr_print_security_acl_revision(struct ndr_print *ndr, const char *name, enum security_acl_revision r)
+_PUBLIC_ void ndr_print_security_acl_revision(struct ndr_print *ndr, const char *name, enum security_acl_revision r)
{
const char *val = NULL;
@@ -573,13 +493,13 @@ void ndr_print_security_acl_revision(struct ndr_print *ndr, const char *name, en
ndr_print_enum(ndr, name, "ENUM", val, r);
}
-enum ndr_err_code ndr_push_security_acl(struct ndr_push *ndr, int ndr_flags, const struct security_acl *r)
+_PUBLIC_ enum ndr_err_code ndr_push_security_acl(struct ndr_push *ndr, int ndr_flags, const struct security_acl *r)
{
uint32_t cntr_aces_0;
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
NDR_CHECK(ndr_push_security_acl_revision(ndr, NDR_SCALARS, r->revision));
- NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_security_acl(r,ndr->flags)));
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_security_acl(r, ndr->flags)));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_aces));
for (cntr_aces_0 = 0; cntr_aces_0 < r->num_aces; cntr_aces_0++) {
NDR_CHECK(ndr_push_security_ace(ndr, NDR_SCALARS, &r->aces[cntr_aces_0]));
@@ -593,7 +513,7 @@ enum ndr_err_code ndr_push_security_acl(struct ndr_push *ndr, int ndr_flags, con
return NDR_ERR_SUCCESS;
}
-enum ndr_err_code ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_flags, struct security_acl *r)
--
Samba Shared Repository
More information about the samba-cvs
mailing list