summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-09-18 20:24:16 +0200
committerAndreas Schneider <asn@samba.org>2012-07-17 10:58:38 +0200
commite48aabc0063c957fb5590c4165997253f6021383 (patch)
tree2b70c8081aa8da565db8c481bcc6eb2a9cdf2564 /source4/rpc_server
parent342a2e6181a07737e2f9cb7476fa86c39b0731ec (diff)
downloadsamba-e48aabc0063c957fb5590c4165997253f6021383.tar.gz
samba-e48aabc0063c957fb5590c4165997253f6021383.tar.bz2
samba-e48aabc0063c957fb5590c4165997253f6021383.zip
s4:rpc_server/netlogon: implement netr_LogonGetCapabilities
This is also needed to support AES. metze Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/netlogon/dcerpc_netlogon.c22
1 files changed, 20 insertions, 2 deletions
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;
}