From e19f696b785e30b07aba16dc22cd2df6eb92c3e4 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 10 Apr 2025 16:48:48 +0200 Subject: [PATCH] s4:libcli: pass struct loadparm_context to smbcli_full_connection() Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke --- source4/client/cifsddio.c | 1 + source4/client/client.c | 6 ++++-- source4/lib/policy/gp_filesys.c | 1 + source4/libcli/cliconnect.c | 1 + source4/libcli/libcli.h | 1 + source4/torture/locktest.c | 3 ++- source4/torture/masktest.c | 7 +++++-- source4/torture/raw/oplock.c | 1 + source4/torture/raw/session.c | 1 + source4/torture/raw/tconrate.c | 1 + source4/torture/rpc/iremotewinspool_driver.c | 1 + source4/torture/rpc/join.c | 2 ++ source4/torture/rpc/samba3rpc.c | 13 ++++++++++++- source4/torture/rpc/spoolss.c | 1 + source4/torture/unix/unix_info2.c | 1 + source4/torture/unix/whoami.c | 4 +++- source4/torture/util_smb.c | 1 + 17 files changed, 39 insertions(+), 7 deletions(-) diff --git a/source4/client/cifsddio.c b/source4/client/cifsddio.c index f0c34c04b57..1796a5a8553 100644 --- a/source4/client/cifsddio.c +++ b/source4/client/cifsddio.c @@ -238,6 +238,7 @@ static struct smbcli_state * init_smb_session(struct resolve_context *resolve_ct NULL /* devtype */, socket_options, samba_cmdline_get_creds(), + samba_cmdline_get_lp_ctx(), resolve_ctx, ev, options, session_options, diff --git a/source4/client/client.c b/source4/client/client.c index 9ac1a5bc0a8..5047abc46c8 100644 --- a/source4/client/client.c +++ b/source4/client/client.c @@ -3179,6 +3179,7 @@ return a connection to a server *******************************************************/ static bool do_connect(struct smbclient_context *ctx, struct tevent_context *ev_ctx, + struct loadparm_context *lp_ctx, struct resolve_context *resolve_ctx, const char *specified_server, const char *specified_share, @@ -3222,7 +3223,7 @@ static bool do_connect(struct smbclient_context *ctx, status = smbcli_full_connection(ctx, &ctx->cli, server, share, NULL, socket_options, - cred, resolve_ctx, + cred, lp_ctx, resolve_ctx, ev_ctx, options, session_options, gensec_settings); if (!NT_STATUS_IS_OK(status)) { @@ -3532,7 +3533,8 @@ int main(int argc, char *argv[]) goto done; } - if (!do_connect(ctx, ev_ctx, lpcfg_resolve_context(lp_ctx), + if (!do_connect(ctx, ev_ctx, lp_ctx, + lpcfg_resolve_context(lp_ctx), desthost, service, lpcfg_socket_options(lp_ctx), creds, diff --git a/source4/lib/policy/gp_filesys.c b/source4/lib/policy/gp_filesys.c index 9840e6f74ba..a22227ead08 100644 --- a/source4/lib/policy/gp_filesys.c +++ b/source4/lib/policy/gp_filesys.c @@ -170,6 +170,7 @@ static NTSTATUS gp_cli_connect(struct gp_context *gp_ctx) NULL, lpcfg_socket_options(gp_ctx->lp_ctx), gp_ctx->credentials, + gp_ctx->lp_ctx, lpcfg_resolve_context(gp_ctx->lp_ctx), gp_ctx->ev_ctx, &options, diff --git a/source4/libcli/cliconnect.c b/source4/libcli/cliconnect.c index f7ca61f598e..4e0c16b8ce7 100644 --- a/source4/libcli/cliconnect.c +++ b/source4/libcli/cliconnect.c @@ -169,6 +169,7 @@ NTSTATUS smbcli_full_connection(TALLOC_CTX *parent_ctx, const char *devtype, const char *socket_options, struct cli_credentials *credentials, + struct loadparm_context *lp_ctx, struct resolve_context *resolve_ctx, struct tevent_context *ev, struct smbcli_options *options, diff --git a/source4/libcli/libcli.h b/source4/libcli/libcli.h index 0bc70e92097..e167c0d7283 100644 --- a/source4/libcli/libcli.h +++ b/source4/libcli/libcli.h @@ -109,6 +109,7 @@ NTSTATUS smbcli_full_connection(TALLOC_CTX *parent_ctx, const char *devtype, const char *socket_options, struct cli_credentials *credentials, + struct loadparm_context *lp_ctx, struct resolve_context *resolve_ctx, struct tevent_context *ev, struct smbcli_options *options, diff --git a/source4/torture/locktest.c b/source4/torture/locktest.c index 11382d4b18d..84a455569f4 100644 --- a/source4/torture/locktest.c +++ b/source4/torture/locktest.c @@ -164,7 +164,8 @@ static struct smbcli_state *connect_one(struct tevent_context *ev, server, share, NULL, lpcfg_socket_options(lp_ctx), - servers[snum], + servers[snum], + lp_ctx, lpcfg_resolve_context(lp_ctx), ev, &options, &session_options, lpcfg_gensec_settings(mem_ctx, lp_ctx)); diff --git a/source4/torture/masktest.c b/source4/torture/masktest.c index b021eb0135f..85bcee69614 100644 --- a/source4/torture/masktest.c +++ b/source4/torture/masktest.c @@ -71,7 +71,8 @@ static char *reg_test(struct smbcli_state *cli, TALLOC_CTX *mem_ctx, const char /***************************************************** return a connection to a server *******************************************************/ -static struct smbcli_state *connect_one(struct resolve_context *resolve_ctx, +static struct smbcli_state *connect_one(struct loadparm_context *lp_ctx, + struct resolve_context *resolve_ctx, struct tevent_context *ev, TALLOC_CTX *mem_ctx, char *share, @@ -99,6 +100,7 @@ static struct smbcli_state *connect_one(struct resolve_context *resolve_ctx, share, NULL, socket_options, creds, + lp_ctx, resolve_ctx, ev, options, session_options, gensec_settings); @@ -395,7 +397,8 @@ int main(int argc, const char *argv[]) lpcfg_smbcli_options(lp_ctx, &options); lpcfg_smbcli_session_options(lp_ctx, &session_options); - cli = connect_one(lpcfg_resolve_context(lp_ctx), ev, mem_ctx, share, + cli = connect_one(lp_ctx, lpcfg_resolve_context(lp_ctx), + ev, mem_ctx, share, lpcfg_socket_options(lp_ctx), &options, &session_options, lpcfg_gensec_settings(mem_ctx, lp_ctx)); diff --git a/source4/torture/raw/oplock.c b/source4/torture/raw/oplock.c index bbbba9fb383..0dad568527c 100644 --- a/source4/torture/raw/oplock.c +++ b/source4/torture/raw/oplock.c @@ -187,6 +187,7 @@ static bool open_connection_no_level2_oplocks(struct torture_context *tctx, torture_setting_string(tctx, "share", NULL), NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); diff --git a/source4/torture/raw/session.c b/source4/torture/raw/session.c index 9ceb9897eac..a85656a916a 100644 --- a/source4/torture/raw/session.c +++ b/source4/torture/raw/session.c @@ -270,6 +270,7 @@ static bool test_session_expire1(struct torture_context *tctx) share, NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); diff --git a/source4/torture/raw/tconrate.c b/source4/torture/raw/tconrate.c index 65c6ceff2fd..7bb96ddef01 100644 --- a/source4/torture/raw/tconrate.c +++ b/source4/torture/raw/tconrate.c @@ -102,6 +102,7 @@ static int fork_tcon_client(struct torture_context *tctx, host, share, NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); diff --git a/source4/torture/rpc/iremotewinspool_driver.c b/source4/torture/rpc/iremotewinspool_driver.c index f91f86cc170..e8b07050996 100644 --- a/source4/torture/rpc/iremotewinspool_driver.c +++ b/source4/torture/rpc/iremotewinspool_driver.c @@ -65,6 +65,7 @@ static bool smb_connect_print_share(struct torture_context *tctx, share_name, NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &smb_options, diff --git a/source4/torture/rpc/join.c b/source4/torture/rpc/join.c index 23fcbfbfa34..834235edd59 100644 --- a/source4/torture/rpc/join.c +++ b/source4/torture/rpc/join.c @@ -38,6 +38,7 @@ bool torture_rpc_join(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), machine_account, + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -65,6 +66,7 @@ bool torture_rpc_join(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), machine_account, + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); diff --git a/source4/torture/rpc/samba3rpc.c b/source4/torture/rpc/samba3rpc.c index ae8b202252b..8622c7ac3b7 100644 --- a/source4/torture/rpc/samba3rpc.c +++ b/source4/torture/rpc/samba3rpc.c @@ -196,6 +196,7 @@ bool torture_bind_authcontext(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -430,6 +431,7 @@ static bool torture_bind_samba3(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -1404,6 +1406,7 @@ static bool torture_netlogon_samba3(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -1481,7 +1484,9 @@ static bool test_join3(struct torture_context *tctx, status = smbcli_full_connection(tctx, &cli, torture_setting_string(tctx, "host", NULL), "IPC$", NULL, lpcfg_socket_options(tctx->lp_ctx), - smb_creds, lpcfg_resolve_context(tctx->lp_ctx), + smb_creds, + tctx->lp_ctx, + lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); torture_assert_ntstatus_ok(tctx, status, @@ -1806,6 +1811,7 @@ static bool torture_samba3_rpc_getusername(struct torture_context *torture) torture, &cli, torture_setting_string(torture, "host", NULL), "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), anon_creds, + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -1824,6 +1830,7 @@ static bool torture_samba3_rpc_getusername(struct torture_context *torture) torture, &cli, torture_setting_string(torture, "host", NULL), "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); torture_assert_ntstatus_ok(torture, status, "smbcli_full_connection failed\n"); @@ -2464,6 +2471,7 @@ static bool torture_samba3_rpc_sharesec(struct torture_context *torture) NULL, lpcfg_socket_options(torture->lp_ctx), test_credentials, + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, @@ -3427,6 +3435,7 @@ static bool torture_rpc_smb_reauth1(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -3585,6 +3594,7 @@ static bool torture_rpc_smb_reauth2(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); @@ -3985,6 +3995,7 @@ static bool torture_rpc_smb1_pipe_name(struct torture_context *torture) "IPC$", NULL, lpcfg_socket_options(torture->lp_ctx), samba_cmdline_get_creds(), + torture->lp_ctx, lpcfg_resolve_context(torture->lp_ctx), torture->ev, &options, &session_options, lpcfg_gensec_settings(torture, torture->lp_ctx)); diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index eae67bae439..e9aebcf5d03 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -10797,6 +10797,7 @@ static bool connect_printer_driver_share(struct torture_context *tctx, share_name, NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &smb_options, diff --git a/source4/torture/unix/unix_info2.c b/source4/torture/unix/unix_info2.c index 3e4817c5243..a18246b62c8 100644 --- a/source4/torture/unix/unix_info2.c +++ b/source4/torture/unix/unix_info2.c @@ -65,6 +65,7 @@ static struct smbcli_state *connect_to_server(struct torture_context *tctx) status = smbcli_full_connection(tctx, &cli, host, share, NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); diff --git a/source4/torture/unix/whoami.c b/source4/torture/unix/whoami.c index 7e61223e13b..a16c8add7c8 100644 --- a/source4/torture/unix/whoami.c +++ b/source4/torture/unix/whoami.c @@ -86,7 +86,9 @@ static struct smbcli_state *connect_to_server(struct torture_context *tctx, status = smbcli_full_connection(tctx, &cli, host, share, NULL, lpcfg_socket_options(tctx->lp_ctx), - creds, lpcfg_resolve_context(tctx->lp_ctx), + creds, + tctx->lp_ctx, + lpcfg_resolve_context(tctx->lp_ctx), tctx->ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); diff --git a/source4/torture/util_smb.c b/source4/torture/util_smb.c index 0556325594e..6f07d184557 100644 --- a/source4/torture/util_smb.c +++ b/source4/torture/util_smb.c @@ -460,6 +460,7 @@ _PUBLIC_ bool torture_open_connection_share(TALLOC_CTX *mem_ctx, sharename, NULL, lpcfg_socket_options(tctx->lp_ctx), samba_cmdline_get_creds(), + tctx->lp_ctx, lpcfg_resolve_context(tctx->lp_ctx), ev, &options, &session_options, lpcfg_gensec_settings(tctx, tctx->lp_ctx)); -- 2.47.3