s3: re-run make samba3-idl.
authorGünther Deschner <gd@samba.org>
Tue, 23 Sep 2008 20:16:15 +0000 (22:16 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 24 Sep 2008 01:34:22 +0000 (03:34 +0200)
Guenther

source3/librpc/gen_ndr/nbt.h
source3/librpc/gen_ndr/ndr_nbt.c
source3/librpc/gen_ndr/ndr_nbt.h

index 847f63b9b8e46a0460fda0e6bab3102627de8188..264b00b84fe44d5255eaae05131420b792c2de42 100644 (file)
@@ -228,8 +228,8 @@ struct nbt_res_rec {
        enum nbt_qtype rr_type;
        enum nbt_qclass rr_class;
        uint32_t ttl;
-       union nbt_rdata rdata;/* [switch_is(((((rr_type)==NBT_QTYPE_NETBIOS)&&talloc_check_name(ndr,"struct ndr_push")&&((rdata).data.length==2))?0:rr_type))] */
-}/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
+       union nbt_rdata rdata;/* [switch_is(rr_type)] */
+}/* [nopush,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
 
 struct nbt_name_packet {
        uint16_t name_trn_id;
@@ -390,28 +390,27 @@ struct nbt_dgram_packet {
        union dgram_data data;/* [switch_is(msg_type)] */
 }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX)] */;
 
-enum nbt_netlogon_command
-#ifndef USE_UINT_ENUMS
- {
-       NETLOGON_QUERY_FOR_PDC=0x7,
-       NETLOGON_ANNOUNCE_UAS=0xa,
-       NETLOGON_RESPONSE_FROM_PDC=0xc,
-       NETLOGON_QUERY_FOR_PDC2=0x12,
-       NETLOGON_RESPONSE_FROM_PDC2=0x17,
-       NETLOGON_RESPONSE_FROM_PDC_USER=0x19
-}
-#else
- { __donnot_use_enum_nbt_netlogon_command=0x7FFFFFFF}
-#define NETLOGON_QUERY_FOR_PDC ( 0x7 )
-#define NETLOGON_ANNOUNCE_UAS ( 0xa )
-#define NETLOGON_RESPONSE_FROM_PDC ( 0xc )
-#define NETLOGON_QUERY_FOR_PDC2 ( 0x12 )
-#define NETLOGON_RESPONSE_FROM_PDC2 ( 0x17 )
-#define NETLOGON_RESPONSE_FROM_PDC_USER ( 0x19 )
-#endif
-;
+struct nbt_sockaddr {
+       uint32_t sa_family;
+       const char * pdc_ip;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
+       DATA_BLOB remaining;/* [flag(LIBNDR_FLAG_REMAINING)] */
+}/* [gensize,public] */;
 
-/* bitmap nbt_netlogon_version */
+/* bitmap nbt_server_type */
+#define NBT_SERVER_PDC ( 0x00000001 )
+#define NBT_SERVER_GC ( 0x00000004 )
+#define NBT_SERVER_LDAP ( 0x00000008 )
+#define NBT_SERVER_DS ( 0x00000010 )
+#define NBT_SERVER_KDC ( 0x00000020 )
+#define NBT_SERVER_TIMESERV ( 0x00000040 )
+#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 )
+
+/* bitmap netlogon_nt_version_flags */
 #define NETLOGON_NT_VERSION_1 ( 0x00000001 )
 #define NETLOGON_NT_VERSION_5 ( 0x00000002 )
 #define NETLOGON_NT_VERSION_5EX ( 0x00000004 )
@@ -423,59 +422,79 @@ enum nbt_netlogon_command
 #define NETLOGON_NT_VERSION_LOCAL ( 0x40000000 )
 #define NETLOGON_NT_VERSION_GC ( 0x80000000 )
 
-struct nbt_netlogon_query_for_pdc {
-       const char * computer_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
+enum netlogon_command
+#ifndef USE_UINT_ENUMS
+ {
+       LOGON_PRIMARY_QUERY=7,
+       NETLOGON_ANNOUNCE_UAS=10,
+       NETLOGON_RESPONSE_FROM_PDC=12,
+       LOGON_SAM_LOGON_REQUEST=18,
+       LOGON_SAM_LOGON_RESPONSE=19,
+       LOGON_SAM_LOGON_PAUSE_RESPONSE=20,
+       LOGON_SAM_LOGON_USER_UNKNOWN=21,
+       LOGON_SAM_LOGON_RESPONSE_EX=23,
+       LOGON_SAM_LOGON_PAUSE_RESPONSE_EX=24,
+       LOGON_SAM_LOGON_USER_UNKNOWN_EX=25
+}
+#else
+ { __donnot_use_enum_netlogon_command=0x7FFFFFFF}
+#define LOGON_PRIMARY_QUERY ( 7 )
+#define NETLOGON_ANNOUNCE_UAS ( 10 )
+#define NETLOGON_RESPONSE_FROM_PDC ( 12 )
+#define LOGON_SAM_LOGON_REQUEST ( 18 )
+#define LOGON_SAM_LOGON_RESPONSE ( 19 )
+#define LOGON_SAM_LOGON_PAUSE_RESPONSE ( 20 )
+#define LOGON_SAM_LOGON_USER_UNKNOWN ( 21 )
+#define LOGON_SAM_LOGON_RESPONSE_EX ( 23 )
+#define LOGON_SAM_LOGON_PAUSE_RESPONSE_EX ( 24 )
+#define LOGON_SAM_LOGON_USER_UNKNOWN_EX ( 25 )
+#endif
+;
+
+struct NETLOGON_SAM_LOGON_REQUEST {
+       uint16_t request_count;
+       const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
-       DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
-       const char * unicode_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       uint32_t acct_control;
+       uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
+       DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */
+       struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
        uint32_t nt_version;
        uint16_t lmnt_token;
        uint16_t lm20_token;
-};
+}/* [nopull,nopush] */;
 
-struct nbt_netlogon_query_for_pdc2 {
-       uint16_t request_count;
-       const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+struct NETLOGON_SAM_LOGON_RESPONSE_NT40 {
+       enum netlogon_command command;
+       const char * server;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
-       uint32_t unknown[2];
+       const char * domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        uint32_t nt_version;
        uint16_t lmnt_token;
        uint16_t lm20_token;
-};
+}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
-struct nbt_netlogon_response_from_pdc {
-       const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
-       DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
-       const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+struct NETLOGON_SAM_LOGON_RESPONSE {
+       enum netlogon_command command;
+       const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       struct GUID domain_uuid;
+       struct GUID zero_uuid;
+       const char * forest;
+       const char * dns_domain;
+       const char * pdc_dns_name;
+       const char * pdc_ip;
+       uint32_t server_type;
        uint32_t nt_version;
        uint16_t lmnt_token;
        uint16_t lm20_token;
-};
-
-/* bitmap nbt_server_type */
-#define NBT_SERVER_PDC ( 0x00000001 )
-#define NBT_SERVER_GC ( 0x00000004 )
-#define NBT_SERVER_LDAP ( 0x00000008 )
-#define NBT_SERVER_DS ( 0x00000010 )
-#define NBT_SERVER_KDC ( 0x00000020 )
-#define NBT_SERVER_TIMESERV ( 0x00000040 )
-#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 family;
-       const char * pdc_ip;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
-       DATA_BLOB remaining;/* [flag(LIBNDR_FLAG_REMAINING)] */
-};
+}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
-struct nbt_netlogon_response_from_pdc2 {
-       DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */
+struct NETLOGON_SAM_LOGON_RESPONSE_EX {
+       enum netlogon_command command;
+       uint16_t sbz;
        uint32_t server_type;
        struct GUID domain_uuid;
        const char * forest;
@@ -486,22 +505,44 @@ struct nbt_netlogon_response_from_pdc2 {
        const char * user_name;
        const char * server_site;
        const char * client_site;
-       uint8_t dc_sock_addr_size;
-       struct nbt_dc_sock_addr dc_sock_addr;/* [subcontext_size(dc_sock_addr_size),subcontext(0)] */
+       uint8_t sockaddr_size;/* [value(ndr_size_nbt_sockaddr(&sockaddr,ndr->flags))] */
+       struct nbt_sockaddr sockaddr;/* [subcontext_size(sockaddr_size),subcontext(0)] */
+       const char * next_closest_site;
+       uint32_t nt_version;
+       uint16_t lmnt_token;
+       uint16_t lm20_token;
+}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
+
+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)] */
+       DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
+       const char * unicode_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        uint32_t nt_version;
        uint16_t lmnt_token;
        uint16_t lm20_token;
 };
 
+struct nbt_netlogon_response_from_pdc {
+       enum netlogon_command command;
+       const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
+       DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
+       const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       uint32_t nt_version;
+       uint16_t lmnt_token;
+       uint16_t lm20_token;
+}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
+
 enum netr_SamDatabaseID;
 
-struct nbt_db_change {
+struct nbt_db_change_info {
        enum netr_SamDatabaseID db_index;
        uint64_t serial;
        NTTIME timestamp;
 };
 
-struct nbt_netlogon_announce_uas {
+struct NETLOGON_DB_CHANGE {
        uint32_t serial_lo;
        time_t timestamp;
        uint32_t pulse;
@@ -512,191 +553,24 @@ struct nbt_netlogon_announce_uas {
        const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * unicode_domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
        uint32_t db_count;
-       struct nbt_db_change *dbchange;
+       struct nbt_db_change_info *dbchange;
        uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
        struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
-       uint32_t nt_version;
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
+       uint32_t message_format_version;
+       uint32_t message_token;
 };
 
 union nbt_netlogon_request {
-       struct nbt_netlogon_query_for_pdc pdc;/* [case(NETLOGON_QUERY_FOR_PDC)] */
-       struct nbt_netlogon_query_for_pdc2 pdc2;/* [case(NETLOGON_QUERY_FOR_PDC2)] */
-       struct nbt_netlogon_announce_uas uas;/* [case(NETLOGON_ANNOUNCE_UAS)] */
-       struct nbt_netlogon_response_from_pdc response;/* [case(NETLOGON_RESPONSE_FROM_PDC)] */
-       struct nbt_netlogon_response_from_pdc2 response2;/* [case(NETLOGON_RESPONSE_FROM_PDC2)] */
+       struct NETLOGON_SAM_LOGON_REQUEST logon;/* [case(LOGON_SAM_LOGON_REQUEST)] */
+       struct nbt_netlogon_query_for_pdc pdc;/* [case(LOGON_PRIMARY_QUERY)] */
+       struct NETLOGON_DB_CHANGE uas;/* [case(NETLOGON_ANNOUNCE_UAS)] */
 }/* [nodiscriminant] */;
 
 struct nbt_netlogon_packet {
-       enum nbt_netlogon_command command;
+       enum netlogon_command command;
        union nbt_netlogon_request req;/* [switch_is(command)] */
 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
-struct nbt_cldap_netlogon_1 {
-       enum nbt_netlogon_command type;
-       const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       uint32_t nt_version;/* [value] */
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-};
-
-struct nbt_cldap_netlogon_3 {
-       enum nbt_netlogon_command type;
-       const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       struct GUID domain_uuid;
-       struct GUID unknown_uuid;
-       const char * forest;
-       const char * dns_domain;
-       const char * pdc_dns_name;
-       const char * pdc_ip;
-       uint32_t server_type;
-       uint32_t nt_version;/* [value(3)] */
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-};
-
-struct nbt_cldap_netlogon_5 {
-       enum nbt_netlogon_command type;
-       uint16_t sbz;
-       uint32_t server_type;
-       struct GUID domain_uuid;
-       const char * forest;
-       const char * dns_domain;
-       const char * pdc_dns_name;
-       const char * domain;
-       const char * pdc_name;
-       const char * user_name;
-       const char * server_site;
-       const char * client_site;
-       uint32_t nt_version;/* [value(5)] */
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-}/* [public] */;
-
-struct nbt_cldap_netlogon_13 {
-       enum nbt_netlogon_command type;
-       uint16_t sbz;
-       uint32_t server_type;
-       struct GUID domain_uuid;
-       const char * forest;
-       const char * dns_domain;
-       const char * pdc_dns_name;
-       const char * domain;
-       const char * pdc_name;
-       const char * user_name;
-       const char * server_site;
-       const char * client_site;
-       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;
-};
-
-struct nbt_cldap_netlogon_15 {
-       enum nbt_netlogon_command type;
-       uint16_t sbz;
-       uint32_t server_type;
-       struct GUID domain_uuid;
-       const char * forest;
-       const char * dns_domain;
-       const char * pdc_dns_name;
-       const char * domain;
-       const char * pdc_name;
-       const char * user_name;
-       const char * server_site;
-       const char * client_site;
-       const char * next_closest_site;
-       uint32_t nt_version;/* [value(15)] */
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-}/* [public] */;
-
-struct nbt_cldap_netlogon_29 {
-       enum nbt_netlogon_command type;
-       uint16_t sbz;
-       uint32_t server_type;
-       struct GUID domain_uuid;
-       const char * forest;
-       const char * dns_domain;
-       const char * pdc_dns_name;
-       const char * domain;
-       const char * pdc_name;
-       const char * user_name;
-       const char * server_site;
-       const char * client_site;
-       uint8_t dc_sock_addr_size;
-       struct nbt_dc_sock_addr dc_sock_addr;/* [subcontext_size(dc_sock_addr_size),subcontext(0)] */
-       const char * next_closest_site;
-       uint32_t nt_version;/* [value(29)] */
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-}/* [public] */;
-
-union nbt_cldap_netlogon {
-       struct nbt_cldap_netlogon_1 logon1;/* [case(0)] */
-       struct nbt_cldap_netlogon_3 logon3;/* [case(2)] */
-       struct nbt_cldap_netlogon_5 logon5;/* [case(4)] */
-       struct nbt_cldap_netlogon_13 logon13;/* [case(8)] */
-       struct nbt_cldap_netlogon_15 logon15;/* [case(20)] */
-       struct nbt_cldap_netlogon_29 logon29;/* [case(29)] */
-}/* [public,nodiscriminant,flag(LIBNDR_FLAG_NOALIGN)] */;
-
-enum nbt_ntlogon_command
-#ifndef USE_UINT_ENUMS
- {
-       NTLOGON_SAM_LOGON=0x12,
-       NTLOGON_SAM_LOGON_REPLY=0x13,
-       NTLOGON_SAM_LOGON_REPLY15=0x15,
-       NTLOGON_RESPONSE_FROM_PDC2=0x17
-}
-#else
- { __donnot_use_enum_nbt_ntlogon_command=0x7FFFFFFF}
-#define NTLOGON_SAM_LOGON ( 0x12 )
-#define NTLOGON_SAM_LOGON_REPLY ( 0x13 )
-#define NTLOGON_SAM_LOGON_REPLY15 ( 0x15 )
-#define NTLOGON_RESPONSE_FROM_PDC2 ( 0x17 )
-#endif
-;
-
-struct nbt_ntlogon_sam_logon {
-       uint16_t request_count;
-       const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
-       uint32_t acct_control;
-       uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
-       struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
-       uint32_t nt_version;
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-};
-
-struct nbt_ntlogon_sam_logon_reply {
-       const char * server;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char * domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       uint32_t nt_version;
-       uint16_t lmnt_token;
-       uint16_t lm20_token;
-};
-
-union nbt_ntlogon_request {
-       struct nbt_ntlogon_sam_logon logon;/* [case(NTLOGON_SAM_LOGON)] */
-       struct nbt_ntlogon_sam_logon_reply reply;/* [case(NTLOGON_SAM_LOGON_REPLY)] */
-       struct nbt_netlogon_response_from_pdc2 reply2;/* [case(NTLOGON_RESPONSE_FROM_PDC2)] */
-}/* [nodiscriminant] */;
-
-struct nbt_ntlogon_packet {
-       enum nbt_ntlogon_command command;
-       union nbt_ntlogon_request req;/* [switch_is(command)] */
-}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
-
 enum nbt_browse_opcode
 #ifndef USE_UINT_ENUMS
  {
index d165e65329c929b3ebe3b22e8933d147b8882fcb..84cfabda574a3a58e456081dda4c6f5a3edaa44d 100644 (file)
@@ -589,27 +589,6 @@ _PUBLIC_ void ndr_print_nbt_rdata(struct ndr_print *ndr, const char *name, const
        }
 }
 
-static enum ndr_err_code ndr_push_nbt_res_rec(struct ndr_push *ndr, int ndr_flags, const struct nbt_res_rec *r)
-{
-       {
-               uint32_t _flags_save_STRUCT = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
-               if (ndr_flags & NDR_SCALARS) {
-                       NDR_CHECK(ndr_push_align(ndr, 4));
-                       NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->name));
-                       NDR_CHECK(ndr_push_nbt_qtype(ndr, NDR_SCALARS, r->rr_type));
-                       NDR_CHECK(ndr_push_nbt_qclass(ndr, NDR_SCALARS, r->rr_class));
-                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
-                       NDR_CHECK(ndr_push_set_switch_value(ndr, &r->rdata, ((((r->rr_type) == NBT_QTYPE_NETBIOS) && talloc_check_name(ndr, "struct ndr_push") && ((r->rdata).data.length == 2))?0:r->rr_type)));
-                       NDR_CHECK(ndr_push_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
-               }
-               if (ndr_flags & NDR_BUFFERS) {
-               }
-               ndr->flags = _flags_save_STRUCT;
-       }
-       return NDR_ERR_SUCCESS;
-}
-
 static enum ndr_err_code ndr_pull_nbt_res_rec(struct ndr_pull *ndr, int ndr_flags, struct nbt_res_rec *r)
 {
        {
@@ -621,7 +600,7 @@ static enum ndr_err_code ndr_pull_nbt_res_rec(struct ndr_pull *ndr, int ndr_flag
                        NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->rr_type));
                        NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->rr_class));
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
-                       NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rdata, ((((r->rr_type) == NBT_QTYPE_NETBIOS) && talloc_check_name(ndr, "struct ndr_push") && ((r->rdata).data.length == 2))?0:r->rr_type)));
+                       NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rdata, r->rr_type));
                        NDR_CHECK(ndr_pull_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
                }
                if (ndr_flags & NDR_BUFFERS) {
@@ -642,7 +621,7 @@ _PUBLIC_ void ndr_print_nbt_res_rec(struct ndr_print *ndr, const char *name, con
                ndr_print_nbt_qtype(ndr, "rr_type", r->rr_type);
                ndr_print_nbt_qclass(ndr, "rr_class", r->rr_class);
                ndr_print_uint32(ndr, "ttl", r->ttl);
-               ndr_print_set_switch_value(ndr, &r->rdata, ((((r->rr_type) == NBT_QTYPE_NETBIOS) && talloc_check_name(ndr, "struct ndr_push") && ((r->rdata).data.length == 2))?0:r->rr_type));
+               ndr_print_set_switch_value(ndr, &r->rdata, r->rr_type);
                ndr_print_nbt_rdata(ndr, "rdata", &r->rdata);
                ndr->depth--;
                ndr->flags = _flags_save_STRUCT;
@@ -1548,13 +1527,138 @@ _PUBLIC_ void ndr_print_nbt_dgram_packet(struct ndr_print *ndr, const char *name
        }
 }
 
-static enum ndr_err_code ndr_push_nbt_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum nbt_netlogon_command r)
+_PUBLIC_ enum ndr_err_code ndr_push_nbt_sockaddr(struct ndr_push *ndr, int ndr_flags, const struct nbt_sockaddr *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;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_nbt_sockaddr(struct ndr_pull *ndr, int ndr_flags, struct nbt_sockaddr *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_sockaddr(struct ndr_print *ndr, const char *name, const struct nbt_sockaddr *r)
+{
+       ndr_print_struct(ndr, name, "nbt_sockaddr");
+       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--;
+}
+
+_PUBLIC_ size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr *r, int flags)
+{
+       return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_nbt_sockaddr);
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+       ndr_print_uint32(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV, r);
+       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--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_netlogon_nt_version_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_netlogon_nt_version_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_netlogon_nt_version_flags(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+       ndr_print_uint32(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_1", NETLOGON_NT_VERSION_1, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5", NETLOGON_NT_VERSION_5, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX", NETLOGON_NT_VERSION_5EX, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX_WITH_IP", NETLOGON_NT_VERSION_5EX_WITH_IP, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", NETLOGON_NT_VERSION_WITH_CLOSEST_SITE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_AVIOD_NT4EMUL", NETLOGON_NT_VERSION_AVIOD_NT4EMUL, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_PDC", NETLOGON_NT_VERSION_PDC, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_IP", NETLOGON_NT_VERSION_IP, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_LOCAL", NETLOGON_NT_VERSION_LOCAL, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_GC", NETLOGON_NT_VERSION_GC, r);
+       ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum netlogon_command r)
 {
        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum nbt_netlogon_command *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum netlogon_command *r)
 {
        uint16_t v;
        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
@@ -1562,64 +1666,353 @@ static enum ndr_err_code ndr_pull_nbt_netlogon_command(struct ndr_pull *ndr, int
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_netlogon_command(struct ndr_print *ndr, const char *name, enum nbt_netlogon_command r)
+_PUBLIC_ void ndr_print_netlogon_command(struct ndr_print *ndr, const char *name, enum netlogon_command r)
 {
        const char *val = NULL;
 
        switch (r) {
-               case NETLOGON_QUERY_FOR_PDC: val = "NETLOGON_QUERY_FOR_PDC"; break;
+               case LOGON_PRIMARY_QUERY: val = "LOGON_PRIMARY_QUERY"; break;
                case NETLOGON_ANNOUNCE_UAS: val = "NETLOGON_ANNOUNCE_UAS"; break;
                case NETLOGON_RESPONSE_FROM_PDC: val = "NETLOGON_RESPONSE_FROM_PDC"; break;
-               case NETLOGON_QUERY_FOR_PDC2: val = "NETLOGON_QUERY_FOR_PDC2"; break;
-               case NETLOGON_RESPONSE_FROM_PDC2: val = "NETLOGON_RESPONSE_FROM_PDC2"; break;
-               case NETLOGON_RESPONSE_FROM_PDC_USER: val = "NETLOGON_RESPONSE_FROM_PDC_USER"; break;
+               case LOGON_SAM_LOGON_REQUEST: val = "LOGON_SAM_LOGON_REQUEST"; break;
+               case LOGON_SAM_LOGON_RESPONSE: val = "LOGON_SAM_LOGON_RESPONSE"; break;
+               case LOGON_SAM_LOGON_PAUSE_RESPONSE: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE"; break;
+               case LOGON_SAM_LOGON_USER_UNKNOWN: val = "LOGON_SAM_LOGON_USER_UNKNOWN"; break;
+               case LOGON_SAM_LOGON_RESPONSE_EX: val = "LOGON_SAM_LOGON_RESPONSE_EX"; break;
+               case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE_EX"; break;
+               case LOGON_SAM_LOGON_USER_UNKNOWN_EX: val = "LOGON_SAM_LOGON_USER_UNKNOWN_EX"; break;
        }
        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)
+_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_REQUEST *r)
+{
+       ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_REQUEST");
+       ndr->depth++;
+       ndr_print_uint16(ndr, "request_count", r->request_count);
+       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_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_DATA_BLOB(ndr, "_pad", r->_pad);
+       ndr_print_dom_sid0(ndr, "sid", &r->sid);
+       ndr_print_netlogon_nt_version_flags(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--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *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;
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_push_align(ndr, 4));
+                       NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
+                               ndr->flags = _flags_save_string;
+                       }
+                       NDR_CHECK(ndr_push_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_netlogon_version(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
+{
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_pull_align(ndr, 4));
+                       NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
+                               ndr->flags = _flags_save_string;
+                       }
+                       NDR_CHECK(ndr_pull_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
+{
+       ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_NT40");
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               ndr->depth++;
+               ndr_print_netlogon_command(ndr, "command", r->command);
+               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_netlogon_nt_version_flags(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--;
+               ndr->flags = _flags_save_STRUCT;
+       }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
+{
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_push_align(ndr, 4));
+                       NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
+                       NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
+                       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_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE *r)
+{
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_pull_align(ndr, 4));
+                       NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
+                       NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
+                       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_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
+{
+       ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE");
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               ndr->depth++;
+               ndr_print_netlogon_command(ndr, "command", r->command);
+               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_GUID(ndr, "domain_uuid", &r->domain_uuid);
+               ndr_print_GUID(ndr, "zero_uuid", &r->zero_uuid);
+               ndr_print_nbt_string(ndr, "forest", r->forest);
+               ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
+               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_netlogon_nt_version_flags(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--;
+               ndr->flags = _flags_save_STRUCT;
+       }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
+{
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_push_align(ndr, 4));
+                       NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
+                       NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
+                       NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
+                       NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
+                       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, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
+                       {
+                               struct ndr_push *_ndr_sockaddr;
+                               NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
+                               NDR_CHECK(ndr_push_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
+                               NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
+                       }
+                       NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->next_closest_site));
+                       NDR_CHECK(ndr_push_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_EX *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;
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_pull_align(ndr, 4));
+                       NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
+                       NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
+                       NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
+                       NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
+                       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->sockaddr_size));
+                       {
+                               struct ndr_pull *_ndr_sockaddr;
+                               NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sockaddr, 0, r->sockaddr_size));
+                               NDR_CHECK(ndr_pull_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
+                               NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sockaddr, 0, r->sockaddr_size));
+                       }
+                       NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->next_closest_site));
+                       NDR_CHECK(ndr_pull_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_netlogon_version(struct ndr_print *ndr, const char *name, uint32_t r)
+_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
 {
+       ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_EX");
        {
-               uint32_t _flags_save_BITMAP = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
-               ndr_print_uint32(ndr, name, r);
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
                ndr->depth++;
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_1", NETLOGON_NT_VERSION_1, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5", NETLOGON_NT_VERSION_5, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX", NETLOGON_NT_VERSION_5EX, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX_WITH_IP", NETLOGON_NT_VERSION_5EX_WITH_IP, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", NETLOGON_NT_VERSION_WITH_CLOSEST_SITE, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_AVIOD_NT4EMUL", NETLOGON_NT_VERSION_AVIOD_NT4EMUL, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_PDC", NETLOGON_NT_VERSION_PDC, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_IP", NETLOGON_NT_VERSION_IP, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_LOCAL", NETLOGON_NT_VERSION_LOCAL, r);
-               ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_GC", NETLOGON_NT_VERSION_GC, r);
+               ndr_print_netlogon_command(ndr, "command", r->command);
+               ndr_print_uint16(ndr, "sbz", r->sbz);
+               ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
+               ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
+               ndr_print_nbt_string(ndr, "forest", r->forest);
+               ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
+               ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
+               ndr_print_nbt_string(ndr, "domain", r->domain);
+               ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
+               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, "sockaddr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags):r->sockaddr_size);
+               ndr_print_nbt_sockaddr(ndr, "sockaddr", &r->sockaddr);
+               ndr_print_nbt_string(ndr, "next_closest_site", r->next_closest_site);
+               ndr_print_netlogon_nt_version_flags(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--;
-               ndr->flags = _flags_save_BITMAP;
+               ndr->flags = _flags_save_STRUCT;
        }
 }
 
@@ -1651,7 +2044,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_nbt_netlogon_version(ndr, NDR_SCALARS, r->nt_version));
+               NDR_CHECK(ndr_push_netlogon_nt_version_flags(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));
        }
@@ -1688,7 +2081,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_nbt_netlogon_version(ndr, NDR_SCALARS, &r->nt_version));
+               NDR_CHECK(ndr_pull_netlogon_nt_version_flags(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));
        }
@@ -1705,2146 +2098,322 @@ _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_nbt_netlogon_version(ndr, "nt_version", r->nt_version);
+       ndr_print_netlogon_nt_version_flags(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--;
 }
 
-static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc2(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_query_for_pdc2 *r)
-{
-       uint32_t cntr_unknown_0;
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->request_count));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc2(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_query_for_pdc2 *r)
-{
-       uint32_t cntr_unknown_0;
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->request_count));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc2 *r)
-{
-       uint32_t cntr_unknown_0;
-       ndr_print_struct(ndr, name, "nbt_netlogon_query_for_pdc2");
-       ndr->depth++;
-       ndr_print_uint16(ndr, "request_count", r->request_count);
-       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(ndr, "%s: ARRAY(%d)", "unknown", (int)2);
-       ndr->depth++;
-       for (cntr_unknown_0=0;cntr_unknown_0<2;cntr_unknown_0++) {
-               char *idx_0=NULL;
-               if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
-                       ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
-                       free(idx_0);
-               }
-       }
-       ndr->depth--;
-       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--;
-}
-
-static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
-                       NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
-                       NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r)
-{
-       ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc");
-       ndr->depth++;
-       ndr_print_string(ndr, "pdc_name", r->pdc_name);
-       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_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--;
-}
-
-static enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r)
-{
-       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
-{
-       uint32_t v;
-       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
-       *r = v;
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r)
-{
-       ndr_print_uint32(ndr, name, r);
-       ndr->depth++;
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC, r);
-       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV, r);
-       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->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->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, "family", r->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)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
-                       NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
-               NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
-               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->dc_sock_addr_size));
-               {
-                       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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-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)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
-                       NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
-               NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
-               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->dc_sock_addr_size));
-               {
-                       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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc2 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc2");
-       ndr->depth++;
-       ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
-       ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
-       ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
-       ndr_print_nbt_string(ndr, "forest", r->forest);
-       ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
-       ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
-       ndr_print_nbt_string(ndr, "domain", r->domain);
-       ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
-       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, "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--;
-}
-
-static enum ndr_err_code ndr_push_nbt_db_change(struct ndr_push *ndr, int ndr_flags, const struct nbt_db_change *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 8));
-               NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->db_index));
-               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->serial));
-               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timestamp));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_db_change(struct ndr_pull *ndr, int ndr_flags, struct nbt_db_change *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 8));
-               NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->db_index));
-               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->serial));
-               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timestamp));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_db_change(struct ndr_print *ndr, const char *name, const struct nbt_db_change *r)
-{
-       ndr_print_struct(ndr, name, "nbt_db_change");
-       ndr->depth++;
-       ndr_print_netr_SamDatabaseID(ndr, "db_index", r->db_index);
-       ndr_print_hyper(ndr, "serial", r->serial);
-       ndr_print_NTTIME(ndr, "timestamp", r->timestamp);
-       ndr->depth--;
-}
-
-static enum ndr_err_code ndr_push_nbt_netlogon_announce_uas(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_announce_uas *r)
-{
-       uint32_t cntr_dbchange_0;
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 8));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_lo));
-               NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pulse));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->random));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
-                       NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain));
-                       ndr->flags = _flags_save_string;
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->db_count));
-               for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
-                       NDR_CHECK(ndr_push_nbt_db_change(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
-               }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags)));
-               {
-                       struct ndr_push *_ndr_sid;
-                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
-                       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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_netlogon_announce_uas(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_announce_uas *r)
-{
-       uint32_t cntr_dbchange_0;
-       TALLOC_CTX *_mem_save_dbchange_0;
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 8));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_lo));
-               NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pulse));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->random));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
-                       NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
-                       ndr->flags = _flags_save_DATA_BLOB;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain));
-                       ndr->flags = _flags_save_string;
-               }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->db_count));
-               NDR_PULL_ALLOC_N(ndr, r->dbchange, r->db_count);
-               _mem_save_dbchange_0 = NDR_PULL_GET_MEM_CTX(ndr);
-               NDR_PULL_SET_MEM_CTX(ndr, r->dbchange, 0);
-               for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
-                       NDR_CHECK(ndr_pull_nbt_db_change(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
-               }
-               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dbchange_0, 0);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
-               {
-                       struct ndr_pull *_ndr_sid;
-                       NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 0, r->sid_size));
-                       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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_netlogon_announce_uas(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_announce_uas *r)
-{
-       uint32_t cntr_dbchange_0;
-       ndr_print_struct(ndr, name, "nbt_netlogon_announce_uas");
-       ndr->depth++;
-       ndr_print_uint32(ndr, "serial_lo", r->serial_lo);
-       ndr_print_time_t(ndr, "timestamp", r->timestamp);
-       ndr_print_uint32(ndr, "pulse", r->pulse);
-       ndr_print_uint32(ndr, "random", r->random);
-       ndr_print_string(ndr, "pdc_name", r->pdc_name);
-       ndr_print_string(ndr, "domain", r->domain);
-       ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
-       ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
-       ndr_print_string(ndr, "unicode_domain", r->unicode_domain);
-       ndr_print_uint32(ndr, "db_count", r->db_count);
-       ndr->print(ndr, "%s: ARRAY(%d)", "dbchange", (int)r->db_count);
-       ndr->depth++;
-       for (cntr_dbchange_0=0;cntr_dbchange_0<r->db_count;cntr_dbchange_0++) {
-               char *idx_0=NULL;
-               if (asprintf(&idx_0, "[%d]", cntr_dbchange_0) != -1) {
-                       ndr_print_nbt_db_change(ndr, "dbchange", &r->dbchange[cntr_dbchange_0]);
-                       free(idx_0);
-               }
-       }
-       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_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--;
-}
-
-static enum ndr_err_code ndr_push_nbt_netlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_netlogon_request *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               switch (level) {
-                       case NETLOGON_QUERY_FOR_PDC: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
-                       break; }
-
-                       case NETLOGON_QUERY_FOR_PDC2: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc2(ndr, NDR_SCALARS, &r->pdc2));
-                       break; }
-
-                       case NETLOGON_ANNOUNCE_UAS: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_announce_uas(ndr, NDR_SCALARS, &r->uas));
-                       break; }
-
-                       case NETLOGON_RESPONSE_FROM_PDC: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc(ndr, NDR_SCALARS, &r->response));
-                       break; }
-
-                       case NETLOGON_RESPONSE_FROM_PDC2: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
-                       break; }
-
-                       case NETLOGON_RESPONSE_FROM_PDC_USER: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
-                       break; }
-
-                       default:
-                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
-               }
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               int level = ndr_push_get_switch_value(ndr, r);
-               switch (level) {
-                       case NETLOGON_QUERY_FOR_PDC:
-                       break;
-
-                       case NETLOGON_QUERY_FOR_PDC2:
-                       break;
-
-                       case NETLOGON_ANNOUNCE_UAS:
-                               NDR_CHECK(ndr_push_nbt_netlogon_announce_uas(ndr, NDR_BUFFERS, &r->uas));
-                       break;
-
-                       case NETLOGON_RESPONSE_FROM_PDC:
-                       break;
-
-                       case NETLOGON_RESPONSE_FROM_PDC2:
-                       break;
-
-                       case NETLOGON_RESPONSE_FROM_PDC_USER:
-                       break;
-
-                       default:
-                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_netlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_netlogon_request *r)
-{
-       int level;
-       level = ndr_pull_get_switch_value(ndr, r);
-       if (ndr_flags & NDR_SCALARS) {
-               switch (level) {
-                       case NETLOGON_QUERY_FOR_PDC: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
-                       break; }
-
-                       case NETLOGON_QUERY_FOR_PDC2: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc2(ndr, NDR_SCALARS, &r->pdc2));
-                       break; }
-
-                       case NETLOGON_ANNOUNCE_UAS: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_announce_uas(ndr, NDR_SCALARS, &r->uas));
-                       break; }
-
-                       case NETLOGON_RESPONSE_FROM_PDC: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc(ndr, NDR_SCALARS, &r->response));
-                       break; }
-
-                       case NETLOGON_RESPONSE_FROM_PDC2: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
-                       break; }
-
-                       case NETLOGON_RESPONSE_FROM_PDC_USER: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
-                       break; }
-
-                       default:
-                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
-               }
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-               switch (level) {
-                       case NETLOGON_QUERY_FOR_PDC:
-                       break;
-
-                       case NETLOGON_QUERY_FOR_PDC2:
-                       break;
-
-                       case NETLOGON_ANNOUNCE_UAS:
-                               NDR_CHECK(ndr_pull_nbt_netlogon_announce_uas(ndr, NDR_BUFFERS, &r->uas));
-                       break;
-
-                       case NETLOGON_RESPONSE_FROM_PDC:
-                       break;
-
-                       case NETLOGON_RESPONSE_FROM_PDC2:
-                       break;
-
-                       case NETLOGON_RESPONSE_FROM_PDC_USER:
-                       break;
-
-                       default:
-                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
-               }
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r)
-{
-       int level;
-       level = ndr_print_get_switch_value(ndr, r);
-       ndr_print_union(ndr, name, level, "nbt_netlogon_request");
-       switch (level) {
-               case NETLOGON_QUERY_FOR_PDC:
-                       ndr_print_nbt_netlogon_query_for_pdc(ndr, "pdc", &r->pdc);
-               break;
-
-               case NETLOGON_QUERY_FOR_PDC2:
-                       ndr_print_nbt_netlogon_query_for_pdc2(ndr, "pdc2", &r->pdc2);
-               break;
-
-               case NETLOGON_ANNOUNCE_UAS:
-                       ndr_print_nbt_netlogon_announce_uas(ndr, "uas", &r->uas);
-               break;
-
-               case NETLOGON_RESPONSE_FROM_PDC:
-                       ndr_print_nbt_netlogon_response_from_pdc(ndr, "response", &r->response);
-               break;
-
-               case NETLOGON_RESPONSE_FROM_PDC2:
-                       ndr_print_nbt_netlogon_response_from_pdc2(ndr, "response2", &r->response2);
-               break;
-
-               case NETLOGON_RESPONSE_FROM_PDC_USER:
-                       ndr_print_nbt_netlogon_response_from_pdc2(ndr, "response2", &r->response2);
-               break;
-
-               default:
-                       ndr_print_bad_level(ndr, name, level);
-       }
-}
-
-_PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r)
-{
-       {
-               uint32_t _flags_save_STRUCT = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
-               if (ndr_flags & NDR_SCALARS) {
-                       NDR_CHECK(ndr_push_align(ndr, 8));
-                       NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->command));
-                       NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
-                       NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
-               }
-               if (ndr_flags & NDR_BUFFERS) {
-                       NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
-               }
-               ndr->flags = _flags_save_STRUCT;
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r)
-{
-       {
-               uint32_t _flags_save_STRUCT = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
-               if (ndr_flags & NDR_SCALARS) {
-                       NDR_CHECK(ndr_pull_align(ndr, 8));
-                       NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->command));
-                       NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
-                       NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
-               }
-               if (ndr_flags & NDR_BUFFERS) {
-                       NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
-               }
-               ndr->flags = _flags_save_STRUCT;
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r)
-{
-       ndr_print_struct(ndr, name, "nbt_netlogon_packet");
-       {
-               uint32_t _flags_save_STRUCT = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
-               ndr->depth++;
-               ndr_print_nbt_netlogon_command(ndr, "command", r->command);
-               ndr_print_set_switch_value(ndr, &r->req, r->command);
-               ndr_print_nbt_netlogon_request(ndr, "req", &r->req);
-               ndr->depth--;
-               ndr->flags = _flags_save_STRUCT;
-       }
-}
-
-static enum ndr_err_code ndr_push_nbt_cldap_netlogon_1(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_1 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->type));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_1(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_1 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->type));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon_1(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_1 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_cldap_netlogon_1");
-       ndr->depth++;
-       ndr_print_nbt_netlogon_command(ndr, "type", r->type);
-       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_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--;
-}
-
-static enum ndr_err_code ndr_push_nbt_cldap_netlogon_3(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_3 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->type));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
-                       ndr->flags = _flags_save_string;
-               }
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->unknown_uuid));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
-               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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_3(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_3 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->type));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
-                       ndr->flags = _flags_save_string;
-               }
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->unknown_uuid));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
-               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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon_3(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_3 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_cldap_netlogon_3");
-       ndr->depth++;
-       ndr_print_nbt_netlogon_command(ndr, "type", r->type);
-       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_GUID(ndr, "domain_uuid", &r->domain_uuid);
-       ndr_print_GUID(ndr, "unknown_uuid", &r->unknown_uuid);
-       ndr_print_nbt_string(ndr, "forest", r->forest);
-       ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
-       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_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--;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_5 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->type));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
-               NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
-               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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_5 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->type));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
-               NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
-               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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon_5(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_5 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_cldap_netlogon_5");
-       ndr->depth++;
-       ndr_print_nbt_netlogon_command(ndr, "type", r->type);
-       ndr_print_uint16(ndr, "sbz", r->sbz);
-       ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
-       ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
-       ndr_print_nbt_string(ndr, "forest", r->forest);
-       ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
-       ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
-       ndr_print_nbt_string(ndr, "domain", r->domain);
-       ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
-       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_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--;
-}
-
-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)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->type));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
-               NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
-               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->dc_sock_addr_size));
-               {
-                       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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_13(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_13 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->type));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
-               NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
-               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->dc_sock_addr_size));
-               {
-                       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_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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon_13(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_13 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_cldap_netlogon_13");
-       ndr->depth++;
-       ndr_print_nbt_netlogon_command(ndr, "type", r->type);
-       ndr_print_uint16(ndr, "sbz", r->sbz);
-       ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
-       ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
-       ndr_print_nbt_string(ndr, "forest", r->forest);
-       ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
-       ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
-       ndr_print_nbt_string(ndr, "domain", r->domain);
-       ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
-       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, "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--;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon_15(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_15 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->type));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
-               NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
-               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_nbt_string(ndr, NDR_SCALARS, r->next_closest_site));
-               NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, 15));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon_15(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_15 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->type));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
-               NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
-               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_nbt_string(ndr, NDR_SCALARS, &r->next_closest_site));
-               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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon_15(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_15 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_cldap_netlogon_15");
-       ndr->depth++;
-       ndr_print_nbt_netlogon_command(ndr, "type", r->type);
-       ndr_print_uint16(ndr, "sbz", r->sbz);
-       ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
-       ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
-       ndr_print_nbt_string(ndr, "forest", r->forest);
-       ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
-       ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
-       ndr_print_nbt_string(ndr, "domain", r->domain);
-       ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
-       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_nbt_string(ndr, "next_closest_site", r->next_closest_site);
-       ndr_print_nbt_netlogon_version(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?15:r->nt_version);
-       ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
-       ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
-       ndr->depth--;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon_29(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_29 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->type));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
-               NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
-               NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
-               NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
-               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->dc_sock_addr_size));
-               {
-                       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_nbt_string(ndr, NDR_SCALARS, r->next_closest_site));
-               NDR_CHECK(ndr_push_nbt_netlogon_version(ndr, NDR_SCALARS, 29));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon_29(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_29 *r)
-{
-       if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->type));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
-               NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
-               NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
-               NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
-               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->dc_sock_addr_size));
-               {
-                       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_nbt_string(ndr, NDR_SCALARS, &r->next_closest_site));
-               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));
-       }
-       if (ndr_flags & NDR_BUFFERS) {
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon_29(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_29 *r)
-{
-       ndr_print_struct(ndr, name, "nbt_cldap_netlogon_29");
-       ndr->depth++;
-       ndr_print_nbt_netlogon_command(ndr, "type", r->type);
-       ndr_print_uint16(ndr, "sbz", r->sbz);
-       ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
-       ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
-       ndr_print_nbt_string(ndr, "forest", r->forest);
-       ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
-       ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
-       ndr_print_nbt_string(ndr, "domain", r->domain);
-       ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
-       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, "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_string(ndr, "next_closest_site", r->next_closest_site);
-       ndr_print_nbt_netlogon_version(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?29:r->nt_version);
-       ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
-       ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
-       ndr->depth--;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon(struct ndr_push *ndr, int ndr_flags, const union nbt_cldap_netlogon *r)
+_PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc *r)
 {
        {
-               uint32_t _flags_save_UNION = ndr->flags;
+               uint32_t _flags_save_STRUCT = ndr->flags;
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
                if (ndr_flags & NDR_SCALARS) {
-                       int level = ndr_push_get_switch_value(ndr, r);
-                       switch (level) {
-                               case 0: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 1: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 2: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 3: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 4: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 5: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 6: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 7: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 8: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 9: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 10: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 11: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 12: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 13: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 14: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 15: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 16: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 17: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 18: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 19: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 20: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 21: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 22: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 23: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 24: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 25: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 26: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 27: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 28: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 29: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_29(ndr, NDR_SCALARS, &r->logon29));
-                               break; }
-
-                               case 30: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_29(ndr, NDR_SCALARS, &r->logon29));
-                               break; }
-
-                               case 31: {
-                                       NDR_CHECK(ndr_push_nbt_cldap_netlogon_29(ndr, NDR_SCALARS, &r->logon29));
-                               break; }
-
-                               default:
-                                       return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
-                       }
-               }
-               if (ndr_flags & NDR_BUFFERS) {
-                       int level = ndr_push_get_switch_value(ndr, r);
-                       switch (level) {
-                               case 0:
-                               break;
-
-                               case 1:
-                               break;
-
-                               case 2:
-                               break;
-
-                               case 3:
-                               break;
-
-                               case 4:
-                               break;
-
-                               case 5:
-                               break;
-
-                               case 6:
-                               break;
-
-                               case 7:
-                               break;
-
-                               case 8:
-                               break;
-
-                               case 9:
-                               break;
-
-                               case 10:
-                               break;
-
-                               case 11:
-                               break;
-
-                               case 12:
-                               break;
-
-                               case 13:
-                               break;
-
-                               case 14:
-                               break;
-
-                               case 15:
-                               break;
-
-                               case 16:
-                               break;
-
-                               case 17:
-                               break;
-
-                               case 18:
-                               break;
-
-                               case 19:
-                               break;
-
-                               case 20:
-                               break;
-
-                               case 21:
-                               break;
-
-                               case 22:
-                               break;
-
-                               case 23:
-                               break;
-
-                               case 24:
-                               break;
-
-                               case 25:
-                               break;
-
-                               case 26:
-                               break;
-
-                               case 27:
-                               break;
-
-                               case 28:
-                               break;
-
-                               case 29:
-                               break;
-
-                               case 30:
-                               break;
-
-                               case 31:
-                               break;
-
-                               default:
-                                       return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
+                       NDR_CHECK(ndr_push_align(ndr, 4));
+                       NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
+                               ndr->flags = _flags_save_string;
                        }
-               }
-               ndr->flags = _flags_save_UNION;
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon(struct ndr_pull *ndr, int ndr_flags, union nbt_cldap_netlogon *r)
-{
-       int level;
-       {
-               uint32_t _flags_save_UNION = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
-               level = ndr_pull_get_switch_value(ndr, r);
-               if (ndr_flags & NDR_SCALARS) {
-                       switch (level) {
-                               case 0: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 1: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 2: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 3: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 4: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 5: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 6: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 7: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
-                               break; }
-
-                               case 8: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 9: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 10: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 11: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 12: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 13: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 14: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 15: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
-                               break; }
-
-                               case 16: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 17: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
-                               break; }
-
-                               case 18: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 19: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
-                               break; }
-
-                               case 20: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 21: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 22: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 23: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 24: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 25: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 26: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 27: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 28: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_15(ndr, NDR_SCALARS, &r->logon15));
-                               break; }
-
-                               case 29: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_29(ndr, NDR_SCALARS, &r->logon29));
-                               break; }
-
-                               case 30: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_29(ndr, NDR_SCALARS, &r->logon29));
-                               break; }
-
-                               case 31: {
-                                       NDR_CHECK(ndr_pull_nbt_cldap_netlogon_29(ndr, NDR_SCALARS, &r->logon29));
-                               break; }
-
-                               default:
-                                       return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
+                       {
+                               uint32_t _flags_save_DATA_BLOB = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
+                               NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
+                               ndr->flags = _flags_save_DATA_BLOB;
                        }
-               }
-               if (ndr_flags & NDR_BUFFERS) {
-                       switch (level) {
-                               case 0:
-                               break;
-
-                               case 1:
-                               break;
-
-                               case 2:
-                               break;
-
-                               case 3:
-                               break;
-
-                               case 4:
-                               break;
-
-                               case 5:
-                               break;
-
-                               case 6:
-                               break;
-
-                               case 7:
-                               break;
-
-                               case 8:
-                               break;
-
-                               case 9:
-                               break;
-
-                               case 10:
-                               break;
-
-                               case 11:
-                               break;
-
-                               case 12:
-                               break;
-
-                               case 13:
-                               break;
-
-                               case 14:
-                               break;
-
-                               case 15:
-                               break;
-
-                               case 16:
-                               break;
-
-                               case 17:
-                               break;
-
-                               case 18:
-                               break;
-
-                               case 19:
-                               break;
-
-                               case 20:
-                               break;
-
-                               case 21:
-                               break;
-
-                               case 22:
-                               break;
-
-                               case 23:
-                               break;
-
-                               case 24:
-                               break;
-
-                               case 25:
-                               break;
-
-                               case 26:
-                               break;
-
-                               case 27:
-                               break;
-
-                               case 28:
-                               break;
-
-                               case 29:
-                               break;
-
-                               case 30:
-                               break;
-
-                               case 31:
-                               break;
-
-                               default:
-                                       return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
+                               ndr->flags = _flags_save_string;
                        }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       NDR_CHECK(ndr_push_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
                }
-               ndr->flags = _flags_save_UNION;
-       }
-       return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_nbt_cldap_netlogon(struct ndr_print *ndr, const char *name, const union nbt_cldap_netlogon *r)
-{
-       int level;
-       {
-               uint32_t _flags_save_UNION = ndr->flags;
-               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
-               level = ndr_print_get_switch_value(ndr, r);
-               ndr_print_union(ndr, name, level, "nbt_cldap_netlogon");
-               switch (level) {
-                       case 0:
-                               ndr_print_nbt_cldap_netlogon_1(ndr, "logon1", &r->logon1);
-                       break;
-
-                       case 1:
-                               ndr_print_nbt_cldap_netlogon_1(ndr, "logon1", &r->logon1);
-                       break;
-
-                       case 2:
-                               ndr_print_nbt_cldap_netlogon_3(ndr, "logon3", &r->logon3);
-                       break;
-
-                       case 3:
-                               ndr_print_nbt_cldap_netlogon_3(ndr, "logon3", &r->logon3);
-                       break;
-
-                       case 4:
-                               ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
-                       break;
-
-                       case 5:
-                               ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
-                       break;
-
-                       case 6:
-                               ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
-                       break;
-
-                       case 7:
-                               ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
-                       break;
-
-                       case 8:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 9:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 10:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 11:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 12:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 13:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 14:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 15:
-                               ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
-                       break;
-
-                       case 16:
-                               ndr_print_nbt_cldap_netlogon_1(ndr, "logon1", &r->logon1);
-                       break;
-
-                       case 17:
-                               ndr_print_nbt_cldap_netlogon_1(ndr, "logon1", &r->logon1);
-                       break;
-
-                       case 18:
-                               ndr_print_nbt_cldap_netlogon_3(ndr, "logon3", &r->logon3);
-                       break;
-
-                       case 19:
-                               ndr_print_nbt_cldap_netlogon_3(ndr, "logon3", &r->logon3);
-                       break;
-
-                       case 20:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 21:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 22:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 23:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 24:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 25:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 26:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 27:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 28:
-                               ndr_print_nbt_cldap_netlogon_15(ndr, "logon15", &r->logon15);
-                       break;
-
-                       case 29:
-                               ndr_print_nbt_cldap_netlogon_29(ndr, "logon29", &r->logon29);
-                       break;
-
-                       case 30:
-                               ndr_print_nbt_cldap_netlogon_29(ndr, "logon29", &r->logon29);
-                       break;
-
-                       case 31:
-                               ndr_print_nbt_cldap_netlogon_29(ndr, "logon29", &r->logon29);
-                       break;
-
-                       default:
-                               ndr_print_bad_level(ndr, name, level);
-               }
-               ndr->flags = _flags_save_UNION;
+               ndr->flags = _flags_save_STRUCT;
        }
-}
-
-static enum ndr_err_code ndr_push_nbt_ntlogon_command(struct ndr_push *ndr, int ndr_flags, enum nbt_ntlogon_command r)
-{
-       NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_ntlogon_command(struct ndr_pull *ndr, int ndr_flags, enum nbt_ntlogon_command *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc *r)
 {
-       uint16_t v;
-       NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
-       *r = v;
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               if (ndr_flags & NDR_SCALARS) {
+                       NDR_CHECK(ndr_pull_align(ndr, 4));
+                       NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_DATA_BLOB = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
+                               NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
+                               ndr->flags = _flags_save_DATA_BLOB;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       {
+                               uint32_t _flags_save_string = ndr->flags;
+                               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
+                               ndr->flags = _flags_save_string;
+                       }
+                       NDR_CHECK(ndr_pull_netlogon_nt_version_flags(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));
+               }
+               if (ndr_flags & NDR_BUFFERS) {
+               }
+               ndr->flags = _flags_save_STRUCT;
+       }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_ntlogon_command(struct ndr_print *ndr, const char *name, enum nbt_ntlogon_command r)
+_PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r)
 {
-       const char *val = NULL;
-
-       switch (r) {
-               case NTLOGON_SAM_LOGON: val = "NTLOGON_SAM_LOGON"; break;
-               case NTLOGON_SAM_LOGON_REPLY: val = "NTLOGON_SAM_LOGON_REPLY"; break;
-               case NTLOGON_SAM_LOGON_REPLY15: val = "NTLOGON_SAM_LOGON_REPLY15"; break;
-               case NTLOGON_RESPONSE_FROM_PDC2: val = "NTLOGON_RESPONSE_FROM_PDC2"; break;
+       ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc");
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               ndr->depth++;
+               ndr_print_netlogon_command(ndr, "command", r->command);
+               ndr_print_string(ndr, "pdc_name", r->pdc_name);
+               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_netlogon_nt_version_flags(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--;
+               ndr->flags = _flags_save_STRUCT;
        }
-       ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
-static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_sam_logon *r)
+static enum ndr_err_code ndr_push_nbt_db_change_info(struct ndr_push *ndr, int ndr_flags, const struct nbt_db_change_info *r)
 {
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->request_count));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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;
-                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
-                       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_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));
+               NDR_CHECK(ndr_push_align(ndr, 8));
+               NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->db_index));
+               NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->serial));
+               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timestamp));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_sam_logon *r)
+static enum ndr_err_code ndr_pull_nbt_db_change_info(struct ndr_pull *ndr, int ndr_flags, struct nbt_db_change_info *r)
 {
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->request_count));
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
-                       ndr->flags = _flags_save_string;
-               }
-               {
-                       uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
-                       ndr->flags = _flags_save_string;
-               }
-               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;
-                       NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 0, r->sid_size));
-                       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_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));
+               NDR_CHECK(ndr_pull_align(ndr, 8));
+               NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->db_index));
+               NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->serial));
+               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timestamp));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_ntlogon_sam_logon(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_sam_logon *r)
+_PUBLIC_ void ndr_print_nbt_db_change_info(struct ndr_print *ndr, const char *name, const struct nbt_db_change_info *r)
 {
-       ndr_print_struct(ndr, name, "nbt_ntlogon_sam_logon");
+       ndr_print_struct(ndr, name, "nbt_db_change_info");
        ndr->depth++;
-       ndr_print_uint16(ndr, "request_count", r->request_count);
-       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_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_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_print_netr_SamDatabaseID(ndr, "db_index", r->db_index);
+       ndr_print_hyper(ndr, "serial", r->serial);
+       ndr_print_NTTIME(ndr, "timestamp", r->timestamp);
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon_reply(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_sam_logon_reply *r)
+static enum ndr_err_code ndr_push_NETLOGON_DB_CHANGE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_DB_CHANGE *r)
 {
+       uint32_t cntr_dbchange_0;
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_align(ndr, 8));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_lo));
+               NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pulse));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->random));
                {
                        uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server));
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
                        ndr->flags = _flags_save_string;
                }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
+                       NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
+                       ndr->flags = _flags_save_DATA_BLOB;
+               }
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
                        ndr->flags = _flags_save_string;
                }
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain));
                        ndr->flags = _flags_save_string;
                }
-               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));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->db_count));
+               for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
+                       NDR_CHECK(ndr_push_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
+               }
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags)));
+               {
+                       struct ndr_push *_ndr_sid;
+                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
+                       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->message_format_version));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_token));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon_reply(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_sam_logon_reply *r)
+static enum ndr_err_code ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_DB_CHANGE *r)
 {
+       uint32_t cntr_dbchange_0;
+       TALLOC_CTX *_mem_save_dbchange_0;
        if (ndr_flags & NDR_SCALARS) {
-               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_align(ndr, 8));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_lo));
+               NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pulse));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->random));
                {
                        uint32_t _flags_save_string = ndr->flags;
-                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server));
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
                        ndr->flags = _flags_save_string;
                }
+               {
+                       uint32_t _flags_save_DATA_BLOB = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
+                       NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
+                       ndr->flags = _flags_save_DATA_BLOB;
+               }
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
                        ndr->flags = _flags_save_string;
                }
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
-                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain));
                        ndr->flags = _flags_save_string;
                }
-               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));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->db_count));
+               NDR_PULL_ALLOC_N(ndr, r->dbchange, r->db_count);
+               _mem_save_dbchange_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->dbchange, 0);
+               for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
+                       NDR_CHECK(ndr_pull_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dbchange_0, 0);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
+               {
+                       struct ndr_pull *_ndr_sid;
+                       NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 0, r->sid_size));
+                       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->message_format_version));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_token));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_ntlogon_sam_logon_reply(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_sam_logon_reply *r)
+_PUBLIC_ void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print *ndr, const char *name, const struct NETLOGON_DB_CHANGE *r)
 {
-       ndr_print_struct(ndr, name, "nbt_ntlogon_sam_logon_reply");
+       uint32_t cntr_dbchange_0;
+       ndr_print_struct(ndr, name, "NETLOGON_DB_CHANGE");
        ndr->depth++;
-       ndr_print_string(ndr, "server", r->server);
-       ndr_print_string(ndr, "user_name", r->user_name);
+       ndr_print_uint32(ndr, "serial_lo", r->serial_lo);
+       ndr_print_time_t(ndr, "timestamp", r->timestamp);
+       ndr_print_uint32(ndr, "pulse", r->pulse);
+       ndr_print_uint32(ndr, "random", r->random);
+       ndr_print_string(ndr, "pdc_name", r->pdc_name);
        ndr_print_string(ndr, "domain", r->domain);
-       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_print_DATA_BLOB(ndr, "_pad", r->_pad);
+       ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
+       ndr_print_string(ndr, "unicode_domain", r->unicode_domain);
+       ndr_print_uint32(ndr, "db_count", r->db_count);
+       ndr->print(ndr, "%s: ARRAY(%d)", "dbchange", (int)r->db_count);
+       ndr->depth++;
+       for (cntr_dbchange_0=0;cntr_dbchange_0<r->db_count;cntr_dbchange_0++) {
+               char *idx_0=NULL;
+               if (asprintf(&idx_0, "[%d]", cntr_dbchange_0) != -1) {
+                       ndr_print_nbt_db_change_info(ndr, "dbchange", &r->dbchange[cntr_dbchange_0]);
+                       free(idx_0);
+               }
+       }
+       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, "message_format_version", r->message_format_version);
+       ndr_print_uint32(ndr, "message_token", r->message_token);
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_nbt_ntlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_ntlogon_request *r)
+static enum ndr_err_code ndr_push_nbt_netlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_netlogon_request *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                int level = ndr_push_get_switch_value(ndr, r);
                switch (level) {
-                       case NTLOGON_SAM_LOGON: {
-                               NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon(ndr, NDR_SCALARS, &r->logon));
-                       break; }
-
-                       case NTLOGON_SAM_LOGON_REPLY: {
-                               NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
+                       case LOGON_SAM_LOGON_REQUEST: {
+                               NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
                        break; }
 
-                       case NTLOGON_SAM_LOGON_REPLY15: {
-                               NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
+                       case LOGON_PRIMARY_QUERY: {
+                               NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
                        break; }
 
-                       case NTLOGON_RESPONSE_FROM_PDC2: {
-                               NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->reply2));
+                       case NETLOGON_ANNOUNCE_UAS: {
+                               NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
                        break; }
 
                        default:
@@ -3854,17 +2423,15 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_request(struct ndr_push *ndr, int
        if (ndr_flags & NDR_BUFFERS) {
                int level = ndr_push_get_switch_value(ndr, r);
                switch (level) {
-                       case NTLOGON_SAM_LOGON:
-                               NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon(ndr, NDR_BUFFERS, &r->logon));
-                       break;
-
-                       case NTLOGON_SAM_LOGON_REPLY:
+                       case LOGON_SAM_LOGON_REQUEST:
+                               NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
                        break;
 
-                       case NTLOGON_SAM_LOGON_REPLY15:
+                       case LOGON_PRIMARY_QUERY:
                        break;
 
-                       case NTLOGON_RESPONSE_FROM_PDC2:
+                       case NETLOGON_ANNOUNCE_UAS:
+                               NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
                        break;
 
                        default:
@@ -3874,26 +2441,22 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_request(struct ndr_push *ndr, int
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_ntlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_ntlogon_request *r)
+static enum ndr_err_code ndr_pull_nbt_netlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_netlogon_request *r)
 {
        int level;
        level = ndr_pull_get_switch_value(ndr, r);
        if (ndr_flags & NDR_SCALARS) {
                switch (level) {
-                       case NTLOGON_SAM_LOGON: {
-                               NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon(ndr, NDR_SCALARS, &r->logon));
-                       break; }
-
-                       case NTLOGON_SAM_LOGON_REPLY: {
-                               NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
+                       case LOGON_SAM_LOGON_REQUEST: {
+                               NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
                        break; }
 
-                       case NTLOGON_SAM_LOGON_REPLY15: {
-                               NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
+                       case LOGON_PRIMARY_QUERY: {
+                               NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
                        break; }
 
-                       case NTLOGON_RESPONSE_FROM_PDC2: {
-                               NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->reply2));
+                       case NETLOGON_ANNOUNCE_UAS: {
+                               NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
                        break; }
 
                        default:
@@ -3902,17 +2465,15 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_request(struct ndr_pull *ndr, int
        }
        if (ndr_flags & NDR_BUFFERS) {
                switch (level) {
-                       case NTLOGON_SAM_LOGON:
-                               NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon(ndr, NDR_BUFFERS, &r->logon));
-                       break;
-
-                       case NTLOGON_SAM_LOGON_REPLY:
+                       case LOGON_SAM_LOGON_REQUEST:
+                               NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
                        break;
 
-                       case NTLOGON_SAM_LOGON_REPLY15:
+                       case LOGON_PRIMARY_QUERY:
                        break;
 
-                       case NTLOGON_RESPONSE_FROM_PDC2:
+                       case NETLOGON_ANNOUNCE_UAS:
+                               NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
                        break;
 
                        default:
@@ -3922,26 +2483,22 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_request(struct ndr_pull *ndr, int
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_ntlogon_request(struct ndr_print *ndr, const char *name, const union nbt_ntlogon_request *r)
+_PUBLIC_ void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r)
 {
        int level;
        level = ndr_print_get_switch_value(ndr, r);
-       ndr_print_union(ndr, name, level, "nbt_ntlogon_request");
+       ndr_print_union(ndr, name, level, "nbt_netlogon_request");
        switch (level) {
-               case NTLOGON_SAM_LOGON:
-                       ndr_print_nbt_ntlogon_sam_logon(ndr, "logon", &r->logon);
-               break;
-
-               case NTLOGON_SAM_LOGON_REPLY:
-                       ndr_print_nbt_ntlogon_sam_logon_reply(ndr, "reply", &r->reply);
+               case LOGON_SAM_LOGON_REQUEST:
+                       ndr_print_NETLOGON_SAM_LOGON_REQUEST(ndr, "logon", &r->logon);
                break;
 
-               case NTLOGON_SAM_LOGON_REPLY15:
-                       ndr_print_nbt_ntlogon_sam_logon_reply(ndr, "reply", &r->reply);
+               case LOGON_PRIMARY_QUERY:
+                       ndr_print_nbt_netlogon_query_for_pdc(ndr, "pdc", &r->pdc);
                break;
 
-               case NTLOGON_RESPONSE_FROM_PDC2:
-                       ndr_print_nbt_netlogon_response_from_pdc2(ndr, "reply2", &r->reply2);
+               case NETLOGON_ANNOUNCE_UAS:
+                       ndr_print_NETLOGON_DB_CHANGE(ndr, "uas", &r->uas);
                break;
 
                default:
@@ -3949,54 +2506,54 @@ _PUBLIC_ void ndr_print_nbt_ntlogon_request(struct ndr_print *ndr, const char *n
        }
 }
 
-_PUBLIC_ enum ndr_err_code ndr_push_nbt_ntlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_packet *r)
+_PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r)
 {
        {
                uint32_t _flags_save_STRUCT = ndr->flags;
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
                if (ndr_flags & NDR_SCALARS) {
-                       NDR_CHECK(ndr_push_align(ndr, 4));
-                       NDR_CHECK(ndr_push_nbt_ntlogon_command(ndr, NDR_SCALARS, r->command));
+                       NDR_CHECK(ndr_push_align(ndr, 8));
+                       NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
                        NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
-                       NDR_CHECK(ndr_push_nbt_ntlogon_request(ndr, NDR_SCALARS, &r->req));
+                       NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
                }
                if (ndr_flags & NDR_BUFFERS) {
-                       NDR_CHECK(ndr_push_nbt_ntlogon_request(ndr, NDR_BUFFERS, &r->req));
+                       NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
                }
                ndr->flags = _flags_save_STRUCT;
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ enum ndr_err_code ndr_pull_nbt_ntlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_packet *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r)
 {
        {
                uint32_t _flags_save_STRUCT = ndr->flags;
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
                if (ndr_flags & NDR_SCALARS) {
-                       NDR_CHECK(ndr_pull_align(ndr, 4));
-                       NDR_CHECK(ndr_pull_nbt_ntlogon_command(ndr, NDR_SCALARS, &r->command));
+                       NDR_CHECK(ndr_pull_align(ndr, 8));
+                       NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
-                       NDR_CHECK(ndr_pull_nbt_ntlogon_request(ndr, NDR_SCALARS, &r->req));
+                       NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
                }
                if (ndr_flags & NDR_BUFFERS) {
-                       NDR_CHECK(ndr_pull_nbt_ntlogon_request(ndr, NDR_BUFFERS, &r->req));
+                       NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
                }
                ndr->flags = _flags_save_STRUCT;
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_nbt_ntlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_packet *r)
+_PUBLIC_ void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r)
 {
-       ndr_print_struct(ndr, name, "nbt_ntlogon_packet");
+       ndr_print_struct(ndr, name, "nbt_netlogon_packet");
        {
                uint32_t _flags_save_STRUCT = ndr->flags;
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
                ndr->depth++;
-               ndr_print_nbt_ntlogon_command(ndr, "command", r->command);
+               ndr_print_netlogon_command(ndr, "command", r->command);
                ndr_print_set_switch_value(ndr, &r->req, r->command);
-               ndr_print_nbt_ntlogon_request(ndr, "req", &r->req);
+               ndr_print_nbt_netlogon_request(ndr, "req", &r->req);
                ndr->depth--;
                ndr->flags = _flags_save_STRUCT;
        }
index f70d1ba8dfd70b3a219e13f75a06b419da4e43dd..1a0ca0c302422ef1cb9d8b85a0804e9f982147e0 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef _HEADER_NDR_nbt
 #define _HEADER_NDR_nbt
 
+#include "../libcli/netlogon.h"
 #include "../libcli/nbt/libnbt.h"
 #define NDR_NBT_CALL_COUNT (0)
 void ndr_print_nbt_operation(struct ndr_print *ndr, const char *name, uint16_t r);
@@ -30,6 +31,7 @@ void ndr_print_nbt_rdata_data(struct ndr_print *ndr, const char *name, const str
 enum ndr_err_code ndr_push_nbt_rdata(struct ndr_push *ndr, int ndr_flags, const union nbt_rdata *r);
 enum ndr_err_code ndr_pull_nbt_rdata(struct ndr_pull *ndr, int ndr_flags, union nbt_rdata *r);
 void ndr_print_nbt_rdata(struct ndr_print *ndr, const char *name, const union nbt_rdata *r);
+enum ndr_err_code ndr_push_nbt_res_rec(struct ndr_push *ndr, int ndr_flags, const struct nbt_res_rec *r);
 void ndr_print_nbt_res_rec(struct ndr_print *ndr, const char *name, const struct nbt_res_rec *r);
 enum ndr_err_code ndr_push_nbt_name_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_packet *r);
 enum ndr_err_code ndr_pull_nbt_name_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_packet *r);
@@ -49,42 +51,41 @@ void ndr_print_dgram_data(struct ndr_print *ndr, const char *name, const union d
 enum ndr_err_code ndr_push_nbt_dgram_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_dgram_packet *r);
 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);
+enum ndr_err_code ndr_push_nbt_sockaddr(struct ndr_push *ndr, int ndr_flags, const struct nbt_sockaddr *r);
+enum ndr_err_code ndr_pull_nbt_sockaddr(struct ndr_pull *ndr, int ndr_flags, struct nbt_sockaddr *r);
+void ndr_print_nbt_sockaddr(struct ndr_print *ndr, const char *name, const struct nbt_sockaddr *r);
+size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr *r, int flags);
+enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r);
+enum ndr_err_code ndr_push_netlogon_nt_version_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+enum ndr_err_code ndr_pull_netlogon_nt_version_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+void ndr_print_netlogon_nt_version_flags(struct ndr_print *ndr, const char *name, uint32_t r);
+enum ndr_err_code ndr_push_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum netlogon_command r);
+enum ndr_err_code ndr_pull_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum netlogon_command *r);
+void ndr_print_netlogon_command(struct ndr_print *ndr, const char *name, enum netlogon_command r);
+enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_REQUEST(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_REQUEST *r);
+enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_REQUEST(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_REQUEST *r);
+void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_REQUEST *r);
+enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r);
+enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r);
+void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r);
+enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE *r);
+enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE *r);
+void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE *r);
+enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r);
+enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_EX *r);
+void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *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);
+enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc *r);
+enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc *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);
+void ndr_print_nbt_db_change_info(struct ndr_print *ndr, const char *name, const struct nbt_db_change_info *r);
+void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print *ndr, const char *name, const struct NETLOGON_DB_CHANGE *r);
 void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r);
 enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r);
 enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r);
 void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r);
-void ndr_print_nbt_cldap_netlogon_1(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_1 *r);
-void ndr_print_nbt_cldap_netlogon_3(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_3 *r);
-enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_5 *r);
-enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_5 *r);
-void ndr_print_nbt_cldap_netlogon_5(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_5 *r);
-void ndr_print_nbt_cldap_netlogon_13(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_13 *r);
-enum ndr_err_code ndr_push_nbt_cldap_netlogon_15(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_15 *r);
-enum ndr_err_code ndr_pull_nbt_cldap_netlogon_15(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_15 *r);
-void ndr_print_nbt_cldap_netlogon_15(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_15 *r);
-enum ndr_err_code ndr_push_nbt_cldap_netlogon_29(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_29 *r);
-enum ndr_err_code ndr_pull_nbt_cldap_netlogon_29(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_29 *r);
-void ndr_print_nbt_cldap_netlogon_29(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_29 *r);
-enum ndr_err_code ndr_push_nbt_cldap_netlogon(struct ndr_push *ndr, int ndr_flags, const union nbt_cldap_netlogon *r);
-enum ndr_err_code ndr_pull_nbt_cldap_netlogon(struct ndr_pull *ndr, int ndr_flags, union nbt_cldap_netlogon *r);
-void ndr_print_nbt_cldap_netlogon(struct ndr_print *ndr, const char *name, const union nbt_cldap_netlogon *r);
-void ndr_print_nbt_ntlogon_command(struct ndr_print *ndr, const char *name, enum nbt_ntlogon_command r);
-void ndr_print_nbt_ntlogon_sam_logon(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_sam_logon *r);
-void ndr_print_nbt_ntlogon_sam_logon_reply(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_sam_logon_reply *r);
-void ndr_print_nbt_ntlogon_request(struct ndr_print *ndr, const char *name, const union nbt_ntlogon_request *r);
-enum ndr_err_code ndr_push_nbt_ntlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_packet *r);
-enum ndr_err_code ndr_pull_nbt_ntlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_packet *r);
-void ndr_print_nbt_ntlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_packet *r);
 void ndr_print_nbt_browse_opcode(struct ndr_print *ndr, const char *name, enum nbt_browse_opcode r);
 void ndr_print_nbt_browse_host_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_host_announcement *r);
 void ndr_print_nbt_browse_announcement_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_announcement_request *r);