diff options
Diffstat (limited to 'source3')
| -rw-r--r-- | source3/librpc/gen_ndr/nbt.h | 34 | ||||
| -rw-r--r-- | source3/librpc/gen_ndr/ndr_nbt.c | 270 | ||||
| -rw-r--r-- | source3/librpc/gen_ndr/ndr_nbt.h | 2 | ||||
| -rw-r--r-- | source3/librpc/gen_ndr/netlogon.h | 6 | 
4 files changed, 197 insertions, 115 deletions
diff --git a/source3/librpc/gen_ndr/nbt.h b/source3/librpc/gen_ndr/nbt.h index bd9bfcd541..8093648387 100644 --- a/source3/librpc/gen_ndr/nbt.h +++ b/source3/librpc/gen_ndr/nbt.h @@ -5,6 +5,7 @@  #include "librpc/gen_ndr/misc.h"  #include "librpc/gen_ndr/security.h"  #include "librpc/gen_ndr/svcctl.h" +#include "librpc/gen_ndr/samr.h"  #ifndef _HEADER_nbt  #define _HEADER_nbt @@ -410,6 +411,18 @@ enum nbt_netlogon_command  #endif  ; +/* bitmap nbt_netlogon_version */ +#define NETLOGON_VERSION_1 ( 0x00000001 ) +#define NETLOGON_VERSION_5 ( 0x00000002 ) +#define NETLOGON_VERSION_5EX ( 0x00000004 ) +#define NETLOGON_VERSION_5EX_WITH_IP ( 0x00000008 ) +#define NETLOGON_VERSION_WITH_CLOSEST_SITE ( 0x00000010 ) +#define NETLOGON_VERSION_AVOID_NT4_EMUL ( 0x01000000 ) +#define NETLOGON_VERSION_PDC ( 0x10000000 ) +#define NETLOGON_VERSION_IP ( 0x20000000 ) +#define NETLOGON_VERSION_LOCAL ( 0x40000000 ) +#define NETLOGON_VERSION_GC ( 0x80000000 ) +  struct nbt_netlogon_query_for_pdc {  	const char * computer_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */  	const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ @@ -451,6 +464,15 @@ struct nbt_netlogon_response_from_pdc {  #define NBT_SERVER_CLOSEST ( 0x00000080 )  #define NBT_SERVER_WRITABLE ( 0x00000100 )  #define NBT_SERVER_GOOD_TIMESERV ( 0x00000200 ) +#define NBT_SERVER_NDNC ( 0x00000400 ) +#define NBT_SERVER_SELECT_SECRET_DOMAIN_6 ( 0x00000800 ) +#define NBT_SERVER_FULL_SECRET_DOMAIN_6 ( 0x00001000 ) + +struct nbt_dc_sock_addr { +	uint32_t sa_family; +	const char * pdc_ip;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */ +	DATA_BLOB remaining;/* [flag(LIBNDR_FLAG_REMAINING)] */ +};  struct nbt_netlogon_response_from_pdc2 {  	DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */ @@ -464,10 +486,8 @@ struct nbt_netlogon_response_from_pdc2 {  	const char * user_name;  	const char * server_site;  	const char * client_site; -	uint8_t unknown; -	uint32_t unknown2; -	const char * pdc_ip;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */ -	uint32_t unknown3[2]; +	uint8_t dc_sock_addr_size; +	struct nbt_dc_sock_addr dc_sock_addr;/* [subcontext_size(dc_sock_addr_size),subcontext(0)] */  	uint32_t nt_version;  	uint16_t lmnt_token;  	uint16_t lm20_token; @@ -569,10 +589,8 @@ struct nbt_cldap_netlogon_13 {  	const char * user_name;  	const char * server_site;  	const char * client_site; -	uint8_t unknown; -	uint32_t unknown2; -	const char * pdc_ip;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */ -	uint32_t unknown3[2]; +	uint8_t dc_sock_addr_size; +	struct nbt_dc_sock_addr dc_sock_addr;/* [subcontext_size(dc_sock_addr_size),subcontext(0)] */  	uint32_t nt_version;/* [value(13)] */  	uint16_t lmnt_token;  	uint16_t lm20_token; diff --git a/source3/librpc/gen_ndr/ndr_nbt.c b/source3/librpc/gen_ndr/ndr_nbt.c index 92a94886d2..85514ed72a 100644 --- a/source3/librpc/gen_ndr/ndr_nbt.c +++ b/source3/librpc/gen_ndr/ndr_nbt.c @@ -6,6 +6,7 @@  #include "librpc/gen_ndr/ndr_misc.h"  #include "librpc/gen_ndr/ndr_security.h"  #include "librpc/gen_ndr/ndr_svcctl.h" +#include "librpc/gen_ndr/ndr_samr.h"  static enum ndr_err_code ndr_push_nbt_operation(struct ndr_push *ndr, int ndr_flags, uint16_t r)  {  	NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r)); @@ -1576,6 +1577,52 @@ _PUBLIC_ void ndr_print_nbt_netlogon_command(struct ndr_print *ndr, const char *  	ndr_print_enum(ndr, name, "ENUM", val, r);  } +static enum ndr_err_code ndr_push_nbt_netlogon_version(struct ndr_push *ndr, int ndr_flags, uint32_t r) +{ +	{ +		uint32_t _flags_save_BITMAP = ndr->flags; +		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN); +		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); +		ndr->flags = _flags_save_BITMAP; +	} +	return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_nbt_netlogon_version(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) +{ +	uint32_t v; +	{ +		uint32_t _flags_save_BITMAP = ndr->flags; +		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN); +		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); +		*r = v; +		ndr->flags = _flags_save_BITMAP; +	} +	return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_nbt_netlogon_version(struct ndr_print *ndr, const char *name, uint32_t r) +{ +	{ +		uint32_t _flags_save_BITMAP = ndr->flags; +		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN); +		ndr_print_uint32(ndr, name, r); +		ndr->depth++; +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_1", NETLOGON_VERSION_1, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_5", NETLOGON_VERSION_5, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_5EX", NETLOGON_VERSION_5EX, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_5EX_WITH_IP", NETLOGON_VERSION_5EX_WITH_IP, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_WITH_CLOSEST_SITE", NETLOGON_VERSION_WITH_CLOSEST_SITE, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_AVOID_NT4_EMUL", NETLOGON_VERSION_AVOID_NT4_EMUL, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_PDC", NETLOGON_VERSION_PDC, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_IP", NETLOGON_VERSION_IP, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_LOCAL", NETLOGON_VERSION_LOCAL, r); +		ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERSION_GC", NETLOGON_VERSION_GC, r); +		ndr->depth--; +		ndr->flags = _flags_save_BITMAP; +	} +} +  static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_query_for_pdc *r)  {  	if (ndr_flags & NDR_SCALARS) { @@ -1604,7 +1651,7 @@ static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc(struct ndr_push *nd  			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -1641,7 +1688,7 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc(struct ndr_pull *nd  			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -1658,7 +1705,7 @@ _PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print *ndr, const  	ndr_print_string(ndr, "mailslot_name", r->mailslot_name);  	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);  	ndr_print_string(ndr, "unicode_name", r->unicode_name); -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -1691,7 +1738,7 @@ static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc2(struct ndr_push *n  		for (cntr_unknown_0 = 0; cntr_unknown_0 < 2; cntr_unknown_0++) {  			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -1727,7 +1774,7 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc2(struct ndr_pull *n  		for (cntr_unknown_0 = 0; cntr_unknown_0 < 2; cntr_unknown_0++) {  			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -1755,7 +1802,7 @@ _PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc2(struct ndr_print *ndr, const  		}  	}  	ndr->depth--; -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -1789,7 +1836,7 @@ static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push  			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -1826,7 +1873,7 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull  			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -1843,7 +1890,7 @@ _PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, co  	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);  	ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);  	ndr_print_string(ndr, "domain_name", r->domain_name); -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -1876,12 +1923,70 @@ _PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name,  	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST, r);  	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE, r);  	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV, r); +	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_NDNC", NBT_SERVER_NDNC, r); +	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_SELECT_SECRET_DOMAIN_6", NBT_SERVER_SELECT_SECRET_DOMAIN_6, r); +	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_FULL_SECRET_DOMAIN_6", NBT_SERVER_FULL_SECRET_DOMAIN_6, r); +	ndr->depth--; +} + +static enum ndr_err_code ndr_push_nbt_dc_sock_addr(struct ndr_push *ndr, int ndr_flags, const struct nbt_dc_sock_addr *r) +{ +	if (ndr_flags & NDR_SCALARS) { +		NDR_CHECK(ndr_push_align(ndr, 4)); +		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sa_family)); +		{ +			uint32_t _flags_save_ipv4address = ndr->flags; +			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN); +			NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip)); +			ndr->flags = _flags_save_ipv4address; +		} +		{ +			uint32_t _flags_save_DATA_BLOB = ndr->flags; +			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); +			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining)); +			ndr->flags = _flags_save_DATA_BLOB; +		} +	} +	if (ndr_flags & NDR_BUFFERS) { +	} +	return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_nbt_dc_sock_addr(struct ndr_pull *ndr, int ndr_flags, struct nbt_dc_sock_addr *r) +{ +	if (ndr_flags & NDR_SCALARS) { +		NDR_CHECK(ndr_pull_align(ndr, 4)); +		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sa_family)); +		{ +			uint32_t _flags_save_ipv4address = ndr->flags; +			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN); +			NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip)); +			ndr->flags = _flags_save_ipv4address; +		} +		{ +			uint32_t _flags_save_DATA_BLOB = ndr->flags; +			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); +			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining)); +			ndr->flags = _flags_save_DATA_BLOB; +		} +	} +	if (ndr_flags & NDR_BUFFERS) { +	} +	return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_nbt_dc_sock_addr(struct ndr_print *ndr, const char *name, const struct nbt_dc_sock_addr *r) +{ +	ndr_print_struct(ndr, name, "nbt_dc_sock_addr"); +	ndr->depth++; +	ndr_print_uint32(ndr, "sa_family", r->sa_family); +	ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip); +	ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);  	ndr->depth--;  }  static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc2(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc2 *r)  { -	uint32_t cntr_unknown3_0;  	if (ndr_flags & NDR_SCALARS) {  		NDR_CHECK(ndr_push_align(ndr, 4));  		{ @@ -1900,18 +2005,14 @@ static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc2(struct ndr_pus  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site)); -		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown)); -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2)); +		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->dc_sock_addr_size));  		{ -			uint32_t _flags_save_ipv4address = ndr->flags; -			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN); -			NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip)); -			ndr->flags = _flags_save_ipv4address; -		} -		for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) { -			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3[cntr_unknown3_0])); +			struct ndr_push *_ndr_dc_sock_addr; +			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_dc_sock_addr, 0, r->dc_sock_addr_size)); +			NDR_CHECK(ndr_push_nbt_dc_sock_addr(_ndr_dc_sock_addr, NDR_SCALARS, &r->dc_sock_addr)); +			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_dc_sock_addr, 0, r->dc_sock_addr_size));  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -1922,7 +2023,6 @@ static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc2(struct ndr_pus  static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc2(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc2 *r)  { -	uint32_t cntr_unknown3_0;  	if (ndr_flags & NDR_SCALARS) {  		NDR_CHECK(ndr_pull_align(ndr, 4));  		{ @@ -1941,18 +2041,14 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc2(struct ndr_pul  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site)); -		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown)); -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); +		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->dc_sock_addr_size));  		{ -			uint32_t _flags_save_ipv4address = ndr->flags; -			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN); -			NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip)); -			ndr->flags = _flags_save_ipv4address; +			struct ndr_pull *_ndr_dc_sock_addr; +			NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_dc_sock_addr, 0, r->dc_sock_addr_size)); +			NDR_CHECK(ndr_pull_nbt_dc_sock_addr(_ndr_dc_sock_addr, NDR_SCALARS, &r->dc_sock_addr)); +			NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_dc_sock_addr, 0, r->dc_sock_addr_size));  		} -		for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) { -			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3[cntr_unknown3_0])); -		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -1963,7 +2059,6 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc2(struct ndr_pul  _PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc2 *r)  { -	uint32_t cntr_unknown3_0;  	ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc2");  	ndr->depth++;  	ndr_print_DATA_BLOB(ndr, "_pad", r->_pad); @@ -1977,20 +2072,9 @@ _PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc2(struct ndr_print *ndr, c  	ndr_print_nbt_string(ndr, "user_name", r->user_name);  	ndr_print_nbt_string(ndr, "server_site", r->server_site);  	ndr_print_nbt_string(ndr, "client_site", r->client_site); -	ndr_print_uint8(ndr, "unknown", r->unknown); -	ndr_print_uint32(ndr, "unknown2", r->unknown2); -	ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip); -	ndr->print(ndr, "%s: ARRAY(%d)", "unknown3", 2); -	ndr->depth++; -	for (cntr_unknown3_0=0;cntr_unknown3_0<2;cntr_unknown3_0++) { -		char *idx_0=NULL; -		if (asprintf(&idx_0, "[%d]", cntr_unknown3_0) != -1) { -			ndr_print_uint32(ndr, "unknown3", r->unknown3[cntr_unknown3_0]); -			free(idx_0); -		} -	} -	ndr->depth--; -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_uint8(ndr, "dc_sock_addr_size", r->dc_sock_addr_size); +	ndr_print_nbt_dc_sock_addr(ndr, "dc_sock_addr", &r->dc_sock_addr); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -2082,7 +2166,7 @@ static enum ndr_err_code ndr_push_nbt_netlogon_announce_uas(struct ndr_push *ndr  			NDR_CHECK(ndr_push_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));  			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -2146,7 +2230,7 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_announce_uas(struct ndr_pull *ndr  			NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));  			NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sid, 0, r->sid_size));  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -2182,7 +2266,7 @@ _PUBLIC_ void ndr_print_nbt_netlogon_announce_uas(struct ndr_print *ndr, const c  	ndr->depth--;  	ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);  	ndr_print_dom_sid0(ndr, "sid", &r->sid); -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -2423,7 +2507,7 @@ static enum ndr_err_code ndr_push_nbt_cldap_netlogon_1(struct ndr_push *ndr, int  			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, 1));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -2455,7 +2539,7 @@ static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_1(struct ndr_pull *ndr, int  			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -2472,7 +2556,7 @@ _PUBLIC_ void ndr_print_nbt_cldap_netlogon_1(struct ndr_print *ndr, const char *  	ndr_print_string(ndr, "pdc_name", r->pdc_name);  	ndr_print_string(ndr, "user_name", r->user_name);  	ndr_print_string(ndr, "domain_name", r->domain_name); -	ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -2508,7 +2592,7 @@ static enum ndr_err_code ndr_push_nbt_cldap_netlogon_3(struct ndr_push *ndr, int  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));  		NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));  		NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type)); -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 3)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, 3));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -2547,7 +2631,7 @@ static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_3(struct ndr_pull *ndr, int  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));  		NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));  		NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type)); -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -2571,7 +2655,7 @@ _PUBLIC_ void ndr_print_nbt_cldap_netlogon_3(struct ndr_print *ndr, const char *  	ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);  	ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);  	ndr_print_nbt_server_type(ndr, "server_type", r->server_type); -	ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -2592,7 +2676,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, i  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site)); -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 5)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, 5));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -2616,7 +2700,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, i  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site)); -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -2640,7 +2724,7 @@ _PUBLIC_ void ndr_print_nbt_cldap_netlogon_5(struct ndr_print *ndr, const char *  	ndr_print_nbt_string(ndr, "user_name", r->user_name);  	ndr_print_nbt_string(ndr, "server_site", r->server_site);  	ndr_print_nbt_string(ndr, "client_site", r->client_site); -	ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?5:r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?5:r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -2648,7 +2732,6 @@ _PUBLIC_ void ndr_print_nbt_cldap_netlogon_5(struct ndr_print *ndr, const char *  static enum ndr_err_code ndr_push_nbt_cldap_netlogon_13(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_13 *r)  { -	uint32_t cntr_unknown3_0;  	if (ndr_flags & NDR_SCALARS) {  		NDR_CHECK(ndr_push_align(ndr, 4));  		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type)); @@ -2662,18 +2745,14 @@ static enum ndr_err_code ndr_push_nbt_cldap_netlogon_13(struct ndr_push *ndr, in  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));  		NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site)); -		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown)); -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2)); +		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->dc_sock_addr_size));  		{ -			uint32_t _flags_save_ipv4address = ndr->flags; -			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN); -			NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip)); -			ndr->flags = _flags_save_ipv4address; -		} -		for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) { -			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3[cntr_unknown3_0])); +			struct ndr_push *_ndr_dc_sock_addr; +			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_dc_sock_addr, 0, r->dc_sock_addr_size)); +			NDR_CHECK(ndr_push_nbt_dc_sock_addr(_ndr_dc_sock_addr, NDR_SCALARS, &r->dc_sock_addr)); +			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_dc_sock_addr, 0, r->dc_sock_addr_size));  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 13)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, 13));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -2684,7 +2763,6 @@ static enum ndr_err_code ndr_push_nbt_cldap_netlogon_13(struct ndr_push *ndr, in  static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_13(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_13 *r)  { -	uint32_t cntr_unknown3_0;  	if (ndr_flags & NDR_SCALARS) {  		NDR_CHECK(ndr_pull_align(ndr, 4));  		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type)); @@ -2698,18 +2776,14 @@ static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_13(struct ndr_pull *ndr, in  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));  		NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site)); -		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown)); -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); +		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->dc_sock_addr_size));  		{ -			uint32_t _flags_save_ipv4address = ndr->flags; -			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN); -			NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip)); -			ndr->flags = _flags_save_ipv4address; -		} -		for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) { -			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3[cntr_unknown3_0])); +			struct ndr_pull *_ndr_dc_sock_addr; +			NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_dc_sock_addr, 0, r->dc_sock_addr_size)); +			NDR_CHECK(ndr_pull_nbt_dc_sock_addr(_ndr_dc_sock_addr, NDR_SCALARS, &r->dc_sock_addr)); +			NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_dc_sock_addr, 0, r->dc_sock_addr_size));  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -2720,7 +2794,6 @@ static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_13(struct ndr_pull *ndr, in  _PUBLIC_ void ndr_print_nbt_cldap_netlogon_13(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_13 *r)  { -	uint32_t cntr_unknown3_0;  	ndr_print_struct(ndr, name, "nbt_cldap_netlogon_13");  	ndr->depth++;  	ndr_print_uint32(ndr, "type", r->type); @@ -2734,20 +2807,9 @@ _PUBLIC_ void ndr_print_nbt_cldap_netlogon_13(struct ndr_print *ndr, const char  	ndr_print_nbt_string(ndr, "user_name", r->user_name);  	ndr_print_nbt_string(ndr, "server_site", r->server_site);  	ndr_print_nbt_string(ndr, "client_site", r->client_site); -	ndr_print_uint8(ndr, "unknown", r->unknown); -	ndr_print_uint32(ndr, "unknown2", r->unknown2); -	ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip); -	ndr->print(ndr, "%s: ARRAY(%d)", "unknown3", 2); -	ndr->depth++; -	for (cntr_unknown3_0=0;cntr_unknown3_0<2;cntr_unknown3_0++) { -		char *idx_0=NULL; -		if (asprintf(&idx_0, "[%d]", cntr_unknown3_0) != -1) { -			ndr_print_uint32(ndr, "unknown3", r->unknown3[cntr_unknown3_0]); -			free(idx_0); -		} -	} -	ndr->depth--; -	ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?13:r->nt_version); +	ndr_print_uint8(ndr, "dc_sock_addr_size", r->dc_sock_addr_size); +	ndr_print_nbt_dc_sock_addr(ndr, "dc_sock_addr", &r->dc_sock_addr); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?13:r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -3019,7 +3081,7 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon(struct ndr_push *ndr, in  			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->acct_control)); +		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_control));  		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags)));  		{  			struct ndr_push *_ndr_sid; @@ -3027,7 +3089,7 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon(struct ndr_push *ndr, in  			NDR_CHECK(ndr_push_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));  			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -3059,7 +3121,7 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon(struct ndr_pull *ndr, in  			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->acct_control)); +		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_control));  		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));  		{  			struct ndr_pull *_ndr_sid; @@ -3067,7 +3129,7 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon(struct ndr_pull *ndr, in  			NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));  			NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sid, 0, r->sid_size));  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -3084,10 +3146,10 @@ _PUBLIC_ void ndr_print_nbt_ntlogon_sam_logon(struct ndr_print *ndr, const char  	ndr_print_string(ndr, "computer_name", r->computer_name);  	ndr_print_string(ndr, "user_name", r->user_name);  	ndr_print_string(ndr, "mailslot_name", r->mailslot_name); -	ndr_print_uint32(ndr, "acct_control", r->acct_control); +	ndr_print_samr_AcctFlags(ndr, "acct_control", r->acct_control);  	ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);  	ndr_print_dom_sid0(ndr, "sid", &r->sid); -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; @@ -3115,7 +3177,7 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon_reply(struct ndr_push *n  			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version)); +		NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));  		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));  	} @@ -3146,7 +3208,7 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon_reply(struct ndr_pull *n  			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));  			ndr->flags = _flags_save_string;  		} -		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version)); +		NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));  		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));  	} @@ -3162,7 +3224,7 @@ _PUBLIC_ void ndr_print_nbt_ntlogon_sam_logon_reply(struct ndr_print *ndr, const  	ndr_print_string(ndr, "server", r->server);  	ndr_print_string(ndr, "user_name", r->user_name);  	ndr_print_string(ndr, "domain", r->domain); -	ndr_print_uint32(ndr, "nt_version", r->nt_version); +	ndr_print_nbt_netlogon_version(ndr, "nt_version", r->nt_version);  	ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);  	ndr_print_uint16(ndr, "lm20_token", r->lm20_token);  	ndr->depth--; diff --git a/source3/librpc/gen_ndr/ndr_nbt.h b/source3/librpc/gen_ndr/ndr_nbt.h index 28b8a49daa..7f451133a8 100644 --- a/source3/librpc/gen_ndr/ndr_nbt.h +++ b/source3/librpc/gen_ndr/ndr_nbt.h @@ -44,10 +44,12 @@ enum ndr_err_code ndr_push_nbt_dgram_packet(struct ndr_push *ndr, int ndr_flags,  enum ndr_err_code ndr_pull_nbt_dgram_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_dgram_packet *r);  void ndr_print_nbt_dgram_packet(struct ndr_print *ndr, const char *name, const struct nbt_dgram_packet *r);  void ndr_print_nbt_netlogon_command(struct ndr_print *ndr, const char *name, enum nbt_netlogon_command r); +void ndr_print_nbt_netlogon_version(struct ndr_print *ndr, const char *name, uint32_t r);  void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc *r);  void ndr_print_nbt_netlogon_query_for_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc2 *r);  void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r);  void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r); +void ndr_print_nbt_dc_sock_addr(struct ndr_print *ndr, const char *name, const struct nbt_dc_sock_addr *r);  void ndr_print_nbt_netlogon_response_from_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc2 *r);  void ndr_print_nbt_db_change(struct ndr_print *ndr, const char *name, const struct nbt_db_change *r);  void ndr_print_nbt_netlogon_announce_uas(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_announce_uas *r); diff --git a/source3/librpc/gen_ndr/netlogon.h b/source3/librpc/gen_ndr/netlogon.h index f7bb682e92..9e8605110f 100644 --- a/source3/librpc/gen_ndr/netlogon.h +++ b/source3/librpc/gen_ndr/netlogon.h @@ -717,9 +717,9 @@ enum netr_DsRGetDCNameInfo_AddressType  #define DS_SERVER_CLOSEST ( NBT_SERVER_CLOSEST )  #define DS_SERVER_WRITABLE ( NBT_SERVER_WRITABLE )  #define DS_SERVER_GOOD_TIMESERV ( NBT_SERVER_GOOD_TIMESERV ) -#define DS_SERVER_NDNC ( 0x00000400 ) -#define DS_SERVER_SELECT_SECRET_DOMAIN_6 ( 0x00000800 ) -#define DS_SERVER_FULL_SECRET_DOMAIN_6 ( 0x00001000 ) +#define DS_SERVER_NDNC ( NBT_SERVER_NDNC ) +#define DS_SERVER_SELECT_SECRET_DOMAIN_6 ( NBT_SERVER_SELECT_SECRET_DOMAIN_6 ) +#define DS_SERVER_FULL_SECRET_DOMAIN_6 ( NBT_SERVER_FULL_SECRET_DOMAIN_6 )  #define DS_DNS_CONTROLLER ( 0x20000000 )  #define DS_DNS_DOMAIN ( 0x40000000 )  #define DS_DNS_FOREST ( 0x80000000 )  | 
