]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:rpc_server: split out dcesrv_auth_prepare_alter_ack()
authorStefan Metzmacher <metze@samba.org>
Mon, 15 May 2017 10:16:35 +0000 (12:16 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Sun, 21 May 2017 19:05:12 +0000 (21:05 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/rpc_server/dcesrv_auth.c

index 502173ab59d4f3a948da91d4a1fc5004a4cc510b..108d2683e53526a11bf52949337b5f41ce35d238 100644 (file)
@@ -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,