Author: metze
Date: 2006-07-30 19:22:39 +0000 (Sun, 30 Jul 2006)
New Revision: 17329

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17329

Log:
- after a composite_continue() we need to call return;
- add some comments

metze
Modified:
   branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c  2006-07-30 19:00:16 UTC 
(rev 17328)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c  2006-07-30 19:22:39 UTC 
(rev 17329)
@@ -1022,30 +1022,29 @@
 {
        struct composite_context *c = talloc_get_type(ctx->async.private_data,
                                                      struct composite_context);
+       struct pipe_auth_state *s = talloc_get_type(c->private_data, struct 
pipe_auth_state);
+       struct composite_context *sec_conn_req;
 
        c->status = dcerpc_bind_auth_recv(ctx);
        if (NT_STATUS_EQUAL(c->status, NT_STATUS_INVALID_PARAMETER)) {
-               struct pipe_auth_state *s = talloc_get_type(c->private_data, 
struct pipe_auth_state);
-               struct composite_context *sec_conn_req;
-
-               /* send a request for secondary rpc connection */
+               /*
+                * Retry with NTLMSSP auth as fallback
+                * send a request for secondary rpc connection
+                */
                sec_conn_req = dcerpc_secondary_connection_send(s->pipe,
                                                                s->binding);
-               if (composite_nomem(sec_conn_req, c)) return;
-               
                composite_continue(c, sec_conn_req, 
continue_ntlmssp_connection, c);
-               
                return;
        } else if (NT_STATUS_EQUAL(c->status, NT_STATUS_LOGON_FAILURE)) {
-               struct pipe_auth_state *s = talloc_get_type(c->private_data, 
struct pipe_auth_state);
-               struct composite_context *sec_conn_req;
                if (cli_credentials_wrong_password(s->credentials)) {
-                       /* send a request for secondary rpc connection */
+                       /*
+                        * Retry SPNEGO with a better password
+                        * send a request for secondary rpc connection
+                        */
                        sec_conn_req = dcerpc_secondary_connection_send(s->pipe,
                                                                        
s->binding);
-                       if (composite_nomem(sec_conn_req, c)) return;
-                       
                        composite_continue(c, sec_conn_req, 
continue_spnego_after_wrong_pass, c);
+                       return;
                }
        }
 

Reply via email to