From 8bd4378ff8ddc81710575a21ca7713195a105b52 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 13 Oct 2009 15:39:27 +0200 Subject: s3-libnetapi: add I_NetLogonControl{2} to IDL. Guenther --- source3/librpc/gen_ndr/libnetapi.h | 58 ++++++++++++++++++++++++++++ source3/librpc/gen_ndr/ndr_libnetapi.c | 70 ++++++++++++++++++++++++++++++++++ source3/librpc/gen_ndr/ndr_libnetapi.h | 12 +++++- source3/librpc/idl/libnetapi.idl | 49 ++++++++++++++++++++++++ 4 files changed, 188 insertions(+), 1 deletion(-) 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 + ); } -- cgit