s3:libsmb: Ensure we ask for DEFAULT_SMB2_MAX_CREDITS on successful negprot.
authorJeremy Allison <jra@samba.org>
Fri, 9 Aug 2013 18:15:48 +0000 (11:15 -0700)
committerStefan Metzmacher <metze@samba.org>
Thu, 15 Aug 2013 07:07:05 +0000 (09:07 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libsmb/cliconnect.c
source3/libsmb/clidfs.c

index 14cdf968b8699b4a575eb951b765e3a813959bf8..f963edf6787deb0290b90237aaa159a4c497db05 100644 (file)
@@ -3130,6 +3130,8 @@ static void cli_start_connection_done(struct tevent_req *subreq)
 {
        struct tevent_req *req = tevent_req_callback_data(
                subreq, struct tevent_req);
+       struct cli_start_connection_state *state = tevent_req_data(
+               req, struct cli_start_connection_state);
        NTSTATUS status;
 
        status = smbXcli_negprot_recv(subreq);
@@ -3137,6 +3139,13 @@ static void cli_start_connection_done(struct tevent_req *subreq)
        if (tevent_req_nterror(req, status)) {
                return;
        }
+
+       if (smbXcli_conn_protocol(state->cli->conn) >= PROTOCOL_SMB2_02) {
+               /* Ensure we ask for some initial credits. */
+               smb2cli_conn_set_max_credits(state->cli->conn,
+                                            DEFAULT_SMB2_MAX_CREDITS);
+       }
+
        tevent_req_done(req);
 }
 
@@ -3151,6 +3160,7 @@ static NTSTATUS cli_start_connection_recv(struct tevent_req *req,
                return status;
        }
        *output_cli = state->cli;
+
        return NT_STATUS_OK;
 }
 
index 95f8817a94b70765027f1340f5b0ee45f66aba85..1ed6ac5fc146191a5f9fc68d702803501de6888d 100644 (file)
@@ -160,6 +160,11 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx,
                return status;
        }
 
+       if (smbXcli_conn_protocol(c->conn) >= PROTOCOL_SMB2_02) {
+               /* Ensure we ask for some initial credits. */
+               smb2cli_conn_set_max_credits(c->conn, DEFAULT_SMB2_MAX_CREDITS);
+       }
+
        username = get_cmdline_auth_info_username(auth_info);
        password = get_cmdline_auth_info_password(auth_info);