diff options
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/idl/nbt.idl | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/source4/librpc/idl/nbt.idl b/source4/librpc/idl/nbt.idl index f6c491fe90..a28c029b7d 100644 --- a/source4/librpc/idl/nbt.idl +++ b/source4/librpc/idl/nbt.idl @@ -65,7 +65,7 @@ } nbt_name_type; /* the ndr parser for nbt_name is separately defined in - nbtname.c */ + nbtname.c (along with the parsers for nbt_string) */ typedef [nopull,nopush] struct { string name; string scope; @@ -330,9 +330,11 @@ /*******************************************/ /* \MAILSLOT\NET\NETLOGON mailslot requests */ typedef enum { - NETLOGON_QUERY_FOR_PDC = 0x7, - NETLOGON_ANNOUNCE_UAS = 0xa, - NETLOGON_RESPONSE_FROM_PDC = 0xc + NETLOGON_QUERY_FOR_PDC = 0x7, + NETLOGON_ANNOUNCE_UAS = 0xa, + NETLOGON_RESPONSE_FROM_PDC = 0xc, + NETLOGON_QUERY_FOR_PDC2 = 0x12, + NETLOGON_RESPONSE_FROM_PDC2 = 0x17 } nbt_netlogon_command; /* query for pdc request */ @@ -346,7 +348,19 @@ uint16 lm20_token; } nbt_netlogon_query_for_pdc; - /* response from request */ + /* query for pdc request - new style */ + typedef struct { + uint16 request_count; + nstring computer_name; + nstring user_name; + astring mailslot_name; + uint32 unknown[2]; + uint32 nt_version; + uint16 lmnt_token; + uint16 lm20_token; + } nbt_netlogon_query_for_pdc2; + + /* response from pdc */ typedef struct { astring pdc_name; [flag(NDR_ALIGN2)] DATA_BLOB _pad; @@ -357,6 +371,29 @@ uint16 lm20_token; } nbt_netlogon_response_from_pdc; + /* response from pdc - type2 */ + typedef struct { + [flag(NDR_ALIGN4)] DATA_BLOB _pad; + uint32 server_type; + GUID domain_uuid; + nbt_string forest; + nbt_string dns_domain; + nbt_string pdc_dns_name; + astring domain; + nbt_string pdc_name; + nbt_string user_name; + nbt_string site_name; + nbt_string site_name2; + uint8 unknown; + uint32 unknown2; + [flag(NDR_BIG_ENDIAN)] + ipv4address pdc_ip; + uint32 unknown3[2]; + uint32 nt_version; + uint16 lmnt_token; + uint16 lm20_token; + } nbt_netlogon_response_from_pdc2; + /* announce change to UAS or SAM */ typedef struct { uint32 db_index; @@ -387,8 +424,10 @@ typedef [nodiscriminant] union { [case(NETLOGON_QUERY_FOR_PDC)] nbt_netlogon_query_for_pdc pdc; + [case(NETLOGON_QUERY_FOR_PDC2)] nbt_netlogon_query_for_pdc2 pdc2; [case(NETLOGON_ANNOUNCE_UAS)] nbt_netlogon_announce_uas uas; [case(NETLOGON_RESPONSE_FROM_PDC)] nbt_netlogon_response_from_pdc response; + [case(NETLOGON_RESPONSE_FROM_PDC2)] nbt_netlogon_response_from_pdc2 response2; } nbt_netlogon_request; typedef [flag(NDR_NOALIGN),public] struct { |