1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

s4:libcli: allow passing an already negotiated connection to smb2_connect_send()

It will just do the session setup and tree connect steps.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13308

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
This commit is contained in:
Stefan Metzmacher 2018-07-18 16:44:16 +02:00 committed by Alexander Bokovoy
parent 5ad5b81b6e
commit f20e607c15
2 changed files with 22 additions and 0 deletions

View File

@ -64,6 +64,7 @@ struct tevent_req *smb2_connect_send(TALLOC_CTX *mem_ctx,
const char *share,
struct resolve_context *resolve_ctx,
struct cli_credentials *credentials,
struct smbXcli_conn **existing_conn,
uint64_t previous_session_id,
const struct smbcli_options *options,
const char *socket_options,
@ -107,6 +108,25 @@ struct tevent_req *smb2_connect_send(TALLOC_CTX *mem_ctx,
return tevent_req_post(req, ev);
}
if (existing_conn != NULL) {
NTSTATUS status;
status = smb2_transport_raw_init(state, ev,
existing_conn,
options,
&state->transport);
if (tevent_req_nterror(req, status)) {
return tevent_req_post(req, ev);
}
smb2_connect_session_start(req);
if (!tevent_req_is_in_progress(req)) {
return tevent_req_post(req, ev);
}
return req;
}
creq = smbcli_sock_connect_send(state, NULL, state->ports,
state->host, state->resolve_ctx,
state->ev, state->socket_options,
@ -311,6 +331,7 @@ NTSTATUS smb2_connect_ext(TALLOC_CTX *mem_ctx,
share,
resolve_ctx,
credentials,
NULL, /* existing_conn */
previous_session_id,
options,
socket_options,

View File

@ -301,6 +301,7 @@ static struct composite_context *dcerpc_pipe_connect_ncacn_np_smb2_send(
"IPC$",
s->io.resolve_ctx,
s->io.creds,
NULL, /* existing_conn */
0, /* previous_session_id */
&options,
lpcfg_socket_options(lp_ctx),