svn commit: samba r4937 - in branches/SAMBA_4_0/source/libcli/composite: .

tridge at samba.org tridge at samba.org
Sun Jan 23 08:19:38 GMT 2005


Author: tridge
Date: 2005-01-23 08:19:38 +0000 (Sun, 23 Jan 2005)
New Revision: 4937

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

Log:
simplify the connect code in the same way

Modified:
   branches/SAMBA_4_0/source/libcli/composite/connect.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/composite/connect.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/composite/connect.c	2005-01-23 08:16:16 UTC (rev 4936)
+++ branches/SAMBA_4_0/source/libcli/composite/connect.c	2005-01-23 08:19:38 UTC (rev 4937)
@@ -92,9 +92,6 @@
 
 	/* all done! */
 	c->state = SMBCLI_REQUEST_DONE;
-	if (c->async.fn) {
-		c->async.fn(c);
-	}
 
 	return NT_STATUS_OK;
 }
@@ -277,36 +274,36 @@
 static void state_handler(struct smbcli_composite *c)
 {
 	struct connect_state *state = talloc_get_type(c->private, struct connect_state);
-	NTSTATUS status;
 
 	switch (state->stage) {
 	case CONNECT_RESOLVE:
-		status = connect_resolve(c, state->io);
+		c->status = connect_resolve(c, state->io);
 		break;
 	case CONNECT_SOCKET:
-		status = connect_socket(c, state->io);
+		c->status = connect_socket(c, state->io);
 		break;
 	case CONNECT_SESSION_REQUEST:
-		status = connect_session_request(c, state->io);
+		c->status = connect_session_request(c, state->io);
 		break;
 	case CONNECT_NEGPROT:
-		status = connect_negprot(c, state->io);
+		c->status = connect_negprot(c, state->io);
 		break;
 	case CONNECT_SESSION_SETUP:
-		status = connect_session_setup(c, state->io);
+		c->status = connect_session_setup(c, state->io);
 		break;
 	case CONNECT_TCON:
-		status = connect_tcon(c, state->io);
+		c->status = connect_tcon(c, state->io);
 		break;
 	}
 
-	if (!NT_STATUS_IS_OK(status)) {
-		c->status = status;
+	if (!NT_STATUS_IS_OK(c->status)) {
 		c->state = SMBCLI_REQUEST_ERROR;
-		if (c->async.fn) {
-			c->async.fn(c);
-		}
 	}
+
+	if (c->state >= SMBCLI_REQUEST_DONE &&
+	    c->async.fn) {
+		c->async.fn(c);
+	}
 }
 
 



More information about the samba-cvs mailing list