diff options
-rw-r--r-- | librpc/idl/nbt.idl | 15 | ||||
-rw-r--r-- | librpc/ndr/ndr_nbt.h | 11 |
2 files changed, 15 insertions, 11 deletions
diff --git a/librpc/idl/nbt.idl b/librpc/idl/nbt.idl index ef3f0743846..211095da9df 100644 --- a/librpc/idl/nbt.idl +++ b/librpc/idl/nbt.idl @@ -482,6 +482,21 @@ interface nbt uint16 lm20_token; } NETLOGON_SAM_LOGON_RESPONSE_EX; + typedef [nopush,nopull] union { + [case(NETLOGON_NT_VERSION_1)] NETLOGON_SAM_LOGON_RESPONSE_NT40 nt4; + [case(NETLOGON_NT_VERSION_5)] NETLOGON_SAM_LOGON_RESPONSE nt5; + [case(NETLOGON_NT_VERSION_5EX)] NETLOGON_SAM_LOGON_RESPONSE_EX nt5_ex; + } netlogon_samlogon_response_union; + + typedef [nopush,nopull] struct { + uint32 ntver; + [switch_is(ntver)] netlogon_samlogon_response_union data; + } netlogon_samlogon_response; + + void decode_netlogon_samlogon_response_packet( + [in] netlogon_samlogon_response packet + ); + /* query for pdc request */ typedef struct { astring computer_name; diff --git a/librpc/ndr/ndr_nbt.h b/librpc/ndr/ndr_nbt.h index 870ee434ceb..edb2bf7687b 100644 --- a/librpc/ndr/ndr_nbt.h +++ b/librpc/ndr/ndr_nbt.h @@ -30,17 +30,6 @@ NDR_SCALAR_PROTO(nbt_string, const char *) -struct netlogon_samlogon_response -{ - uint32_t ntver; - union { - struct NETLOGON_SAM_LOGON_RESPONSE_NT40 nt4; - struct NETLOGON_SAM_LOGON_RESPONSE nt5; - struct NETLOGON_SAM_LOGON_RESPONSE_EX nt5_ex; - } data; - -}; - 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); enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r); |