Remove yet more global_loadparm instances.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 21 Feb 2008 17:09:47 +0000 (18:09 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 21 Feb 2008 17:09:47 +0000 (18:09 +0100)
source/lib/registry/patchfile.c
source/libcli/raw/clisession.c
source/libcli/raw/libcliraw.h
source/libcli/smb_composite/sesssetup.c
source/smb_server/smb_server.c

index a4579010cd0a5189d510c1f024c9f53e6024b3f2..7903bea24600c6f2042977e61904e86b22aa761f 100644 (file)
@@ -273,6 +273,7 @@ _PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1,
  * Load diff file
  */
 _PUBLIC_ WERROR reg_diff_load(const char *filename,
+                             struct smb_iconv_convenience *iconv_convenience,
                              const struct reg_diff_callbacks *callbacks,
                              void *callback_data)
 {
@@ -308,7 +309,7 @@ _PUBLIC_ WERROR reg_diff_load(const char *filename,
                return reg_preg_diff_load(fd, callbacks, callback_data);
        } else {
                /* Must be a normal .REG file */
-               return reg_dotreg_diff_load(fd, lp_iconv_convenience(global_loadparm), callbacks, callback_data);
+               return reg_dotreg_diff_load(fd, iconv_convenience, callbacks, callback_data);
        }
 }
 
@@ -442,5 +443,6 @@ _PUBLIC_ WERROR reg_diff_apply(struct registry_context *ctx, const char *filenam
        callbacks.del_all_values = reg_diff_apply_del_all_values;
        callbacks.done = NULL;
 
-       return reg_diff_load(filename, &callbacks, ctx);
+       return reg_diff_load(filename, lp_iconv_convenience(global_loadparm), 
+                            &callbacks, ctx);
 }
index 55cb3ef305a8e8f250e57836c09ec4bebcf6fa9b..74e8d85c8e2fcfd881124d4291b3968d3dc71b97 100644 (file)
@@ -51,6 +51,9 @@ struct smbcli_session *smbcli_session_init(struct smbcli_transport *transport,
        }
        session->pid = (uint16_t)getpid();
        session->vuid = UID_FIELD_INVALID;
+       session->options.lanman_auth = lp_client_lanman_auth(global_loadparm);
+       session->options.ntlmv2_auth = lp_client_ntlmv2_auth(global_loadparm);
+       session->options.plaintext_auth = lp_client_plaintext_auth(global_loadparm);
        
        capabilities = transport->negotiate.capabilities;
 
index 7111649fc17450eb6f5f20b2c5d5228dad764593..0ea8f9dec28ea9217d2fcc0a4022ddcae0f9f965 100644 (file)
@@ -186,6 +186,11 @@ struct smbcli_session {
 
        /* the spnego context if we use extented security */
        struct gensec_security *gensec;
+
+       struct smbcli_session_options {
+               uint_t lanman_auth;
+               uint_t ntlmv2_auth;
+       } options;
 };
 
 /* 
index f5a976958d3a8cd304f75439def05b8478c67f64..75a2a579a26fd2e3db676ad99012a8e89fdac113 100644 (file)
@@ -226,11 +226,11 @@ static NTSTATUS session_setup_nt1(struct composite_context *c,
        DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, lp_iconv_convenience(global_loadparm), session->transport->socket->hostname, lp_workgroup(global_loadparm));
        DATA_BLOB session_key;
        int flags = CLI_CRED_NTLM_AUTH;
-       if (lp_client_lanman_auth(global_loadparm)) {
+       if (session->options.lanman_auth) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth(global_loadparm)) {
+       if (session->options.ntlmv2_auth) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
@@ -263,7 +263,7 @@ static NTSTATUS session_setup_nt1(struct composite_context *c,
                set_user_session_key(session, &session_key);
                
                data_blob_free(&session_key);
-       } else if (lp_client_plaintext_auth(global_loadparm)) {
+       } else if (session->options.plaintext_auth) {
                state->setup.nt1.in.password1 = data_blob_talloc(state, password, strlen(password));
                state->setup.nt1.in.password2 = data_blob(NULL, 0);
        } else {
@@ -293,11 +293,11 @@ static NTSTATUS session_setup_old(struct composite_context *c,
        DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, lp_iconv_convenience(global_loadparm), session->transport->socket->hostname, lp_workgroup(global_loadparm));
        DATA_BLOB session_key;
        int flags = 0;
-       if (lp_client_lanman_auth(global_loadparm)) {
+       if (session->options.lanman_auth) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth(global_loadparm)) {
+       if (session->options.ntlmv2_auth) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
@@ -324,7 +324,7 @@ static NTSTATUS session_setup_old(struct composite_context *c,
                set_user_session_key(session, &session_key);
                
                data_blob_free(&session_key);
-       } else if (lp_client_plaintext_auth(global_loadparm)) {
+       } else if (session->options.plaintext_auth) {
                state->setup.old.in.password = data_blob_talloc(state, password, strlen(password));
        } else {
                /* could match windows client and return 'cannot logon from this workstation', but it just confuses everybody */
index c031b5bd6558812e6db4d7a942f7515837be91cd..4f8e628f7414762761c1e10b2cac04d8d4a50c7b 100644 (file)
@@ -146,7 +146,7 @@ static void smbsrv_accept(struct stream_connection *conn)
        packet_set_fde(smb_conn->packet, conn->event.fde);
        packet_set_serialise(smb_conn->packet);
 
-       smb_conn->lp_ctx = global_loadparm;
+       smb_conn->lp_ctx = conn->lp_ctx;
        smb_conn->connection = conn;
        conn->private = smb_conn;