summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-10-13 15:39:27 +0200
committerGünther Deschner <gd@samba.org>2009-10-16 10:50:27 +0200
commit8bd4378ff8ddc81710575a21ca7713195a105b52 (patch)
tree8c5962ff251244b8fac8d694b688677976870bf3
parent7bcc0b29662663be75828f2618a5013e7c2c2817 (diff)
downloadsamba-8bd4378ff8ddc81710575a21ca7713195a105b52.tar.gz
samba-8bd4378ff8ddc81710575a21ca7713195a105b52.tar.bz2
samba-8bd4378ff8ddc81710575a21ca7713195a105b52.zip
s3-libnetapi: add I_NetLogonControl{2} to IDL.
Guenther
-rw-r--r--source3/librpc/gen_ndr/libnetapi.h58
-rw-r--r--source3/librpc/gen_ndr/ndr_libnetapi.c70
-rw-r--r--source3/librpc/gen_ndr/ndr_libnetapi.h12
-rw-r--r--source3/librpc/idl/libnetapi.idl49
4 files changed, 188 insertions, 1 deletions
diff --git a/source3/librpc/gen_ndr/libnetapi.h b/source3/librpc/gen_ndr/libnetapi.h
index 97b114150e..83acb3aa50 100644
--- a/source3/librpc/gen_ndr/libnetapi.h
+++ b/source3/librpc/gen_ndr/libnetapi.h
@@ -1295,6 +1295,33 @@ struct FILE_INFO_3 {
const char * fi3_username;
};
+struct NETLOGON_INFO_1 {
+ uint32_t netlog1_flags;
+ enum NET_API_STATUS netlog1_pdc_connection_status;
+};
+
+struct NETLOGON_INFO_2 {
+ uint32_t netlog2_flags;
+ enum NET_API_STATUS netlog2_pdc_connection_status;
+ const char * netlog2_trusted_dc_name;
+ enum NET_API_STATUS netlog2_tc_connection_status;
+};
+
+struct NETLOGON_INFO_3 {
+ uint32_t netlog1_flags;
+ uint32_t netlog3_logon_attempts;
+ uint32_t netlog3_reserved1;
+ uint32_t netlog3_reserved2;
+ uint32_t netlog3_reserved3;
+ uint32_t netlog3_reserved4;
+ uint32_t netlog3_reserved5;
+};
+
+struct NETLOGON_INFO_4 {
+ const char * netlog4_trusted_dc_name;
+ const char * netlog4_trusted_domain_name;
+};
+
struct NetJoinDomain {
struct {
@@ -2099,4 +2126,35 @@ struct NetShutdownAbort {
};
+
+struct I_NetLogonControl {
+ struct {
+ const char * server_name;
+ uint32_t function_code;
+ uint32_t query_level;
+ } in;
+
+ struct {
+ uint8_t **buffer;/* [ref] */
+ enum NET_API_STATUS result;
+ } out;
+
+};
+
+
+struct I_NetLogonControl2 {
+ struct {
+ const char * server_name;
+ uint32_t function_code;
+ uint32_t query_level;
+ uint8_t *data;/* [ref] */
+ } in;
+
+ struct {
+ uint8_t **buffer;/* [ref] */
+ enum NET_API_STATUS result;
+ } out;
+
+};
+
#endif /* _HEADER_libnetapi */
diff --git a/source3/librpc/gen_ndr/ndr_libnetapi.c b/source3/librpc/gen_ndr/ndr_libnetapi.c
index 01910f9ef6..2dfca23e28 100644
--- a/source3/librpc/gen_ndr/ndr_libnetapi.c
+++ b/source3/librpc/gen_ndr/ndr_libnetapi.c
@@ -7938,3 +7938,73 @@ _PUBLIC_ void ndr_print_NetShutdownAbort(struct ndr_print *ndr, const char *name
ndr->depth--;
}
+_PUBLIC_ void ndr_print_I_NetLogonControl(struct ndr_print *ndr, const char *name, int flags, const struct I_NetLogonControl *r)
+{
+ ndr_print_struct(ndr, name, "I_NetLogonControl");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "I_NetLogonControl");
+ ndr->depth++;
+ ndr_print_string(ndr, "server_name", r->in.server_name);
+ ndr_print_uint32(ndr, "function_code", r->in.function_code);
+ ndr_print_uint32(ndr, "query_level", r->in.query_level);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "I_NetLogonControl");
+ 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_NET_API_STATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+_PUBLIC_ void ndr_print_I_NetLogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct I_NetLogonControl2 *r)
+{
+ ndr_print_struct(ndr, name, "I_NetLogonControl2");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "I_NetLogonControl2");
+ ndr->depth++;
+ ndr_print_string(ndr, "server_name", r->in.server_name);
+ ndr_print_uint32(ndr, "function_code", r->in.function_code);
+ ndr_print_uint32(ndr, "query_level", r->in.query_level);
+ ndr_print_ptr(ndr, "data", r->in.data);
+ ndr->depth++;
+ ndr_print_uint8(ndr, "data", *r->in.data);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "I_NetLogonControl2");
+ 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_NET_API_STATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
diff --git a/source3/librpc/gen_ndr/ndr_libnetapi.h b/source3/librpc/gen_ndr/ndr_libnetapi.h
index f714302382..e7825f2edf 100644
--- a/source3/librpc/gen_ndr/ndr_libnetapi.h
+++ b/source3/librpc/gen_ndr/ndr_libnetapi.h
@@ -108,7 +108,11 @@
#define NDR_NETSHUTDOWNABORT (0x32)
-#define NDR_LIBNETAPI_CALL_COUNT (51)
+#define NDR_I_NETLOGONCONTROL (0x33)
+
+#define NDR_I_NETLOGONCONTROL2 (0x34)
+
+#define NDR_LIBNETAPI_CALL_COUNT (53)
enum ndr_err_code ndr_push_NET_API_STATUS(struct ndr_push *ndr, int ndr_flags, enum NET_API_STATUS r);
enum ndr_err_code ndr_pull_NET_API_STATUS(struct ndr_pull *ndr, int ndr_flags, enum NET_API_STATUS *r);
void ndr_print_NET_API_STATUS(struct ndr_print *ndr, const char *name, enum NET_API_STATUS r);
@@ -697,4 +701,10 @@ void ndr_print_NetShutdownInit(struct ndr_print *ndr, const char *name, int flag
enum ndr_err_code ndr_push_NetShutdownAbort(struct ndr_push *ndr, int flags, const struct NetShutdownAbort *r);
enum ndr_err_code ndr_pull_NetShutdownAbort(struct ndr_pull *ndr, int flags, struct NetShutdownAbort *r);
void ndr_print_NetShutdownAbort(struct ndr_print *ndr, const char *name, int flags, const struct NetShutdownAbort *r);
+enum ndr_err_code ndr_push_I_NetLogonControl(struct ndr_push *ndr, int flags, const struct I_NetLogonControl *r);
+enum ndr_err_code ndr_pull_I_NetLogonControl(struct ndr_pull *ndr, int flags, struct I_NetLogonControl *r);
+void ndr_print_I_NetLogonControl(struct ndr_print *ndr, const char *name, int flags, const struct I_NetLogonControl *r);
+enum ndr_err_code ndr_push_I_NetLogonControl2(struct ndr_push *ndr, int flags, const struct I_NetLogonControl2 *r);
+enum ndr_err_code ndr_pull_I_NetLogonControl2(struct ndr_pull *ndr, int flags, struct I_NetLogonControl2 *r);
+void ndr_print_I_NetLogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct I_NetLogonControl2 *r);
#endif /* _HEADER_NDR_libnetapi */
diff --git a/source3/librpc/idl/libnetapi.idl b/source3/librpc/idl/libnetapi.idl
index 54e1bff8ab..593ee1c560 100644
--- a/source3/librpc/idl/libnetapi.idl
+++ b/source3/librpc/idl/libnetapi.idl
@@ -1870,4 +1870,53 @@ interface libnetapi
[in] string server_name
);
+ /*******************************************/
+ /* I_NetLogonControl */
+ /*******************************************/
+
+ typedef struct {
+ uint32 netlog1_flags;
+ NET_API_STATUS netlog1_pdc_connection_status;
+ } NETLOGON_INFO_1;
+
+ typedef struct {
+ uint32 netlog2_flags;
+ NET_API_STATUS netlog2_pdc_connection_status;
+ string netlog2_trusted_dc_name;
+ NET_API_STATUS netlog2_tc_connection_status;
+ } NETLOGON_INFO_2;
+
+ typedef struct {
+ uint32 netlog1_flags;
+ uint32 netlog3_logon_attempts;
+ uint32 netlog3_reserved1;
+ uint32 netlog3_reserved2;
+ uint32 netlog3_reserved3;
+ uint32 netlog3_reserved4;
+ uint32 netlog3_reserved5;
+ } NETLOGON_INFO_3;
+
+ typedef struct {
+ string netlog4_trusted_dc_name;
+ string netlog4_trusted_domain_name;
+ } NETLOGON_INFO_4;
+
+ [nopush,nopull] NET_API_STATUS I_NetLogonControl(
+ [in] string server_name,
+ [in] uint32 function_code,
+ [in] uint32 query_level,
+ [out,ref] uint8 **buffer
+ );
+
+ /*******************************************/
+ /* I_NetLogonControl2 */
+ /*******************************************/
+
+ [nopush,nopull] NET_API_STATUS I_NetLogonControl2(
+ [in] string server_name,
+ [in] uint32 function_code,
+ [in] uint32 query_level,
+ [in] uint8 *data,
+ [out,ref] uint8 **buffer
+ );
}