ntlmssp: Prepare gensec_ntlmssp_start() for broader use
authorAndrew Bartlett <abartlet@samba.org>
Tue, 26 Jul 2011 02:32:08 +0000 (12:32 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 18 Oct 2011 02:13:31 +0000 (13:13 +1100)
This moves the allocation of the ntlmssp pointer back to the callers.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
auth/ntlmssp/gensec_ntlmssp.c
source4/auth/ntlmssp/ntlmssp_client.c
source4/auth/ntlmssp/ntlmssp_server.c

index 55b2f8748a344fe1f8fb23841ee61fc427081538..9cbd6e1cc477bde6ac09474b723c1995338e9f86 100644 (file)
@@ -107,7 +107,6 @@ bool gensec_ntlmssp_have_feature(struct gensec_security *gensec_security,
 NTSTATUS gensec_ntlmssp_start(struct gensec_security *gensec_security)
 {
        struct gensec_ntlmssp_context *gensec_ntlmssp;
-       struct ntlmssp_state *ntlmssp_state;
 
        gensec_ntlmssp = talloc_zero(gensec_security,
                                     struct gensec_ntlmssp_context);
@@ -117,16 +116,6 @@ NTSTATUS gensec_ntlmssp_start(struct gensec_security *gensec_security)
 
        gensec_ntlmssp->gensec_security = gensec_security;
 
-       ntlmssp_state = talloc_zero(gensec_ntlmssp,
-                                   struct ntlmssp_state);
-       if (!ntlmssp_state) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       ntlmssp_state->callback_private = gensec_ntlmssp;
-
-       gensec_ntlmssp->ntlmssp_state = ntlmssp_state;
-
        gensec_security->private_data = gensec_ntlmssp;
        return NT_STATUS_OK;
 }
index 858b16f0538058a2c64aa435a4fa80748c1601d2..6ec56941e6575f48b5bae1a583279067f0474ff4 100644 (file)
@@ -329,8 +329,20 @@ NTSTATUS gensec_ntlmssp_client_start(struct gensec_security *gensec_security)
        nt_status = gensec_ntlmssp_start(gensec_security);
        NT_STATUS_NOT_OK_RETURN(nt_status);
 
-       gensec_ntlmssp = talloc_get_type_abort(gensec_security->private_data,
-                                              struct gensec_ntlmssp_context);
+       gensec_ntlmssp =
+               talloc_get_type_abort(gensec_security->private_data,
+                                     struct gensec_ntlmssp_context);
+
+       ntlmssp_state = talloc_zero(gensec_ntlmssp,
+                                   struct ntlmssp_state);
+       if (!ntlmssp_state) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       ntlmssp_state->callback_private = gensec_ntlmssp;
+
+       gensec_ntlmssp->ntlmssp_state = ntlmssp_state;
+
        ntlmssp_state = gensec_ntlmssp->ntlmssp_state;
 
        ntlmssp_state->role = NTLMSSP_CLIENT;
index 68a802ce78e50caa5755284964ffaae06fd6b591..0799e0a99422a754604ec6b09635eeff0edbbeff 100644 (file)
@@ -245,8 +245,20 @@ NTSTATUS gensec_ntlmssp_server_start(struct gensec_security *gensec_security)
        nt_status = gensec_ntlmssp_start(gensec_security);
        NT_STATUS_NOT_OK_RETURN(nt_status);
 
-       gensec_ntlmssp = talloc_get_type_abort(gensec_security->private_data,
-                                              struct gensec_ntlmssp_context);
+       gensec_ntlmssp =
+               talloc_get_type_abort(gensec_security->private_data,
+                                     struct gensec_ntlmssp_context);
+
+       ntlmssp_state = talloc_zero(gensec_ntlmssp,
+                                   struct ntlmssp_state);
+       if (!ntlmssp_state) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       ntlmssp_state->callback_private = gensec_ntlmssp;
+
+       gensec_ntlmssp->ntlmssp_state = ntlmssp_state;
+
        ntlmssp_state = gensec_ntlmssp->ntlmssp_state;
 
        ntlmssp_state->role = NTLMSSP_SERVER;