diff options
-rw-r--r-- | source3/librpc/gen_ndr/libnetapi.h | 29 | ||||
-rw-r--r-- | source3/librpc/gen_ndr/ndr_libnetapi.c | 107 | ||||
-rw-r--r-- | source3/librpc/gen_ndr/ndr_libnetapi.h | 10 |
3 files changed, 145 insertions, 1 deletions
diff --git a/source3/librpc/gen_ndr/libnetapi.h b/source3/librpc/gen_ndr/libnetapi.h index 8247e9e64f..88fe43ac78 100644 --- a/source3/librpc/gen_ndr/libnetapi.h +++ b/source3/librpc/gen_ndr/libnetapi.h @@ -17,6 +17,18 @@ enum NET_API_STATUS #endif ; +struct DOMAIN_CONTROLLER_INFO { + const char * domain_controller_name; + const char * domain_controller_address; + uint32_t domain_controller_address_type; + struct GUID domain_guid; + const char * domain_name; + const char * dns_forest_name; + uint32_t flags; + const char * dc_site_name; + const char * client_site_name; +}; + struct NetJoinDomain { struct { @@ -137,4 +149,21 @@ struct NetGetAnyDCName { }; + +struct DsGetDcName { + struct { + const char * server_name;/* [unique] */ + const char * domain_name;/* [ref] */ + struct GUID *domain_guid;/* [unique] */ + const char * site_name;/* [unique] */ + uint32_t flags; + } in; + + struct { + struct DOMAIN_CONTROLLER_INFO **dc_info;/* [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 5dc3c3d826..cca10e8416 100644 --- a/source3/librpc/gen_ndr/ndr_libnetapi.c +++ b/source3/librpc/gen_ndr/ndr_libnetapi.c @@ -27,6 +27,60 @@ _PUBLIC_ void ndr_print_NET_API_STATUS(struct ndr_print *ndr, const char *name, ndr_print_enum(ndr, name, "ENUM", val, r); } +_PUBLIC_ enum ndr_err_code ndr_push_DOMAIN_CONTROLLER_INFO(struct ndr_push *ndr, int ndr_flags, const struct DOMAIN_CONTROLLER_INFO *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_controller_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_controller_address)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->domain_controller_address_type)); + NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dns_forest_name)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dc_site_name)); + NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->client_site_name)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_DOMAIN_CONTROLLER_INFO(struct ndr_pull *ndr, int ndr_flags, struct DOMAIN_CONTROLLER_INFO *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_controller_name)); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_controller_address)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->domain_controller_address_type)); + NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid)); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name)); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dns_forest_name)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dc_site_name)); + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->client_site_name)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_DOMAIN_CONTROLLER_INFO(struct ndr_print *ndr, const char *name, const struct DOMAIN_CONTROLLER_INFO *r) +{ + ndr_print_struct(ndr, name, "DOMAIN_CONTROLLER_INFO"); + ndr->depth++; + ndr_print_string(ndr, "domain_controller_name", r->domain_controller_name); + ndr_print_string(ndr, "domain_controller_address", r->domain_controller_address); + ndr_print_uint32(ndr, "domain_controller_address_type", r->domain_controller_address_type); + ndr_print_GUID(ndr, "domain_guid", &r->domain_guid); + ndr_print_string(ndr, "domain_name", r->domain_name); + ndr_print_string(ndr, "dns_forest_name", r->dns_forest_name); + ndr_print_uint32(ndr, "flags", r->flags); + ndr_print_string(ndr, "dc_site_name", r->dc_site_name); + ndr_print_string(ndr, "client_site_name", r->client_site_name); + 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"); @@ -375,3 +429,56 @@ _PUBLIC_ void ndr_print_NetGetAnyDCName(struct ndr_print *ndr, const char *name, ndr->depth--; } +_PUBLIC_ void ndr_print_DsGetDcName(struct ndr_print *ndr, const char *name, int flags, const struct DsGetDcName *r) +{ + ndr_print_struct(ndr, name, "DsGetDcName"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "DsGetDcName"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); + ndr->depth++; + ndr_print_string(ndr, "domain_name", r->in.domain_name); + ndr->depth--; + ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid); + ndr->depth++; + if (r->in.domain_guid) { + ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid); + } + ndr->depth--; + ndr_print_ptr(ndr, "site_name", r->in.site_name); + ndr->depth++; + if (r->in.site_name) { + ndr_print_string(ndr, "site_name", r->in.site_name); + } + ndr->depth--; + ndr_print_uint32(ndr, "flags", r->in.flags); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "DsGetDcName"); + ndr->depth++; + ndr_print_ptr(ndr, "dc_info", r->out.dc_info); + ndr->depth++; + ndr_print_ptr(ndr, "dc_info", *r->out.dc_info); + ndr->depth++; + if (*r->out.dc_info) { + ndr_print_DOMAIN_CONTROLLER_INFO(ndr, "dc_info", *r->out.dc_info); + } + 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 890c7d0d34..eff4f6db91 100644 --- a/source3/librpc/gen_ndr/ndr_libnetapi.h +++ b/source3/librpc/gen_ndr/ndr_libnetapi.h @@ -22,10 +22,15 @@ #define NDR_NETGETANYDCNAME (0x07) -#define NDR_LIBNETAPI_CALL_COUNT (8) +#define NDR_DSGETDCNAME (0x08) + +#define NDR_LIBNETAPI_CALL_COUNT (9) 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); +enum ndr_err_code ndr_push_DOMAIN_CONTROLLER_INFO(struct ndr_push *ndr, int ndr_flags, const struct DOMAIN_CONTROLLER_INFO *r); +enum ndr_err_code ndr_pull_DOMAIN_CONTROLLER_INFO(struct ndr_pull *ndr, int ndr_flags, struct DOMAIN_CONTROLLER_INFO *r); +void ndr_print_DOMAIN_CONTROLLER_INFO(struct ndr_print *ndr, const char *name, const struct DOMAIN_CONTROLLER_INFO *r); enum ndr_err_code ndr_push_NetJoinDomain(struct ndr_push *ndr, int flags, const struct NetJoinDomain *r); enum ndr_err_code ndr_pull_NetJoinDomain(struct ndr_pull *ndr, int flags, struct NetJoinDomain *r); void ndr_print_NetJoinDomain(struct ndr_print *ndr, const char *name, int flags, const struct NetJoinDomain *r); @@ -50,4 +55,7 @@ void ndr_print_NetGetDCName(struct ndr_print *ndr, const char *name, int flags, enum ndr_err_code ndr_push_NetGetAnyDCName(struct ndr_push *ndr, int flags, const struct NetGetAnyDCName *r); enum ndr_err_code ndr_pull_NetGetAnyDCName(struct ndr_pull *ndr, int flags, struct NetGetAnyDCName *r); void ndr_print_NetGetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct NetGetAnyDCName *r); +enum ndr_err_code ndr_push_DsGetDcName(struct ndr_push *ndr, int flags, const struct DsGetDcName *r); +enum ndr_err_code ndr_pull_DsGetDcName(struct ndr_pull *ndr, int flags, struct DsGetDcName *r); +void ndr_print_DsGetDcName(struct ndr_print *ndr, const char *name, int flags, const struct DsGetDcName *r); #endif /* _HEADER_NDR_libnetapi */ |