From: Stefan Metzmacher Date: Sun, 6 Apr 2025 17:05:19 +0000 (+0200) Subject: s3:libsmb: pass struct smb_transports to cli_start_connection() X-Git-Tag: tevent-0.17.0~269 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a3647fda8cff5f724a339dbc9dab4659dceb770;p=thirdparty%2Fsamba.git s3:libsmb: pass struct smb_transports to cli_start_connection() Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke --- diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c index fd7200a6c0e..5ad4b404f93 100644 --- a/source3/client/smbspool.c +++ b/source3/client/smbspool.c @@ -542,6 +542,7 @@ smb_complete_connection(struct cli_state **output_cli, struct cli_state *cli; /* New connection */ NTSTATUS nt_status; struct cli_credentials *creds = NULL; + struct smb_transports ts = smbsock_transports_from_port(port); /* Start the SMB connection */ nt_status = cli_start_connection(talloc_tos(), @@ -549,7 +550,7 @@ smb_complete_connection(struct cli_state **output_cli, myname, server, NULL, - port, + &ts, SMB_SIGNING_DEFAULT, 0); if (!NT_STATUS_IS_OK(nt_status)) { diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index e5040899758..551b91de3df 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -2835,20 +2835,20 @@ NTSTATUS cli_start_connection(TALLOC_CTX *mem_ctx, struct cli_state **output_cli, const char *my_name, const char *dest_host, - const struct sockaddr_storage *dest_ss, int port, + const struct sockaddr_storage *dest_ss, + const struct smb_transports *transports, enum smb_signing_setting signing_state, int flags) { struct tevent_context *ev; struct tevent_req *req; NTSTATUS status = NT_STATUS_NO_MEMORY; - struct smb_transports ts = smbsock_transports_from_port(port); ev = samba_tevent_context_init(mem_ctx); if (ev == NULL) { goto fail; } req = cli_start_connection_send(ev, ev, my_name, dest_host, dest_ss, - &ts, signing_state, flags, NULL); + transports, signing_state, flags, NULL); if (req == NULL) { goto fail; } diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index e3e92e6fcb5..babd5f9dabf 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -96,8 +96,10 @@ NTSTATUS cli_start_connection(TALLOC_CTX *mem_ctx, struct cli_state **output_cli, const char *my_name, const char *dest_host, - const struct sockaddr_storage *dest_ss, int port, - enum smb_signing_setting signing_state, int flags); + const struct sockaddr_storage *dest_ss, + const struct smb_transports *transports, + enum smb_signing_setting signing_state, int flags) + NONNULL(2) NONNULL(6); NTSTATUS cli_smb1_setup_encryption(struct cli_state *cli, struct cli_credentials *creds); diff --git a/source3/torture/torture.c b/source3/torture/torture.c index 83198eeed3c..3a83df17f7c 100644 --- a/source3/torture/torture.c +++ b/source3/torture/torture.c @@ -10666,6 +10666,9 @@ static bool run_chain2(int dummy) bool done = false; NTSTATUS status; int flags = CLI_FULL_CONNECTION_FORCE_SMB1; + struct smb_transports ts = + smb_transports_parse("client smb transports", + lp_client_smb_transports()); printf("starting chain2 test\n"); status = cli_start_connection(talloc_tos(), @@ -10673,7 +10676,7 @@ static bool run_chain2(int dummy) lp_netbios_name(), host, NULL, - port_to_use, + &ts, SMB_SIGNING_DEFAULT, flags); if (!NT_STATUS_IS_OK(status)) {