[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-3455-g0298f7f

Günther Deschner gd at samba.org
Wed Jul 30 14:56:10 GMT 2008


The branch, v3-3-test has been updated
       via  0298f7fe9e273a94d14b5b6ce3dbd5e6deee9ecb (commit)
       via  d31f822b79ed5344ec3c6795d66ceefd024b7d30 (commit)
       via  0b4e2687ae8fb48faacceb4078d61f9fd2acea9d (commit)
       via  93ff6548977cb3e1c84fcb659475664de54e31b5 (commit)
       via  81be6207e51924a7632dfc0ec16ca3e570d417aa (commit)
      from  ec2a56b5e726400f171d641587cbd0a4b99beec0 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 0298f7fe9e273a94d14b5b6ce3dbd5e6deee9ecb
Author: Günther Deschner <gd at samba.org>
Date:   Sat Jul 19 00:10:58 2008 +0200

    netapi: add NetGroupGetUsers example code.
    
    Guenther

commit d31f822b79ed5344ec3c6795d66ceefd024b7d30
Author: Günther Deschner <gd at samba.org>
Date:   Fri Jul 18 23:43:33 2008 +0200

    netapi: add NetGroupGetUsers to public header.
    
    Guenther

commit 0b4e2687ae8fb48faacceb4078d61f9fd2acea9d
Author: Günther Deschner <gd at samba.org>
Date:   Fri Jul 18 23:40:33 2008 +0200

    netapi: add NetGroupGetUsers skeleton.
    
    GUenther

commit 93ff6548977cb3e1c84fcb659475664de54e31b5
Author: Günther Deschner <gd at samba.org>
Date:   Fri Jul 18 23:38:17 2008 +0200

    re-run make idl.
    
    Guenther

commit 81be6207e51924a7632dfc0ec16ca3e570d417aa
Author: Günther Deschner <gd at samba.org>
Date:   Fri Jul 18 23:37:31 2008 +0200

    netapi: add NetGroupGetUsers to IDL.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/lib/netapi/examples/Makefile.in             |    6 +
 .../localgroup_enum.c => group/group_getusers.c}   |   48 +++++----
 source/lib/netapi/group.c                          |   18 +++
 source/lib/netapi/libnetapi.c                      |   55 ++++++++++
 source/lib/netapi/libnetapi.h                      |   12 ++
 source/lib/netapi/netapi.h                         |   38 +++++++
 source/librpc/gen_ndr/libnetapi.h                  |   29 +++++
 source/librpc/gen_ndr/ndr_libnetapi.c              |  113 ++++++++++++++++++++
 source/librpc/gen_ndr/ndr_libnetapi.h              |   25 +++--
 source/librpc/idl/libnetapi.idl                    |   24 ++++
 10 files changed, 340 insertions(+), 28 deletions(-)
 copy source/lib/netapi/examples/{localgroup/localgroup_enum.c => group/group_getusers.c} (70%)


Changeset truncated at 500 lines:

diff --git a/source/lib/netapi/examples/Makefile.in b/source/lib/netapi/examples/Makefile.in
index ca387ee..e7b61a1 100644
--- a/source/lib/netapi/examples/Makefile.in
+++ b/source/lib/netapi/examples/Makefile.in
@@ -36,6 +36,7 @@ PROGS = bin/getdc at EXEEXT@ \
 	bin/group_getinfo at EXEEXT@ \
 	bin/group_adduser at EXEEXT@ \
 	bin/group_deluser at EXEEXT@ \
+	bin/group_getusers at EXEEXT@ \
 	bin/localgroup_add at EXEEXT@ \
 	bin/localgroup_del at EXEEXT@ \
 	bin/localgroup_getinfo at EXEEXT@ \
@@ -89,6 +90,7 @@ GROUPSETINFO_OBJ = group/group_setinfo.o $(CMDLINE_OBJ)
 GROUPGETINFO_OBJ = group/group_getinfo.o $(CMDLINE_OBJ)
 GROUPADDUSER_OBJ = group/group_adduser.o $(CMDLINE_OBJ)
 GROUPDELUSER_OBJ = group/group_deluser.o $(CMDLINE_OBJ)
+GROUPGETUSERS_OBJ = group/group_getusers.o $(CMDLINE_OBJ)
 LOCALGROUPADD_OBJ = localgroup/localgroup_add.o $(CMDLINE_OBJ)
 LOCALGROUPDEL_OBJ = localgroup/localgroup_del.o $(CMDLINE_OBJ)
 LOCALGROUPGETINFO_OBJ = localgroup/localgroup_getinfo.o $(CMDLINE_OBJ)
@@ -172,6 +174,10 @@ bin/group_deluser at EXEEXT@: $(BINARY_PREREQS) $(GROUPDELUSER_OBJ)
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(GROUPDELUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
+bin/group_getusers at EXEEXT@: $(BINARY_PREREQS) $(GROUPGETUSERS_OBJ)
+	@echo Linking $@
+	@$(CC) $(FLAGS) -o $@ $(GROUPGETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+
 bin/localgroup_add at EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPADD_OBJ)
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(LOCALGROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
diff --git a/source/lib/netapi/examples/localgroup/localgroup_enum.c b/source/lib/netapi/examples/group/group_getusers.c
similarity index 70%
copy from source/lib/netapi/examples/localgroup/localgroup_enum.c
copy to source/lib/netapi/examples/group/group_getusers.c
index 6fe0cf4..55d0717 100644
--- a/source/lib/netapi/examples/localgroup/localgroup_enum.c
+++ b/source/lib/netapi/examples/group/group_getusers.c
@@ -1,6 +1,6 @@
 /*
  *  Unix SMB/CIFS implementation.
- *  NetLocalGroupEnum query
+ *  NetGroupGetUsers query
  *  Copyright (C) Guenther Deschner 2008
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -32,6 +32,7 @@ int main(int argc, const char **argv)
 	NET_API_STATUS status;
 	struct libnetapi_ctx *ctx = NULL;
 	const char *hostname = NULL;
+	const char *groupname = NULL;
 	uint32_t level = 0;
 	uint8_t *buffer = NULL;
 	uint32_t entries_read = 0;
@@ -39,8 +40,8 @@ int main(int argc, const char **argv)
 	uint32_t resume_handle = 0;
 	int i;
 
-	struct LOCALGROUP_INFO_0 *info0 = NULL;
-	struct LOCALGROUP_INFO_1 *info1 = NULL;
+	struct GROUP_USERS_INFO_0 *info0 = NULL;
+	struct GROUP_USERS_INFO_1 *info1 = NULL;
 
 	poptContext pc;
 	int opt;
@@ -56,9 +57,9 @@ int main(int argc, const char **argv)
 		return status;
 	}
 
-	pc = poptGetContext("localgroup_enum", argc, argv, long_options, 0);
+	pc = poptGetContext("group_getusers", argc, argv, long_options, 0);
 
-	poptSetOtherOptionHelp(pc, "hostname level");
+	poptSetOtherOptionHelp(pc, "hostname groupname level");
 	while((opt = poptGetNextOpt(pc)) != -1) {
 	}
 
@@ -68,28 +69,35 @@ int main(int argc, const char **argv)
 	}
 	hostname = poptGetArg(pc);
 
+	if (!poptPeekArg(pc)) {
+		poptPrintHelp(pc, stderr, 0);
+		goto out;
+	}
+	groupname = poptGetArg(pc);
+
 	if (poptPeekArg(pc)) {
 		level = atoi(poptGetArg(pc));
 	}
 
-	/* NetLocalGroupEnum */
+	/* NetGroupGetUsers */
 
 	do {
-		status = NetLocalGroupEnum(hostname,
-					   level,
-					   &buffer,
-					   (uint32_t)-1,
-					   &entries_read,
-					   &total_entries,
-					   &resume_handle);
+		status = NetGroupGetUsers(hostname,
+					  groupname,
+					  level,
+					  &buffer,
+					  (uint32_t)-1,
+					  &entries_read,
+					  &total_entries,
+					  &resume_handle);
 		if (status == 0 || status == ERROR_MORE_DATA) {
 			printf("total entries: %d\n", total_entries);
 			switch (level) {
 				case 0:
-					info0 = (struct LOCALGROUP_INFO_0 *)buffer;
+					info0 = (struct GROUP_USERS_INFO_0 *)buffer;
 					break;
 				case 1:
-					info1 = (struct LOCALGROUP_INFO_1 *)buffer;
+					info1 = (struct GROUP_USERS_INFO_1 *)buffer;
 					break;
 				default:
 					break;
@@ -97,16 +105,14 @@ int main(int argc, const char **argv)
 			for (i=0; i<entries_read; i++) {
 				switch (level) {
 					case 0:
-						printf("#%d group: %s\n", i, info0->lgrpi0_name);
+						printf("#%d group: %s\n", i, info0->grui0_name);
 						info0++;
 						break;
 					case 1:
-						printf("#%d group: %s\n", i, info1->lgrpi1_name);
-						printf("#%d comment: %s\n", i, info1->lgrpi1_comment);
+						printf("#%d group: %s\n", i, info1->grui1_name);
+						printf("#%d attributes: %d\n", i, info1->grui1_attributes);
 						info1++;
 						break;
-					default:
-						break;
 				}
 			}
 			NetApiBufferFree(buffer);
@@ -114,7 +120,7 @@ int main(int argc, const char **argv)
 	} while (status == ERROR_MORE_DATA);
 
 	if (status != 0) {
-		printf("NetLocalGroupEnum failed with: %s\n",
+		printf("NetGroupGetUsers failed with: %s\n",
 			libnetapi_get_error_string(ctx, status));
 	}
 
diff --git a/source/lib/netapi/group.c b/source/lib/netapi/group.c
index c1c55c8..30ff6af 100644
--- a/source/lib/netapi/group.c
+++ b/source/lib/netapi/group.c
@@ -1306,3 +1306,21 @@ WERROR NetGroupEnum_l(struct libnetapi_ctx *ctx,
 {
 	return NetGroupEnum_r(ctx, r);
 }
+
+/****************************************************************
+****************************************************************/
+
+WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
+			  struct NetGroupGetUsers *r)
+{
+	return WERR_NOT_SUPPORTED;
+}
+
+/****************************************************************
+****************************************************************/
+
+WERROR NetGroupGetUsers_l(struct libnetapi_ctx *ctx,
+			  struct NetGroupGetUsers *r)
+{
+	return WERR_NOT_SUPPORTED;
+}
diff --git a/source/lib/netapi/libnetapi.c b/source/lib/netapi/libnetapi.c
index 7e9e094..fe57238 100644
--- a/source/lib/netapi/libnetapi.c
+++ b/source/lib/netapi/libnetapi.c
@@ -1101,6 +1101,61 @@ NET_API_STATUS NetGroupDelUser(const char * server_name /* [in] */,
 }
 
 /****************************************************************
+ NetGroupGetUsers
+****************************************************************/
+
+NET_API_STATUS NetGroupGetUsers(const char * server_name /* [in] */,
+				const char * group_name /* [in] */,
+				uint32_t level /* [in] */,
+				uint8_t **buffer /* [out] [ref] */,
+				uint32_t prefmaxlen /* [in] */,
+				uint32_t *entries_read /* [out] [ref] */,
+				uint32_t *total_entries /* [out] [ref] */,
+				uint32_t *resume_handle /* [in,out] [ref] */)
+{
+	struct NetGroupGetUsers r;
+	struct libnetapi_ctx *ctx = NULL;
+	NET_API_STATUS status;
+	WERROR werr;
+
+	status = libnetapi_getctx(&ctx);
+	if (status != 0) {
+		return status;
+	}
+
+	/* In parameters */
+	r.in.server_name = server_name;
+	r.in.group_name = group_name;
+	r.in.level = level;
+	r.in.prefmaxlen = prefmaxlen;
+	r.in.resume_handle = resume_handle;
+
+	/* Out parameters */
+	r.out.buffer = buffer;
+	r.out.entries_read = entries_read;
+	r.out.total_entries = total_entries;
+	r.out.resume_handle = resume_handle;
+
+	if (DEBUGLEVEL >= 10) {
+		NDR_PRINT_IN_DEBUG(NetGroupGetUsers, &r);
+	}
+
+	if (LIBNETAPI_LOCAL_SERVER(server_name)) {
+		werr = NetGroupGetUsers_l(ctx, &r);
+	} else {
+		werr = NetGroupGetUsers_r(ctx, &r);
+	}
+
+	r.out.result = W_ERROR_V(werr);
+
+	if (DEBUGLEVEL >= 10) {
+		NDR_PRINT_OUT_DEBUG(NetGroupGetUsers, &r);
+	}
+
+	return r.out.result;
+}
+
+/****************************************************************
  NetLocalGroupAdd
 ****************************************************************/
 
diff --git a/source/lib/netapi/libnetapi.h b/source/lib/netapi/libnetapi.h
index 0010400..5c9e2e2 100644
--- a/source/lib/netapi/libnetapi.h
+++ b/source/lib/netapi/libnetapi.h
@@ -192,6 +192,18 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
 			 struct NetGroupDelUser *r);
 WERROR NetGroupDelUser_l(struct libnetapi_ctx *ctx,
 			 struct NetGroupDelUser *r);
+NET_API_STATUS NetGroupGetUsers(const char * server_name /* [in] */,
+				const char * group_name /* [in] */,
+				uint32_t level /* [in] */,
+				uint8_t **buffer /* [out] [ref] */,
+				uint32_t prefmaxlen /* [in] */,
+				uint32_t *entries_read /* [out] [ref] */,
+				uint32_t *total_entries /* [out] [ref] */,
+				uint32_t *resume_handle /* [in,out] [ref] */);
+WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
+			  struct NetGroupGetUsers *r);
+WERROR NetGroupGetUsers_l(struct libnetapi_ctx *ctx,
+			  struct NetGroupGetUsers *r);
 NET_API_STATUS NetLocalGroupAdd(const char * server_name /* [in] */,
 				uint32_t level /* [in] */,
 				uint8_t *buffer /* [in] [ref] */,
diff --git a/source/lib/netapi/netapi.h b/source/lib/netapi/netapi.h
index 7d32ffc..a1041c0 100644
--- a/source/lib/netapi/netapi.h
+++ b/source/lib/netapi/netapi.h
@@ -290,6 +290,15 @@ struct GROUP_INFO_1005 {
 	uint32_t grpi1005_attributes;
 };
 
+struct GROUP_USERS_INFO_0 {
+	const char * grui0_name;
+};
+
+struct GROUP_USERS_INFO_1 {
+	const char * grui1_name;
+	uint32_t grui1_attributes;
+};
+
 struct LOCALGROUP_INFO_0 {
 	const char * lgrpi0_name;
 };
@@ -901,6 +910,35 @@ NET_API_STATUS NetGroupDelUser(const char * server_name /* [in] */,
 
 /************************************************************//**
  *
+ * NetGroupGetUsers
+ *
+ * @brief Get Users for a group on a server
+ *
+ * @param[in] server_name The server name to connect to
+ * @param[in] group_name The group name to enumerate users for
+ * @param[in] level The enumeration level used for the query
+ * @param[out] buffer The returned enumeration buffer
+ * @param[in] prefmaxlen The requested maximal buffer size
+ * @param[out] entries_read The number of returned entries
+ * @param[out] total_entries The number of total entries
+ * @param[in,out] resume_handle A handle passed in and returned for resuming
+ * operations
+ * @return NET_API_STATUS
+ *
+ * example group/group_getusers.c
+ ***************************************************************/
+
+NET_API_STATUS NetGroupGetUsers(const char * server_name /* [in] */,
+				const char * group_name /* [in] */,
+				uint32_t level /* [in] */,
+				uint8_t **buffer /* [out] [ref] */,
+				uint32_t prefmaxlen /* [in] */,
+				uint32_t *entries_read /* [out] [ref] */,
+				uint32_t *total_entries /* [out] [ref] */,
+				uint32_t *resume_handle /* [in,out] [ref] */);
+
+/************************************************************//**
+ *
  * NetLocalGroupAdd
  *
  * @brief Create Local Group
diff --git a/source/librpc/gen_ndr/libnetapi.h b/source/librpc/gen_ndr/libnetapi.h
index d843b99..f1352c6 100644
--- a/source/librpc/gen_ndr/libnetapi.h
+++ b/source/librpc/gen_ndr/libnetapi.h
@@ -396,6 +396,15 @@ struct GROUP_INFO_1005 {
 	uint32_t grpi1005_attributes;
 };
 
+struct GROUP_USERS_INFO_0 {
+	const char * grui0_name;
+};
+
+struct GROUP_USERS_INFO_1 {
+	const char * grui1_name;
+	uint32_t grui1_attributes;
+};
+
 struct LOCALGROUP_INFO_0 {
 	const char * lgrpi0_name;
 };
@@ -780,6 +789,26 @@ struct NetGroupDelUser {
 };
 
 
+struct NetGroupGetUsers {
+	struct {
+		const char * server_name;
+		const char * group_name;
+		uint32_t level;
+		uint32_t prefmaxlen;
+		uint32_t *resume_handle;/* [ref] */
+	} in;
+
+	struct {
+		uint8_t **buffer;/* [ref] */
+		uint32_t *entries_read;/* [ref] */
+		uint32_t *total_entries;/* [ref] */
+		uint32_t *resume_handle;/* [ref] */
+		enum NET_API_STATUS result;
+	} out;
+
+};
+
+
 struct NetLocalGroupAdd {
 	struct {
 		const char * server_name;
diff --git a/source/librpc/gen_ndr/ndr_libnetapi.c b/source/librpc/gen_ndr/ndr_libnetapi.c
index 6e5c54f..64f1c4f 100644
--- a/source/librpc/gen_ndr/ndr_libnetapi.c
+++ b/source/librpc/gen_ndr/ndr_libnetapi.c
@@ -1937,6 +1937,69 @@ _PUBLIC_ void ndr_print_NET_DISPLAY_GROUP(struct ndr_print *ndr, const char *nam
 	ndr->depth--;
 }
 
+_PUBLIC_ enum ndr_err_code ndr_push_GROUP_USERS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct GROUP_USERS_INFO_0 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_push_align(ndr, 4));
+		NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->grui0_name));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_GROUP_USERS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct GROUP_USERS_INFO_0 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_pull_align(ndr, 4));
+		NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->grui0_name));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_GROUP_USERS_INFO_0(struct ndr_print *ndr, const char *name, const struct GROUP_USERS_INFO_0 *r)
+{
+	ndr_print_struct(ndr, name, "GROUP_USERS_INFO_0");
+	ndr->depth++;
+	ndr_print_string(ndr, "grui0_name", r->grui0_name);
+	ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_GROUP_USERS_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct GROUP_USERS_INFO_1 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_push_align(ndr, 4));
+		NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->grui1_name));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->grui1_attributes));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_GROUP_USERS_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct GROUP_USERS_INFO_1 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_pull_align(ndr, 4));
+		NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->grui1_name));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->grui1_attributes));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_GROUP_USERS_INFO_1(struct ndr_print *ndr, const char *name, const struct GROUP_USERS_INFO_1 *r)
+{
+	ndr_print_struct(ndr, name, "GROUP_USERS_INFO_1");
+	ndr->depth++;
+	ndr_print_string(ndr, "grui1_name", r->grui1_name);
+	ndr_print_uint32(ndr, "grui1_attributes", r->grui1_attributes);
+	ndr->depth--;
+}
+
 _PUBLIC_ void ndr_print_NetJoinDomain(struct ndr_print *ndr, const char *name, int flags, const struct NetJoinDomain *r)
 {
 	ndr_print_struct(ndr, name, "NetJoinDomain");
@@ -2801,6 +2864,56 @@ _PUBLIC_ void ndr_print_NetGroupDelUser(struct ndr_print *ndr, const char *name,
 	ndr->depth--;
 }
 
+_PUBLIC_ void ndr_print_NetGroupGetUsers(struct ndr_print *ndr, const char *name, int flags, const struct NetGroupGetUsers *r)
+{
+	ndr_print_struct(ndr, name, "NetGroupGetUsers");
+	ndr->depth++;
+	if (flags & NDR_SET_VALUES) {
+		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+	}
+	if (flags & NDR_IN) {
+		ndr_print_struct(ndr, "in", "NetGroupGetUsers");
+		ndr->depth++;
+		ndr_print_string(ndr, "server_name", r->in.server_name);
+		ndr_print_string(ndr, "group_name", r->in.group_name);
+		ndr_print_uint32(ndr, "level", r->in.level);
+		ndr_print_uint32(ndr, "prefmaxlen", r->in.prefmaxlen);
+		ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
+		ndr->depth++;
+		ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
+		ndr->depth--;
+		ndr->depth--;
+	}
+	if (flags & NDR_OUT) {
+		ndr_print_struct(ndr, "out", "NetGroupGetUsers");
+		ndr->depth++;
+		ndr_print_ptr(ndr, "buffer", r->out.buffer);
+		ndr->depth++;
+		ndr_print_ptr(ndr, "buffer", *r->out.buffer);
+		ndr->depth++;
+		if (*r->out.buffer) {
+			ndr_print_uint8(ndr, "buffer", **r->out.buffer);
+		}
+		ndr->depth--;
+		ndr->depth--;
+		ndr_print_ptr(ndr, "entries_read", r->out.entries_read);
+		ndr->depth++;
+		ndr_print_uint32(ndr, "entries_read", *r->out.entries_read);
+		ndr->depth--;
+		ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
+		ndr->depth++;
+		ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
+		ndr->depth--;
+		ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
+		ndr->depth++;
+		ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
+		ndr->depth--;
+		ndr_print_NET_API_STATUS(ndr, "result", r->out.result);
+		ndr->depth--;
+	}
+	ndr->depth--;
+}
+
 _PUBLIC_ void ndr_print_NetLocalGroupAdd(struct ndr_print *ndr, const char *name, int flags, const struct NetLocalGroupAdd *r)
 {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list