diff options
author | Stefan Metzmacher <metze@samba.org> | 2017-05-15 12:16:35 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-05-21 21:05:12 +0200 |
commit | bcf33f3cb63f20b7f13690c8ec6f62b89f79f09b (patch) | |
tree | 9b2d4b07105c744689ec879373b1bf844e1ee389 /source4 | |
parent | 352b5ecca33aed7eca46b91a8aae0aa29967f534 (diff) | |
download | samba-bcf33f3cb63f20b7f13690c8ec6f62b89f79f09b.tar.gz |
s4:rpc_server: split out dcesrv_auth_prepare_alter_ack()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4')
-rw-r--r-- | source4/rpc_server/dcesrv_auth.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/source4/rpc_server/dcesrv_auth.c b/source4/rpc_server/dcesrv_auth.c index 502173ab59d..108d2683e53 100644 --- a/source4/rpc_server/dcesrv_auth.c +++ b/source4/rpc_server/dcesrv_auth.c @@ -500,10 +500,9 @@ bool dcesrv_auth_alter(struct dcesrv_call_state *call) add any auth information needed in a alter ack, and process the authentication information found in the alter. */ -NTSTATUS dcesrv_auth_alter_ack(struct dcesrv_call_state *call, struct ncacn_packet *pkt) +NTSTATUS dcesrv_auth_prepare_alter_ack(struct dcesrv_call_state *call, struct ncacn_packet *pkt) { struct dcesrv_connection *dce_conn = call->conn; - NTSTATUS status; /* on a pure interface change there is no auth_info structure setup */ @@ -522,6 +521,23 @@ NTSTATUS dcesrv_auth_alter_ack(struct dcesrv_call_state *call, struct ncacn_pack }; call->out_auth_info = &call->_out_auth_info; + return NT_STATUS_OK; +} + +NTSTATUS dcesrv_auth_alter_ack(struct dcesrv_call_state *call, struct ncacn_packet *pkt) +{ + struct dcesrv_connection *dce_conn = call->conn; + NTSTATUS status; + + status = dcesrv_auth_prepare_alter_ack(call, pkt); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + if (dce_conn->auth_state.auth_finished) { + return NT_STATUS_OK; + } + status = gensec_update_ev(dce_conn->auth_state.gensec_security, call, call->event_ctx, call->in_auth_info.credentials, |