From: Stefan Metzmacher Date: Sun, 6 Apr 2025 17:05:19 +0000 (+0200) Subject: s3:libsmb: pass struct smb_transports to smbsock_any_connect_send() X-Git-Tag: tevent-0.17.0~275 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74d79a6bf6b3afb8470afb172f19a10127c860d2;p=thirdparty%2Fsamba.git s3:libsmb: pass struct smb_transports to smbsock_any_connect_send() Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke --- diff --git a/source3/include/proto.h b/source3/include/proto.h index ea8735c1867..23e30959b97 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -679,7 +679,9 @@ struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, int *called_types, const char **calling_names, int *calling_types, - size_t num_addrs, uint16_t port); + size_t num_addrs, + const struct smb_transports *transports) + NONNULL(2) NONNULL(3) NONNULL(9); NTSTATUS smbsock_any_connect_recv(struct tevent_req *req, int *pfd, size_t *chosen_index, uint16_t *chosen_port); NTSTATUS smbsock_any_connect(const struct sockaddr_storage *addrs, diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index bd75393ac07..bfd264b074d 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -2399,6 +2399,7 @@ fail: } struct cli_connect_sock_state { + struct smb_transports transports; const char **called_names; const char **calling_names; int *called_types; @@ -2430,6 +2431,7 @@ static struct tevent_req *cli_connect_sock_send( if (req == NULL) { return NULL; } + state->transports = smbsock_transports_from_port(port); if ((pss == NULL) || is_zero_addr(pss)) { @@ -2473,7 +2475,7 @@ static struct tevent_req *cli_connect_sock_send( subreq = smbsock_any_connect_send( state, ev, addrs, state->called_names, state->called_types, - state->calling_names, NULL, num_addrs, port); + state->calling_names, NULL, num_addrs, &state->transports); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); } diff --git a/source3/libsmb/smbsock_connect.c b/source3/libsmb/smbsock_connect.c index fd64111049d..c327cc7566f 100644 --- a/source3/libsmb/smbsock_connect.c +++ b/source3/libsmb/smbsock_connect.c @@ -818,7 +818,8 @@ struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, int *called_types, const char **calling_names, int *calling_types, - size_t num_addrs, uint16_t port) + size_t num_addrs, + const struct smb_transports *transports) { struct tevent_req *req, *subreq; struct smbsock_any_connect_state *state; @@ -835,7 +836,7 @@ struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, state->called_types = called_types; state->calling_names = calling_names; state->calling_types = calling_types; - state->transports = smbsock_transports_from_port(port); + state->transports = *transports; state->fd = -1; tevent_req_set_cleanup_fn(req, smbsock_any_connect_cleanup); @@ -1037,6 +1038,7 @@ NTSTATUS smbsock_any_connect(const struct sockaddr_storage *addrs, TALLOC_CTX *frame = talloc_stackframe(); struct tevent_context *ev; struct tevent_req *req; + struct smb_transports ts = smbsock_transports_from_port(port); NTSTATUS status = NT_STATUS_NO_MEMORY; ev = samba_tevent_context_init(frame); @@ -1046,7 +1048,7 @@ NTSTATUS smbsock_any_connect(const struct sockaddr_storage *addrs, req = smbsock_any_connect_send(frame, ev, addrs, called_names, called_types, calling_names, calling_types, - num_addrs, port); + num_addrs, &ts); if (req == NULL) { goto fail; }