[SCM] Samba Shared Repository - branch v3-devel updated -
release-3-2-0pre2-4002-gb7a2f27
Günther Deschner
gd at samba.org
Fri Sep 5 11:04:59 GMT 2008
The branch, v3-devel has been updated
via b7a2f27c1cae9abed2f821177fca425012222632 (commit)
via 43aad72457f77ac209494cfca46048e0c4bfa6c7 (commit)
via b2d0df46038a88fa3f2ff82e155805c771916a42 (commit)
via cff66738936f9f5cc4d2cd284cde2e1ac2972d33 (commit)
via 2bb5bb9b964932f0be8eccf5739da5692a591245 (commit)
via 7a46743909bfbfccf522eecf2ba117d5651439ef (commit)
from 14c2688f2d37105ad129d26d13930177fe5c585f (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-devel
- Log -----------------------------------------------------------------
commit b7a2f27c1cae9abed2f821177fca425012222632
Author: Günther Deschner <gd at samba.org>
Date: Mon Sep 1 18:54:53 2008 +0200
netapi: add support for local query of level 101 in NetServerGetInfo.
Guenther
commit 43aad72457f77ac209494cfca46048e0c4bfa6c7
Author: Günther Deschner <gd at samba.org>
Date: Mon Sep 1 18:37:54 2008 +0200
netapi: add support for more infolevels in NetServerGetInfo_r.
Guenther
commit b2d0df46038a88fa3f2ff82e155805c771916a42
Author: Günther Deschner <gd at samba.org>
Date: Mon Sep 1 17:45:42 2008 +0200
netapi: add NetServerGetInfo example code.
Guenther
commit cff66738936f9f5cc4d2cd284cde2e1ac2972d33
Author: Günther Deschner <gd at samba.org>
Date: Mon Sep 1 18:36:50 2008 +0200
netapi: add new SERVER_INFO structures to public header.
Guenther
commit 2bb5bb9b964932f0be8eccf5739da5692a591245
Author: Günther Deschner <gd at samba.org>
Date: Mon Sep 1 17:44:01 2008 +0200
re-run make idl.
Guenther
commit 7a46743909bfbfccf522eecf2ba117d5651439ef
Author: Günther Deschner <gd at samba.org>
Date: Mon Sep 1 17:43:49 2008 +0200
netapi: add SERVER_INFO_100-102 to IDL.
Guenther
-----------------------------------------------------------------------
Summary of changes:
source/lib/netapi/examples/Makefile.in | 6 +
.../user_modalsget.c => server/server_getinfo.c} | 83 ++++++------
source/lib/netapi/netapi.h | 31 ++++
source/lib/netapi/serverinfo.c | 118 ++++++++++++++++-
source/librpc/gen_ndr/libnetapi.h | 30 ++++
source/librpc/gen_ndr/ndr_libnetapi.c | 144 ++++++++++++++++++++
source/librpc/gen_ndr/ndr_libnetapi.h | 9 ++
source/librpc/idl/libnetapi.idl | 30 ++++
8 files changed, 405 insertions(+), 46 deletions(-)
copy source/lib/netapi/examples/{user/user_modalsget.c => server/server_getinfo.c} (51%)
Changeset truncated at 500 lines:
diff --git a/source/lib/netapi/examples/Makefile.in b/source/lib/netapi/examples/Makefile.in
index f4ac8af..169736c 100644
--- a/source/lib/netapi/examples/Makefile.in
+++ b/source/lib/netapi/examples/Makefile.in
@@ -50,6 +50,7 @@ PROGS = bin/getdc at EXEEXT@ \
bin/localgroup_setmembers at EXEEXT@ \
bin/localgroup_getmembers at EXEEXT@ \
bin/remote_tod at EXEEXT@ \
+ bin/server_getinfo at EXEEXT@ \
bin/share_add at EXEEXT@ \
bin/share_del at EXEEXT@ \
bin/share_enum at EXEEXT@
@@ -114,6 +115,7 @@ LOCALGROUPDELMEMBERS_OBJ = localgroup/localgroup_delmembers.o $(CMDLINE_OBJ)
LOCALGROUPSETMEMBERS_OBJ = localgroup/localgroup_setmembers.o $(CMDLINE_OBJ)
LOCALGROUPGETMEMBERS_OBJ = localgroup/localgroup_getmembers.o $(CMDLINE_OBJ)
REMOTETOD_OBJ = server/remote_tod.o $(CMDLINE_OBJ)
+SERVERGETINFO_OBJ = server/server_getinfo.o $(CMDLINE_OBJ)
SHAREADD_OBJ = share/share_add.o $(CMDLINE_OBJ)
SHAREDEL_OBJ = share/share_del.o $(CMDLINE_OBJ)
SHAREENUM_OBJ = share/share_enum.o $(CMDLINE_OBJ)
@@ -250,6 +252,10 @@ bin/remote_tod at EXEEXT@: $(BINARY_PREREQS) $(REMOTETOD_OBJ)
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(REMOTETOD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+bin/server_getinfo at EXEEXT@: $(BINARY_PREREQS) $(SERVERGETINFO_OBJ)
+ @echo Linking $@
+ @$(CC) $(FLAGS) -o $@ $(SERVERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+
bin/share_add at EXEEXT@: $(BINARY_PREREQS) $(SHAREADD_OBJ)
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(SHAREADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
diff --git a/source/lib/netapi/examples/user/user_modalsget.c b/source/lib/netapi/examples/server/server_getinfo.c
similarity index 51%
copy from source/lib/netapi/examples/user/user_modalsget.c
copy to source/lib/netapi/examples/server/server_getinfo.c
index 4dcb41b..afd2edd 100644
--- a/source/lib/netapi/examples/user/user_modalsget.c
+++ b/source/lib/netapi/examples/server/server_getinfo.c
@@ -1,6 +1,6 @@
/*
* Unix SMB/CIFS implementation.
- * NetUserModalsGet query
+ * NetServerGetInfo query
* Copyright (C) Guenther Deschner 2008
*
* This program is free software; you can redistribute it and/or modify
@@ -33,13 +33,12 @@ int main(int argc, const char **argv)
struct libnetapi_ctx *ctx = NULL;
const char *hostname = NULL;
uint8_t *buffer = NULL;
- uint32_t level = 0;
- char *sid_str = NULL;
+ uint32_t level = 100;
- struct USER_MODALS_INFO_0 *u0;
- struct USER_MODALS_INFO_1 *u1;
- struct USER_MODALS_INFO_2 *u2;
- struct USER_MODALS_INFO_3 *u3;
+ struct SERVER_INFO_100 *i100;
+ struct SERVER_INFO_101 *i101;
+ struct SERVER_INFO_102 *i102;
+ struct SERVER_INFO_1005 *i1005;
poptContext pc;
int opt;
@@ -55,7 +54,7 @@ int main(int argc, const char **argv)
return status;
}
- pc = poptGetContext("user_modalsget", argc, argv, long_options, 0);
+ pc = poptGetContext("server_getinfo", argc, argv, long_options, 0);
poptSetOtherOptionHelp(pc, "hostname level");
while((opt = poptGetNextOpt(pc)) != -1) {
@@ -71,53 +70,51 @@ int main(int argc, const char **argv)
level = atoi(poptGetArg(pc));
}
- /* NetUserModalsGet */
+ /* NetServerGetInfo */
- status = NetUserModalsGet(hostname,
+ status = NetServerGetInfo(hostname,
level,
&buffer);
if (status != 0) {
- printf("NetUserModalsGet failed with: %s\n",
+ printf("NetServerGetInfo failed with: %s\n",
libnetapi_get_error_string(ctx, status));
goto out;
}
switch (level) {
- case 0:
- u0 = (struct USER_MODALS_INFO_0 *)buffer;
- printf("min passwd len: %d character\n",
- u0->usrmod0_min_passwd_len);
- printf("max passwd age: %d (days)\n",
- u0->usrmod0_max_passwd_age/86400);
- printf("min passwd age: %d (days)\n",
- u0->usrmod0_min_passwd_age/86400);
- printf("force logoff: %d (seconds)\n",
- u0->usrmod0_force_logoff);
- printf("password history length: %d entries\n",
- u0->usrmod0_password_hist_len);
+ case 100:
+ i100 = (struct SERVER_INFO_100 *)buffer;
+ printf("platform id: %d\n", i100->sv100_platform_id);
+ printf("name: %s\n", i100->sv100_name);
break;
- case 1:
- u1 = (struct USER_MODALS_INFO_1 *)buffer;
- printf("role: %d\n", u1->usrmod1_role);
- printf("primary: %s\n", u1->usrmod1_primary);
+ case 101:
+ i101 = (struct SERVER_INFO_101 *)buffer;
+ printf("platform id: %d\n", i101->sv101_platform_id);
+ printf("name: %s\n", i101->sv101_name);
+ printf("version major: %d\n", i101->sv101_version_major);
+ printf("version minor: %d\n", i101->sv101_version_minor);
+ printf("type: 0x%08x\n", i101->sv101_type);
+ printf("comment: %s\n", i101->sv101_comment);
break;
- case 2:
- u2 = (struct USER_MODALS_INFO_2 *)buffer;
- printf("domain name: %s\n", u2->usrmod2_domain_name);
- if (ConvertSidToStringSid(u2->usrmod2_domain_id,
- &sid_str)) {
- printf("domain sid: %s\n", sid_str);
- free(sid_str);
- }
+ case 102:
+ i102 = (struct SERVER_INFO_102 *)buffer;
+ printf("platform id: %d\n", i102->sv102_platform_id);
+ printf("name: %s\n", i102->sv102_name);
+ printf("version major: %d\n", i102->sv102_version_major);
+ printf("version minor: %d\n", i102->sv102_version_minor);
+ printf("type: 0x%08x\n", i102->sv102_type);
+ printf("comment: %s\n", i102->sv102_comment);
+ printf("users: %d\n", i102->sv102_users);
+ printf("disc: %d\n", i102->sv102_disc);
+ printf("hidden: %d\n", i102->sv102_hidden);
+ printf("announce: %d\n", i102->sv102_announce);
+ printf("anndelta: %d\n", i102->sv102_anndelta);
+ printf("licenses: %d\n", i102->sv102_licenses);
+ printf("userpath: %s\n", i102->sv102_userpath);
break;
- case 3:
- u3 = (struct USER_MODALS_INFO_3 *)buffer;
- printf("lockout duration: %d (seconds)\n",
- u3->usrmod3_lockout_duration);
- printf("lockout observation window: %d (seconds)\n",
- u3->usrmod3_lockout_observation_window);
- printf("lockout threshold: %d entries\n",
- u3->usrmod3_lockout_threshold);
+ case 1005:
+ i1005 = (struct SERVER_INFO_1005 *)buffer;
+ printf("comment: %s\n", i1005->sv1005_comment);
break;
default:
break;
diff --git a/source/lib/netapi/netapi.h b/source/lib/netapi/netapi.h
index 817d402..80c44f0 100644
--- a/source/lib/netapi/netapi.h
+++ b/source/lib/netapi/netapi.h
@@ -97,6 +97,37 @@ struct DOMAIN_CONTROLLER_INFO {
#define TIMEQ_FOREVER ( (uint32_t)-1L )
+struct SERVER_INFO_100 {
+ uint32_t sv100_platform_id;
+ const char * sv100_name;
+};
+
+struct SERVER_INFO_101 {
+ uint32_t sv101_platform_id;
+ const char * sv101_name;
+ uint32_t sv101_version_major;
+ uint32_t sv101_version_minor;
+ uint32_t sv101_type;
+ const char * sv101_comment;
+};
+
+struct SERVER_INFO_102 {
+ uint32_t sv102_platform_id;
+ const char * sv102_name;
+ uint32_t sv102_version_major;
+ uint32_t sv102_version_minor;
+ uint32_t sv102_type;
+ const char * sv102_comment;
+ uint32_t sv102_users;
+ uint32_t sv102_disc;
+ uint8_t sv102_hidden;
+ uint32_t sv102_announce;
+ uint32_t sv102_anndelta;
+ uint32_t sv102_licenses;
+ const char * sv102_userpath;
+};
+
+
struct SERVER_INFO_1005 {
const char * sv1005_comment;
};
diff --git a/source/lib/netapi/serverinfo.c b/source/lib/netapi/serverinfo.c
index 5f744be..b2a134b 100644
--- a/source/lib/netapi/serverinfo.c
+++ b/source/lib/netapi/serverinfo.c
@@ -28,6 +28,29 @@
/****************************************************************
****************************************************************/
+static WERROR NetServerGetInfo_l_101(struct libnetapi_ctx *ctx,
+ uint8_t **buffer)
+{
+ struct SERVER_INFO_101 i;
+
+ i.sv101_platform_id = PLATFORM_ID_NT;
+ i.sv101_name = global_myname();
+ i.sv101_version_major = lp_major_announce_version();
+ i.sv101_version_minor = lp_minor_announce_version();
+ i.sv101_type = lp_default_server_announce();
+ i.sv101_comment = lp_serverstring();
+
+ *buffer = (uint8_t *)talloc_memdup(ctx, &i, sizeof(i));
+ if (!*buffer) {
+ return WERR_NOMEM;
+ }
+
+ return WERR_OK;
+}
+
+/****************************************************************
+****************************************************************/
+
static WERROR NetServerGetInfo_l_1005(struct libnetapi_ctx *ctx,
uint8_t **buffer)
{
@@ -49,6 +72,8 @@ WERROR NetServerGetInfo_l(struct libnetapi_ctx *ctx,
struct NetServerGetInfo *r)
{
switch (r->in.level) {
+ case 101:
+ return NetServerGetInfo_l_101(ctx, r->out.buffer);
case 1005:
return NetServerGetInfo_l_1005(ctx, r->out.buffer);
default:
@@ -61,6 +86,78 @@ WERROR NetServerGetInfo_l(struct libnetapi_ctx *ctx,
/****************************************************************
****************************************************************/
+static NTSTATUS map_server_info_to_SERVER_INFO_buffer(TALLOC_CTX *mem_ctx,
+ uint32_t level,
+ union srvsvc_NetSrvInfo *i,
+ uint8_t **buffer)
+{
+ struct SERVER_INFO_100 i100;
+ struct SERVER_INFO_101 i101;
+ struct SERVER_INFO_102 i102;
+ struct SERVER_INFO_1005 i1005;
+
+ uint32_t num_info = 0;
+
+ switch (level) {
+ case 100:
+ i100.sv100_platform_id = i->info100->platform_id;
+ i100.sv100_name = talloc_strdup(mem_ctx, i->info100->server_name);
+
+ ADD_TO_ARRAY(mem_ctx, struct SERVER_INFO_100, i100,
+ (struct SERVER_INFO_100 **)buffer,
+ &num_info);
+ break;
+
+ case 101:
+ i101.sv101_platform_id = i->info101->platform_id;
+ i101.sv101_name = talloc_strdup(mem_ctx, i->info101->server_name);
+ i101.sv101_version_major = i->info101->version_major;
+ i101.sv101_version_minor = i->info101->version_minor;
+ i101.sv101_type = i->info101->server_type;
+ i101.sv101_comment = talloc_strdup(mem_ctx, i->info101->comment);
+
+ ADD_TO_ARRAY(mem_ctx, struct SERVER_INFO_101, i101,
+ (struct SERVER_INFO_101 **)buffer,
+ &num_info);
+ break;
+
+ case 102:
+ i102.sv102_platform_id = i->info102->platform_id;
+ i102.sv102_name = talloc_strdup(mem_ctx, i->info102->server_name);
+ i102.sv102_version_major = i->info102->version_major;
+ i102.sv102_version_minor = i->info102->version_minor;
+ i102.sv102_type = i->info102->server_type;
+ i102.sv102_comment = talloc_strdup(mem_ctx, i->info102->comment);
+ i102.sv102_users = i->info102->users;
+ i102.sv102_disc = i->info102->disc;
+ i102.sv102_hidden = i->info102->hidden;
+ i102.sv102_announce = i->info102->announce;
+ i102.sv102_anndelta = i->info102->anndelta;
+ i102.sv102_licenses = i->info102->licenses;
+ i102.sv102_userpath = talloc_strdup(mem_ctx, i->info102->userpath);
+
+ ADD_TO_ARRAY(mem_ctx, struct SERVER_INFO_102, i102,
+ (struct SERVER_INFO_102 **)buffer,
+ &num_info);
+ break;
+
+ case 1005:
+ i1005.sv1005_comment = talloc_strdup(mem_ctx, i->info1005->comment);
+
+ ADD_TO_ARRAY(mem_ctx, struct SERVER_INFO_1005, i1005,
+ (struct SERVER_INFO_1005 **)buffer,
+ &num_info);
+ break;
+ default:
+ return NT_STATUS_NOT_SUPPORTED;
+ }
+
+ return NT_STATUS_OK;
+}
+
+/****************************************************************
+****************************************************************/
+
WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
struct NetServerGetInfo *r)
{
@@ -70,6 +167,20 @@ WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
WERROR werr;
union srvsvc_NetSrvInfo info;
+ if (!r->out.buffer) {
+ return WERR_INVALID_PARAM;
+ }
+
+ switch (r->in.level) {
+ case 100:
+ case 101:
+ case 102:
+ case 1005:
+ break;
+ default:
+ return WERR_UNKNOWN_LEVEL;
+ }
+
werr = libnetapi_open_pipe(ctx, r->in.server_name,
&ndr_table_srvsvc.syntax_id,
&cli,
@@ -88,9 +199,10 @@ WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
- *r->out.buffer = (uint8_t *)talloc_memdup(ctx, &info, sizeof(info));
- if (!*r->out.buffer) {
- werr = WERR_NOMEM;
+ status = map_server_info_to_SERVER_INFO_buffer(ctx, r->in.level, &info,
+ r->out.buffer);
+ if (!NT_STATUS_IS_OK(status)) {
+ werr = ntstatus_to_werror(status);
goto done;
}
diff --git a/source/librpc/gen_ndr/libnetapi.h b/source/librpc/gen_ndr/libnetapi.h
index 7a5f286..f11c837 100644
--- a/source/librpc/gen_ndr/libnetapi.h
+++ b/source/librpc/gen_ndr/libnetapi.h
@@ -58,6 +58,36 @@ struct domsid {
#define NETSETUP_INSTALL_INVOCATION ( 0x00040000 )
#define NETSETUP_IGNORE_UNSUPPORTED_FLAGS ( 0x10000000 )
+struct SERVER_INFO_100 {
+ uint32_t sv100_platform_id;
+ const char * sv100_name;
+};
+
+struct SERVER_INFO_101 {
+ uint32_t sv101_platform_id;
+ const char * sv101_name;
+ uint32_t sv101_version_major;
+ uint32_t sv101_version_minor;
+ uint32_t sv101_type;
+ const char * sv101_comment;
+};
+
+struct SERVER_INFO_102 {
+ uint32_t sv102_platform_id;
+ const char * sv102_name;
+ uint32_t sv102_version_major;
+ uint32_t sv102_version_minor;
+ uint32_t sv102_type;
+ const char * sv102_comment;
+ uint32_t sv102_users;
+ uint32_t sv102_disc;
+ uint8_t sv102_hidden;
+ uint32_t sv102_announce;
+ uint32_t sv102_anndelta;
+ uint32_t sv102_licenses;
+ const char * sv102_userpath;
+};
+
struct SERVER_INFO_1005 {
const char * sv1005_comment;
};
diff --git a/source/librpc/gen_ndr/ndr_libnetapi.c b/source/librpc/gen_ndr/ndr_libnetapi.c
index 106b9a4..90b5f9f 100644
--- a/source/librpc/gen_ndr/ndr_libnetapi.c
+++ b/source/librpc/gen_ndr/ndr_libnetapi.c
@@ -120,6 +120,150 @@ _PUBLIC_ void ndr_print_NetJoinFlags(struct ndr_print *ndr, const char *name, ui
ndr->depth--;
}
+_PUBLIC_ enum ndr_err_code ndr_push_SERVER_INFO_100(struct ndr_push *ndr, int ndr_flags, const struct SERVER_INFO_100 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv100_platform_id));
+ NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sv100_name));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_SERVER_INFO_100(struct ndr_pull *ndr, int ndr_flags, struct SERVER_INFO_100 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sv100_platform_id));
+ NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sv100_name));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_SERVER_INFO_100(struct ndr_print *ndr, const char *name, const struct SERVER_INFO_100 *r)
+{
+ ndr_print_struct(ndr, name, "SERVER_INFO_100");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "sv100_platform_id", r->sv100_platform_id);
+ ndr_print_string(ndr, "sv100_name", r->sv100_name);
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_SERVER_INFO_101(struct ndr_push *ndr, int ndr_flags, const struct SERVER_INFO_101 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv101_platform_id));
+ NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sv101_name));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv101_version_major));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv101_version_minor));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv101_type));
+ NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sv101_comment));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_SERVER_INFO_101(struct ndr_pull *ndr, int ndr_flags, struct SERVER_INFO_101 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sv101_platform_id));
+ NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sv101_name));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sv101_version_major));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sv101_version_minor));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sv101_type));
+ NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sv101_comment));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_SERVER_INFO_101(struct ndr_print *ndr, const char *name, const struct SERVER_INFO_101 *r)
+{
+ ndr_print_struct(ndr, name, "SERVER_INFO_101");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "sv101_platform_id", r->sv101_platform_id);
+ ndr_print_string(ndr, "sv101_name", r->sv101_name);
+ ndr_print_uint32(ndr, "sv101_version_major", r->sv101_version_major);
+ ndr_print_uint32(ndr, "sv101_version_minor", r->sv101_version_minor);
+ ndr_print_uint32(ndr, "sv101_type", r->sv101_type);
+ ndr_print_string(ndr, "sv101_comment", r->sv101_comment);
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_SERVER_INFO_102(struct ndr_push *ndr, int ndr_flags, const struct SERVER_INFO_102 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv102_platform_id));
+ NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sv102_name));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv102_version_major));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv102_version_minor));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv102_type));
+ NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sv102_comment));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv102_users));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sv102_disc));
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->sv102_hidden));
--
Samba Shared Repository
More information about the samba-cvs
mailing list