From 7329706a037fef75e8ced63bfb7ab93b64482eda Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 15 Jan 2018 12:00:19 +0100 Subject: [PATCH] s3:rpc_client: allow passing NetlogonNetwork[Transitive]Information to rpccli_netlogon_network_logon() Bug: https://bugzilla.samba.org/show_bug.cgi?id=13234 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- source3/rpc_client/cli_netlogon.c | 13 ++++++++++++- source3/rpc_client/cli_netlogon.h | 1 + source3/winbindd/winbindd_pam.c | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index 7dc69c066c7..d8ccce72e0d 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -610,6 +610,7 @@ NTSTATUS rpccli_netlogon_network_logon( const uint8_t chal[8], DATA_BLOB lm_response, DATA_BLOB nt_response, + enum netr_LogonInfoClass logon_type, uint8_t *authoritative, uint32_t *flags, uint16_t *_validation_level, @@ -629,6 +630,16 @@ NTSTATUS rpccli_netlogon_network_logon( ZERO_STRUCT(lm); ZERO_STRUCT(nt); + switch (logon_type) { + case NetlogonNetworkInformation: + case NetlogonNetworkTransitiveInformation: + break; + default: + DEBUG(0, ("switch value %d not supported\n", + logon_type)); + return NT_STATUS_INVALID_INFO_CLASS; + } + logon = talloc_zero(mem_ctx, union netr_LogonLevel); if (!logon) { return NT_STATUS_NO_MEMORY; @@ -674,7 +685,7 @@ NTSTATUS rpccli_netlogon_network_logon( status = netlogon_creds_cli_LogonSamLogon(creds_ctx, binding_handle, - NetlogonNetworkInformation, + logon_type, logon, mem_ctx, &validation_level, diff --git a/source3/rpc_client/cli_netlogon.h b/source3/rpc_client/cli_netlogon.h index d31bdee461f..dc04c0b0676 100644 --- a/source3/rpc_client/cli_netlogon.h +++ b/source3/rpc_client/cli_netlogon.h @@ -84,6 +84,7 @@ NTSTATUS rpccli_netlogon_network_logon( const uint8_t chal[8], DATA_BLOB lm_response, DATA_BLOB nt_response, + enum netr_LogonInfoClass logon_type, uint8_t *authoritative, uint32_t *flags, uint16_t *_validation_level, diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c index 97425e859f3..b2622a0e92e 100644 --- a/source3/winbindd/winbindd_pam.c +++ b/source3/winbindd/winbindd_pam.c @@ -1520,6 +1520,7 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain, chal, lm_response, nt_response, + NetlogonNetworkInformation, authoritative, flags, &validation_level,