r16464: split client and server min/max protocol settings
authorStefan Metzmacher <metze@samba.org>
Thu, 22 Jun 2006 17:06:36 +0000 (17:06 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:09:29 +0000 (14:09 -0500)
metze
(This used to be commit 6164d1e22e0545f558315591d49f862de06ea945)

source4/libcli/cliconnect.c
source4/libcli/smb_composite/connect.c
source4/param/loadparm.c
source4/smb_server/smb/negprot.c
source4/smb_server/smb_server.c

index d89d6a15681c99c75f49ff97bb28570469a19bcd..45f44adba13abcf5c357a8ee2444ec603cce7204 100644 (file)
@@ -57,7 +57,7 @@ BOOL smbcli_transport_establish(struct smbcli_state *cli,
 /* wrapper around smb_raw_negotiate() */
 NTSTATUS smbcli_negprot(struct smbcli_state *cli)
 {
-       return smb_raw_negotiate(cli->transport, lp_maxprotocol());
+       return smb_raw_negotiate(cli->transport, lp_cli_maxprotocol());
 }
 
 /* wrapper around smb_raw_sesssetup() */
index a28d33cf7f7d17f6422e62f19f410ec527a5bc76..7d4960d7d56df616d51dfa008ab70fcf5b046da5 100644 (file)
@@ -63,7 +63,7 @@ static NTSTATUS connect_send_negprot(struct composite_context *c,
 {
        struct connect_state *state = talloc_get_type(c->private_data, struct connect_state);
 
-       state->req = smb_raw_negotiate_send(state->transport, lp_maxprotocol());
+       state->req = smb_raw_negotiate_send(state->transport, lp_cli_maxprotocol());
        NT_STATUS_HAVE_NO_MEMORY(state->req);
 
        state->req->async.fn = request_handler;
index 3d33da2bcd46ab0c2c66eb1b93fef2f264a04be5..e76d955b5eb6f6fb81477f1107d936ce155312ba 100644 (file)
@@ -139,8 +139,10 @@ typedef struct
        int max_mux;
        int max_xmit;
        int pwordlevel;
-       int maxprotocol;
-       int minprotocol;
+       int srv_maxprotocol;
+       int srv_minprotocol;
+       int cli_maxprotocol;
+       int cli_minprotocol;
        int security;
        char **AuthMethods;
        int paranoid_server_security;
@@ -448,8 +450,10 @@ static struct parm_struct parm_table[] = {
        {"tls crlfile", P_STRING, P_GLOBAL, &Globals.tls_crlfile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        {"swat directory", P_STRING, P_GLOBAL, &Globals.swat_directory, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        {"large readwrite", P_BOOL, P_GLOBAL, &Globals.bLargeReadwrite, NULL, NULL, FLAG_DEVELOPER},
-       {"max protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
-       {"min protocol", P_ENUM, P_GLOBAL, &Globals.minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
+       {"server max protocol", P_ENUM, P_GLOBAL, &Globals.srv_maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
+       {"server min protocol", P_ENUM, P_GLOBAL, &Globals.srv_minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
+       {"client max protocol", P_ENUM, P_GLOBAL, &Globals.cli_maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
+       {"client min protocol", P_ENUM, P_GLOBAL, &Globals.cli_minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
        {"unicode", P_BOOL, P_GLOBAL, &Globals.bUnicode, NULL, NULL, FLAG_DEVELOPER},
        {"read raw", P_BOOL, P_GLOBAL, &Globals.bReadRaw, NULL, NULL, FLAG_DEVELOPER},
        {"write raw", P_BOOL, P_GLOBAL, &Globals.bWriteRaw, NULL, NULL, FLAG_DEVELOPER},
@@ -647,8 +651,10 @@ static void init_globals(void)
        do_parameter("max xmit", "12288", NULL);
        do_parameter("password level", "0", NULL);
        do_parameter("LargeReadwrite", "True", NULL);
-       do_parameter("min protocol", "CORE", NULL);
-       do_parameter("max protocol", "NT1", NULL);
+       do_parameter("server min protocol", "CORE", NULL);
+       do_parameter("server max protocol", "NT1", NULL);
+       do_parameter("client min protocol", "CORE", NULL);
+       do_parameter("client max protocol", "NT1", NULL);
        do_parameter("security", "USER", NULL);
        do_parameter("paranoid server security", "True", NULL);
        do_parameter("EncryptPasswords", "True", NULL);
@@ -882,8 +888,10 @@ _PUBLIC_ FN_GLOBAL_INTEGER(lp_min_wins_ttl, &Globals.min_wins_ttl)
 _PUBLIC_ FN_GLOBAL_INTEGER(lp_maxmux, &Globals.max_mux)
 _PUBLIC_ FN_GLOBAL_INTEGER(lp_max_xmit, &Globals.max_xmit)
 _PUBLIC_ FN_GLOBAL_INTEGER(lp_passwordlevel, &Globals.pwordlevel)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_maxprotocol, &Globals.maxprotocol)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_minprotocol, &Globals.minprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_srv_maxprotocol, &Globals.srv_maxprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_srv_minprotocol, &Globals.srv_minprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_maxprotocol, &Globals.cli_maxprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_minprotocol, &Globals.cli_minprotocol)
 _PUBLIC_ FN_GLOBAL_INTEGER(lp_security, &Globals.security)
 _PUBLIC_ FN_GLOBAL_LIST(lp_auth_methods, &Globals.AuthMethods)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_paranoid_server_security, &Globals.paranoid_server_security)
index 5f1e75447b3562f4af1a63b8af77018de0883ae2..29e6c0736f5ceaf62fc09f64c75a89c7ccc3e52f 100644 (file)
@@ -509,8 +509,8 @@ void smbsrv_reply_negprot(struct smbsrv_request *req)
        for (protocol = 0; supported_protocols[protocol].proto_name; protocol++) {
                int i;
 
-               if (supported_protocols[protocol].protocol_level > lp_maxprotocol()) continue;
-               if (supported_protocols[protocol].protocol_level < lp_minprotocol()) continue;
+               if (supported_protocols[protocol].protocol_level > lp_srv_maxprotocol()) continue;
+               if (supported_protocols[protocol].protocol_level < lp_srv_minprotocol()) continue;
 
                for (i = 0; i < protos_count; i++) {
                        if (strcmp(supported_protocols[protocol].proto_name, protos[i]) != 0) continue;
index ef8967f0b26e6c8a927e3a1727c890a326ee93f0..6df48f3df60856ffbc53f6109c7bcfe7a5e6e2fc 100644 (file)
@@ -61,7 +61,7 @@ static NTSTATUS smbsrv_recv_generic_request(void *private, DATA_BLOB blob)
                packet_set_callback(smb_conn->packet, smbsrv_recv_smb_request);
                return smbsrv_recv_smb_request(smb_conn, blob);
        case SMB2_MAGIC:
-               if (lp_maxprotocol() < PROTOCOL_SMB2) break;
+               if (lp_srv_maxprotocol() < PROTOCOL_SMB2) break;
                status = smbsrv_init_smb2_connection(smb_conn);
                NT_STATUS_NOT_OK_RETURN(status);
                packet_set_callback(smb_conn->packet, smbsrv_recv_smb2_request);