*/
struct composite_context *smb2_connect_send(TALLOC_CTX *mem_ctx,
const char *host,
+ const char **ports,
const char *share,
struct resolve_context *resolve_ctx,
struct cli_credentials *credentials,
struct smb2_connect_state *state;
struct nbt_name name;
struct composite_context *creq;
- const char **ports;
c = composite_create(mem_ctx, ev);
if (c == NULL) return NULL;
state->options = *options;
state->host = talloc_strdup(c, host);
if (composite_nomem(state->host, c)) return c;
- state->ports = lp_parm_string_list(state, global_loadparm,
- NULL, "smb2", "ports", NULL);
+ state->ports = talloc_reference(state, ports);
if (composite_nomem(state->ports, c)) return c;
state->share = talloc_strdup(c, share);
if (composite_nomem(state->share, c)) return c;
sync version of smb2_connect
*/
NTSTATUS smb2_connect(TALLOC_CTX *mem_ctx,
- const char *host, const char *share,
+ const char *host, const char **ports,
+ const char *share,
struct resolve_context *resolve_ctx,
struct cli_credentials *credentials,
struct smb2_tree **tree,
struct event_context *ev,
struct smbcli_options *options)
{
- struct composite_context *c = smb2_connect_send(mem_ctx, host, share,
- resolve_ctx,
- credentials, ev, options);
+ struct composite_context *c = smb2_connect_send(mem_ctx, host, ports,
+ share, resolve_ctx,
+ credentials, ev, options);
return smb2_connect_recv(c, mem_ctx, tree);
}
lp_smbcli_options(lp_ctx, &options);
/* send smb2 connect request */
- conn_req = smb2_connect_send(mem_ctx, s->io.binding->host, "IPC$",
+ conn_req = smb2_connect_send(mem_ctx, s->io.binding->host,
+ lp_parm_string_list(mem_ctx, lp_ctx, NULL, "smb2", "ports", NULL),
+ "IPC$",
s->io.resolve_ctx,
s->io.creds,
c->event_ctx,
lp_smbcli_options(ntvfs->ctx->lp_ctx, &options);
- creq = smb2_connect_send(private, host, remote_share,
+ creq = smb2_connect_send(private, host,
+ lp_parm_string_list(private, ntvfs->ctx->lp_ctx, NULL, "smb2", "ports", NULL),
+ remote_share,
lp_resolve_context(ntvfs->ctx->lp_ctx),
credentials,
ntvfs->ctx->event_ctx, &options);