summaryrefslogtreecommitdiff
path: root/source4/rpc_server/dcesrv_auth.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2017-05-15 12:16:35 +0200
committerAndrew Bartlett <abartlet@samba.org>2017-05-21 21:05:12 +0200
commitbcf33f3cb63f20b7f13690c8ec6f62b89f79f09b (patch)
tree9b2d4b07105c744689ec879373b1bf844e1ee389 /source4/rpc_server/dcesrv_auth.c
parent352b5ecca33aed7eca46b91a8aae0aa29967f534 (diff)
downloadsamba-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/rpc_server/dcesrv_auth.c')
-rw-r--r--source4/rpc_server/dcesrv_auth.c20
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,