auth/spnego: call gensec_spnego_create_negTokenInit() directly in gensec_spnego_updat...
authorStefan Metzmacher <metze@samba.org>
Thu, 6 Jul 2017 13:36:36 +0000 (15:36 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Tue, 25 Jul 2017 11:51:07 +0000 (13:51 +0200)
This simplifies further refactoring.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
auth/gensec/spnego.c

index 7b83b85f8395c6fc8eddad9ce0859777b5479a82..9291332d1903bbf7fa5759511892aef7c15aadfb 100644 (file)
@@ -660,14 +660,6 @@ static NTSTATUS gensec_spnego_update_client(struct gensec_security *gensec_secur
                bool ok;
                const char *tp = NULL;
 
-               if (spnego_in == NULL) {
-                       /* client to produce negTokenInit */
-                       return gensec_spnego_create_negTokenInit(gensec_security,
-                                                                spnego_state,
-                                                                out_mem_ctx,
-                                                                ev, out);
-               }
-
                tp = spnego_in->negTokenInit.targetPrincipal;
                if (tp != NULL && strcmp(tp, ADS_IGNORE_PRINCIPAL) != 0) {
                        DEBUG(5, ("Server claims it's principal name is %s\n", tp));
@@ -1036,13 +1028,6 @@ static NTSTATUS gensec_spnego_update_server(struct gensec_security *gensec_secur
        {
                NTSTATUS nt_status;
 
-               if (spnego_in == NULL) {
-                       return gensec_spnego_create_negTokenInit(gensec_security,
-                                                                spnego_state,
-                                                                out_mem_ctx,
-                                                                ev, out);
-               }
-
                nt_status = gensec_spnego_parse_negTokenInit(gensec_security,
                                                             spnego_state,
                                                             out_mem_ctx,
@@ -1369,6 +1354,15 @@ static struct tevent_req *gensec_spnego_update_send(TALLOC_CTX *mem_ctx,
                break;
 
        case SPNEGO_CLIENT_START:
+               if (state->spnego_in == NULL) {
+                       /* client to produce negTokenInit */
+                       status = gensec_spnego_create_negTokenInit(gensec_security,
+                                                       spnego_state, state, ev,
+                                                       &spnego_state->out_frag);
+                       break;
+               }
+
+               /* fall through */
        case SPNEGO_CLIENT_TARG:
                status = gensec_spnego_update_client(gensec_security,
                                                     state, ev,
@@ -1377,6 +1371,15 @@ static struct tevent_req *gensec_spnego_update_send(TALLOC_CTX *mem_ctx,
                break;
 
        case SPNEGO_SERVER_START:
+               if (state->spnego_in == NULL) {
+                       /* server to produce negTokenInit */
+                       status = gensec_spnego_create_negTokenInit(gensec_security,
+                                                       spnego_state, state, ev,
+                                                       &spnego_state->out_frag);
+                       break;
+               }
+
+               /* fall through */
        case SPNEGO_SERVER_TARG:
                status = gensec_spnego_update_server(gensec_security,
                                                     state, ev,