s4:libcli/smb2: honor option "client max protocol"
authorGregor Beck <gbeck@sernet.de>
Wed, 21 Aug 2013 13:45:55 +0000 (15:45 +0200)
committerMichael Adam <obnox@samba.org>
Fri, 9 May 2014 10:58:18 +0000 (12:58 +0200)
source4/libcli/smb2/connect.c

index 18977d8523e5d46990b20219c8ea7bd163d4f8ed..8c38954e13bb837880d53eb708bf660d9be12528 100644 (file)
@@ -128,6 +128,12 @@ static void smb2_connect_socket_done(struct composite_context *creq)
        struct tevent_req *subreq;
        NTSTATUS status;
        uint32_t timeout_msec;
+       const enum protocol_types min_protocol = PROTOCOL_SMB2_02;
+       enum protocol_types max_protocol = state->options.max_protocol;
+
+       if (max_protocol < min_protocol || max_protocol > PROTOCOL_LATEST) {
+               max_protocol = PROTOCOL_LATEST;
+       }
 
        status = smbcli_sock_connect_recv(creq, state, &sock);
        if (tevent_req_nterror(req, status)) {
@@ -143,7 +149,7 @@ static void smb2_connect_socket_done(struct composite_context *creq)
 
        subreq = smbXcli_negprot_send(state, state->ev,
                                      state->transport->conn, timeout_msec,
-                                     PROTOCOL_SMB2_02, PROTOCOL_LATEST);
+                                     min_protocol, max_protocol);
        if (tevent_req_nomem(subreq, req)) {
                return;
        }