From: Stefan Metzmacher Date: Mon, 15 May 2017 10:16:35 +0000 (+0200) Subject: s4:rpc_server: split out dcesrv_auth_prepare_alter_ack() X-Git-Tag: ldb-1.1.30~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bcf33f3cb63f20b7f13690c8ec6f62b89f79f09b;p=thirdparty%2Fsamba.git s4:rpc_server: split out dcesrv_auth_prepare_alter_ack() Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- 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,