summaryrefslogtreecommitdiff
path: root/source4/libcli
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-01-02 18:39:15 -0600
committerStefan Metzmacher <metze@samba.org>2008-01-02 12:48:04 -0600
commit969b8579c755441092e27b499ecedbd7d725816d (patch)
tree2b6ed0049c7afc7624ec81b559aad1d179a6b398 /source4/libcli
parent40acf23a927b7fcabad621cadabb9c7476c8d5e9 (diff)
downloadsamba-969b8579c755441092e27b499ecedbd7d725816d.tar.gz
samba-969b8579c755441092e27b499ecedbd7d725816d.tar.bz2
samba-969b8579c755441092e27b499ecedbd7d725816d.zip
r26646: libcli/smb_composite: Allow specifying SMB parameters in smb_composite_connect structure. AFAIK no global variables will now be used when doing RPC client connections.
(This used to be commit 0ef75e4e3cb0e1bd10e367a00f5e9b725587c40a)
Diffstat (limited to 'source4/libcli')
-rw-r--r--source4/libcli/raw/clitree.c8
-rw-r--r--source4/libcli/smb_composite/connect.c9
-rw-r--r--source4/libcli/smb_composite/fetchfile.c8
-rw-r--r--source4/libcli/smb_composite/fsinfo.c8
-rw-r--r--source4/libcli/smb_composite/smb_composite.h6
5 files changed, 34 insertions, 5 deletions
diff --git a/source4/libcli/raw/clitree.c b/source4/libcli/raw/clitree.c
index 6b14893c4e..94fa37383b 100644
--- a/source4/libcli/raw/clitree.c
+++ b/source4/libcli/raw/clitree.c
@@ -192,6 +192,14 @@ NTSTATUS smbcli_tree_full_connection(TALLOC_CTX *parent_ctx,
io.in.credentials = credentials;
io.in.fallback_to_anonymous = false;
io.in.workgroup = lp_workgroup(global_loadparm);
+ io.in.max_xmit = lp_max_xmit(global_loadparm);
+ io.in.max_mux = lp_maxmux(global_loadparm);
+ io.in.ntstatus_support = lp_nt_status_support(global_loadparm);
+ io.in.max_protocol = lp_cli_maxprotocol(global_loadparm);
+ io.in.unicode = lp_unicode(global_loadparm);
+ io.in.use_spnego = lp_use_spnego(global_loadparm) && lp_nt_status_support(global_loadparm);
+
+
status = smb_composite_connect(&io, parent_ctx, resolve_ctx, ev);
if (NT_STATUS_IS_OK(status)) {
diff --git a/source4/libcli/smb_composite/connect.c b/source4/libcli/smb_composite/connect.c
index b71cfc2c19..bdefe39b71 100644
--- a/source4/libcli/smb_composite/connect.c
+++ b/source4/libcli/smb_composite/connect.c
@@ -63,8 +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_unicode(global_loadparm),
- lp_cli_maxprotocol(global_loadparm));
+ state->req = smb_raw_negotiate_send(state->transport, io->in.unicode, io->in.max_protocol);
NT_STATUS_HAVE_NO_MEMORY(state->req);
state->req->async.fn = request_handler;
@@ -308,9 +307,9 @@ static NTSTATUS connect_socket(struct composite_context *c,
/* the socket is up - we can initialise the smbcli transport layer */
state->transport = smbcli_transport_init(state->sock, state, true,
- lp_max_xmit(global_loadparm),
- lp_maxmux(global_loadparm),
- lp_use_spnego(global_loadparm) && lp_nt_status_support(global_loadparm));
+ io->in.max_xmit,
+ io->in.max_mux,
+ io->in.use_spnego);
NT_STATUS_HAVE_NO_MEMORY(state->transport);
if (is_ipaddress(state->sock->hostname) &&
diff --git a/source4/libcli/smb_composite/fetchfile.c b/source4/libcli/smb_composite/fetchfile.c
index f3934a2123..893eb854f5 100644
--- a/source4/libcli/smb_composite/fetchfile.c
+++ b/source4/libcli/smb_composite/fetchfile.c
@@ -147,6 +147,14 @@ struct composite_context *smb_composite_fetchfile_send(struct smb_composite_fetc
state->connect->in.fallback_to_anonymous = false;
state->connect->in.workgroup = io->in.workgroup;
+ state->connect->in.max_xmit = lp_max_xmit(global_loadparm);
+ state->connect->in.max_mux = lp_maxmux(global_loadparm);
+ state->connect->in.ntstatus_support = lp_nt_status_support(global_loadparm);
+ state->connect->in.max_protocol = lp_cli_maxprotocol(global_loadparm);
+ state->connect->in.unicode = lp_unicode(global_loadparm);
+ state->connect->in.use_spnego = lp_use_spnego(global_loadparm) &&
+ lp_nt_status_support(global_loadparm);
+
state->creq = smb_composite_connect_send(state->connect, state,
lp_resolve_context(global_loadparm), event_ctx);
if (state->creq == NULL) goto failed;
diff --git a/source4/libcli/smb_composite/fsinfo.c b/source4/libcli/smb_composite/fsinfo.c
index 2d8240572e..bf425ad7c8 100644
--- a/source4/libcli/smb_composite/fsinfo.c
+++ b/source4/libcli/smb_composite/fsinfo.c
@@ -153,6 +153,14 @@ struct composite_context *smb_composite_fsinfo_send(struct smbcli_tree *tree,
state->connect->in.fallback_to_anonymous = false;
state->connect->in.workgroup = io->in.workgroup;
+ state->connect->in.max_xmit = lp_max_xmit(global_loadparm);
+ state->connect->in.max_mux = lp_maxmux(global_loadparm);
+ state->connect->in.ntstatus_support = lp_nt_status_support(global_loadparm);
+ state->connect->in.max_protocol = lp_cli_maxprotocol(global_loadparm);
+ state->connect->in.unicode = lp_unicode(global_loadparm);
+ state->connect->in.use_spnego = lp_use_spnego(global_loadparm) &&
+ lp_nt_status_support(global_loadparm);
+
c->state = COMPOSITE_STATE_IN_PROGRESS;
state->stage = FSINFO_CONNECT;
c->event_ctx = talloc_reference(c, tree->session->transport->socket->event.ctx);
diff --git a/source4/libcli/smb_composite/smb_composite.h b/source4/libcli/smb_composite/smb_composite.h
index 5574495079..41ce4b03bd 100644
--- a/source4/libcli/smb_composite/smb_composite.h
+++ b/source4/libcli/smb_composite/smb_composite.h
@@ -91,6 +91,12 @@ struct smb_composite_connect {
struct cli_credentials *credentials;
bool fallback_to_anonymous;
const char *workgroup;
+ bool use_spnego;
+ bool ntstatus_support;
+ bool unicode;
+ int max_xmit;
+ int max_mux;
+ int max_protocol;
} in;
struct {
struct smbcli_tree *tree;