summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--librpc/idl/nbt.idl15
-rw-r--r--librpc/ndr/ndr_nbt.h11
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);