From e48aabc0063c957fb5590c4165997253f6021383 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 18 Sep 2009 20:24:16 +0200 Subject: s4:rpc_server/netlogon: implement netr_LogonGetCapabilities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is also needed to support AES. metze Signed-off-by: Günther Deschner --- source4/rpc_server/netlogon/dcerpc_netlogon.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'source4/rpc_server/netlogon/dcerpc_netlogon.c') diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 1cbd9583c7..1de1d74dd1 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -1234,9 +1234,27 @@ static NTSTATUS dcesrv_netr_NetrEnumerateTrustedDomains(struct dcesrv_call_state static NTSTATUS dcesrv_netr_LogonGetCapabilities(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct netr_LogonGetCapabilities *r) { + struct netlogon_creds_CredentialState *creds; + NTSTATUS status; - /* we don't support AES yet */ - return NT_STATUS_NOT_IMPLEMENTED; + status = dcesrv_netr_creds_server_step_check(dce_call, + mem_ctx, + r->in.computer_name, + r->in.credential, + r->out.return_authenticator, + &creds); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(0,(__location__ " Bad credentials - error\n")); + } + NT_STATUS_NOT_OK_RETURN(status); + + if (r->in.query_level != 1) { + return NT_STATUS_NOT_SUPPORTED; + } + + r->out.capabilities->server_capabilities = creds->negotiate_flags; + + return NT_STATUS_OK; } -- cgit