From: Stefan Metzmacher Date: Thu, 10 Apr 2025 14:48:48 +0000 (+0200) Subject: s3:libsmb: pass struct loadparm_context to smbsock_any_connect_send() X-Git-Tag: tevent-0.17.0~234 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=290ed5e333064dc71c276ae1991b81b76e4dfeaf;p=thirdparty%2Fsamba.git s3:libsmb: pass struct loadparm_context to smbsock_any_connect_send() Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke --- diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 09b2240bde8..d83a820f9e1 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -2423,6 +2423,7 @@ static struct tevent_req *cli_connect_sock_send( { struct tevent_req *req, *subreq; struct cli_connect_sock_state *state; + struct loadparm_context *lp_ctx = NULL; struct sockaddr_storage *addrs = NULL; unsigned i; unsigned num_addrs = 0; @@ -2435,6 +2436,11 @@ static struct tevent_req *cli_connect_sock_send( } state->transports = *transports; + lp_ctx = loadparm_init_s3(talloc_tos(), loadparm_s3_helpers()); + if (tevent_req_nomem(lp_ctx, req)) { + return tevent_req_post(req, ev); + } + if ((pss == NULL) || is_zero_addr(pss)) { /* @@ -2476,7 +2482,8 @@ static struct tevent_req *cli_connect_sock_send( } subreq = smbsock_any_connect_send( - state, ev, addrs, state->called_names, state->called_types, + state, ev, lp_ctx, addrs, + state->called_names, state->called_types, 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 2a4cfa80043..f000f8fe61d 100644 --- a/source3/libsmb/smbsock_connect.c +++ b/source3/libsmb/smbsock_connect.c @@ -814,6 +814,7 @@ static void smbsock_any_connect_connected(struct tevent_req *subreq); struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, + struct loadparm_context *lp_ctx, const struct sockaddr_storage *addrs, const char **called_names, int *called_types, @@ -1046,7 +1047,7 @@ NTSTATUS smbsock_any_connect(const struct sockaddr_storage *addrs, if (ev == NULL) { goto fail; } - req = smbsock_any_connect_send(frame, ev, addrs, + req = smbsock_any_connect_send(frame, ev, lp_ctx, addrs, called_names, called_types, calling_names, calling_types, num_addrs, transports); diff --git a/source3/libsmb/smbsock_connect.h b/source3/libsmb/smbsock_connect.h index 902e977cfeb..2449fb5e844 100644 --- a/source3/libsmb/smbsock_connect.h +++ b/source3/libsmb/smbsock_connect.h @@ -44,6 +44,7 @@ NTSTATUS smbsock_connect(const struct sockaddr_storage *addr, struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, + struct loadparm_context *lp_ctx, const struct sockaddr_storage *addrs, const char **called_names, int *called_types, @@ -51,7 +52,7 @@ struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, int *calling_types, size_t num_addrs, const struct smb_transports *transports) - NONNULL(2) NONNULL(3) NONNULL(9); + NONNULL(2) NONNULL(3) NONNULL(4) NONNULL(10); 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,