summaryrefslogtreecommitdiff
path: root/source4/libcli/composite/connect.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libcli/composite/connect.c')
-rw-r--r--source4/libcli/composite/connect.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/source4/libcli/composite/connect.c b/source4/libcli/composite/connect.c
index 2663c789e4..67123a3af5 100644
--- a/source4/libcli/composite/connect.c
+++ b/source4/libcli/composite/connect.c
@@ -277,29 +277,31 @@ static NTSTATUS connect_resolve(struct smbcli_composite *c,
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:
- c->status = connect_resolve(c, state->io);
+ status = connect_resolve(c, state->io);
break;
case CONNECT_SOCKET:
- c->status = connect_socket(c, state->io);
+ status = connect_socket(c, state->io);
break;
case CONNECT_SESSION_REQUEST:
- c->status = connect_session_request(c, state->io);
+ status = connect_session_request(c, state->io);
break;
case CONNECT_NEGPROT:
- c->status = connect_negprot(c, state->io);
+ status = connect_negprot(c, state->io);
break;
case CONNECT_SESSION_SETUP:
- c->status = connect_session_setup(c, state->io);
+ status = connect_session_setup(c, state->io);
break;
case CONNECT_TCON:
- c->status = connect_tcon(c, state->io);
+ status = connect_tcon(c, state->io);
break;
}
- if (!NT_STATUS_IS_OK(c->status)) {
+ if (!NT_STATUS_IS_OK(status)) {
+ c->status = status;
c->state = SMBCLI_REQUEST_ERROR;
if (c->async.fn) {
c->async.fn(c);