summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_pipe.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-08-25 22:38:55 +0200
committerGünther Deschner <gd@samba.org>2009-08-27 15:55:19 +0200
commit21a93c2ddc87da3e6e1af8ad7819018526c4b40b (patch)
tree14aeecd0675dbd8671112a1f529af799c07b1de4 /source3/rpc_server/srv_pipe.c
parent2d8157fb9e91b145a98b4b87a50d3bea69412108 (diff)
downloadsamba-21a93c2ddc87da3e6e1af8ad7819018526c4b40b.tar.gz
samba-21a93c2ddc87da3e6e1af8ad7819018526c4b40b.tar.bz2
samba-21a93c2ddc87da3e6e1af8ad7819018526c4b40b.zip
s3-netlogon: use shared credential and schannel storage infrastructure for netlogon server.
Guenther
Diffstat (limited to 'source3/rpc_server/srv_pipe.c')
-rw-r--r--source3/rpc_server/srv_pipe.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index 341d8b3b48..bf55d47d0a 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -28,6 +28,7 @@
*/
#include "includes.h"
+#include "../libcli/auth/libcli_auth.h"
extern struct current_user current_user;
@@ -1328,7 +1329,8 @@ static bool pipe_schannel_auth_bind(pipes_struct *p, prs_struct *rpc_in_p,
RPC_AUTH_SCHANNEL_NEG neg;
RPC_AUTH_VERIFIER auth_verifier;
bool ret;
- struct dcinfo *pdcinfo;
+ NTSTATUS status;
+ struct netlogon_creds_CredentialState *creds;
uint32 flags;
DATA_BLOB session_key;
@@ -1344,25 +1346,27 @@ static bool pipe_schannel_auth_bind(pipes_struct *p, prs_struct *rpc_in_p,
*/
become_root();
- ret = secrets_restore_schannel_session_info(p->mem_ctx, neg.myname, &pdcinfo);
+ status = schannel_fetch_session_key(p->mem_ctx,
+ neg.myname,
+ &creds);
unbecome_root();
- if (!ret) {
+ if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("pipe_schannel_auth_bind: Attempt to bind using schannel without successful serverauth2\n"));
return False;
}
p->auth.a_u.schannel_auth = talloc(p, struct schannel_auth_struct);
if (!p->auth.a_u.schannel_auth) {
- TALLOC_FREE(pdcinfo);
+ TALLOC_FREE(creds);
return False;
}
memset(p->auth.a_u.schannel_auth->sess_key, 0, sizeof(p->auth.a_u.schannel_auth->sess_key));
- memcpy(p->auth.a_u.schannel_auth->sess_key, pdcinfo->sess_key,
- sizeof(pdcinfo->sess_key));
+ memcpy(p->auth.a_u.schannel_auth->sess_key, creds->session_key,
+ sizeof(creds->session_key));
- TALLOC_FREE(pdcinfo);
+ TALLOC_FREE(creds);
p->auth.a_u.schannel_auth->seq_num = 0;