From: Timo Sirainen Date: Mon, 12 Aug 2024 10:27:07 +0000 (+0300) Subject: lib-program-client, global: Move noreply parameter to program_client_parameters X-Git-Tag: 2.4.1~706 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7182d74584154d877aae2e10bd59ae05e85bb490;p=thirdparty%2Fdovecot%2Fcore.git lib-program-client, global: Move noreply parameter to program_client_parameters --- diff --git a/src/lib-program-client/program-client-remote.c b/src/lib-program-client/program-client-remote.c index 922e585314..7468dc463c 100644 --- a/src/lib-program-client/program-client-remote.c +++ b/src/lib-program-client/program-client-remote.c @@ -617,8 +617,7 @@ program_client_remote_switch_ioloop(struct program_client *pclient) struct program_client * program_client_unix_create(const char *socket_path, const char *const *args, - const struct program_client_parameters *params, - bool noreply) + const struct program_client_parameters *params) { struct program_client_remote *prclient; const char *label; @@ -634,7 +633,7 @@ program_client_unix_create(const char *socket_path, const char *const *args, prclient->client.disconnect = program_client_remote_disconnect; prclient->client.switch_ioloop = program_client_remote_switch_ioloop; prclient->address = p_strdup(pool, socket_path); - prclient->noreply = noreply; + prclient->noreply = params->no_reply; return &prclient->client; } @@ -642,8 +641,7 @@ program_client_unix_create(const char *socket_path, const char *const *args, struct program_client * program_client_net_create(const char *host, in_port_t port, const char *const *args, - const struct program_client_parameters *params, - bool noreply) + const struct program_client_parameters *params) { struct program_client_remote *prclient; const char *label; @@ -661,7 +659,7 @@ program_client_net_create(const char *host, in_port_t port, prclient->address = p_strdup(pool, host); prclient->port = port; prclient->have_hostname = TRUE; - prclient->noreply = noreply; + prclient->noreply = params->no_reply; return &prclient->client; } @@ -669,8 +667,7 @@ struct program_client * program_client_net_create_ips(const struct ip_addr *ips, size_t ips_count, in_port_t port, const char *const *args, - const struct program_client_parameters *params, - bool noreply) + const struct program_client_parameters *params) { struct program_client_remote *prclient; const char *label; @@ -693,6 +690,6 @@ program_client_net_create_ips(const struct ip_addr *ips, size_t ips_count, sizeof(struct ip_addr)*ips_count); prclient->ips_count = ips_count; prclient->port = port; - prclient->noreply = noreply; + prclient->noreply = params->no_reply; return &prclient->client; } diff --git a/src/lib-program-client/program-client.c b/src/lib-program-client/program-client.c index 1f497cc551..539d3588a7 100644 --- a/src/lib-program-client/program-client.c +++ b/src/lib-program-client/program-client.c @@ -664,8 +664,7 @@ void program_client_switch_ioloop(struct program_client *pclient) int program_client_create(const char *uri, const char *const *args, const struct program_client_parameters *params, - bool noreply, struct program_client **pc_r, - const char **error_r) + struct program_client **pc_r, const char **error_r) { const char *suffix; @@ -673,7 +672,7 @@ int program_client_create(const char *uri, const char *const *args, *pc_r = program_client_local_create(suffix, args, params); return 0; } else if (str_begins(uri, "unix:", &suffix)) { - *pc_r = program_client_unix_create(suffix, args, params, noreply); + *pc_r = program_client_unix_create(suffix, args, params); return 0; } else if (str_begins(uri, "tcp:", &suffix)) { const char *host; @@ -686,8 +685,7 @@ int program_client_create(const char *uri, const char *const *args, "must be host:port in '%s'", suffix); return -1; } - *pc_r = program_client_net_create(host, port, args, params, - noreply); + *pc_r = program_client_net_create(host, port, args, params); return 0; } else { *error_r = t_strdup_printf( diff --git a/src/lib-program-client/program-client.h b/src/lib-program-client/program-client.h index d62f951c4a..2397f7a375 100644 --- a/src/lib-program-client/program-client.h +++ b/src/lib-program-client/program-client.h @@ -26,6 +26,7 @@ struct program_client_parameters { enabled for 'net' program clients, which may likely encounter unexpected connection termination. */ bool use_dotstream:1; + bool no_reply:1; }; typedef void program_client_fd_callback_t(void *context, struct istream *input); @@ -38,22 +39,18 @@ program_client_local_create(const char *bin_path, const char *const *args, ATTR_NULL(3); struct program_client * program_client_unix_create(const char *socket_path, const char *const *args, - const struct program_client_parameters *params, - bool noreply) ATTR_NULL(3); + const struct program_client_parameters *params); struct program_client * program_client_net_create(const char *host, in_port_t port, const char *const *args, - const struct program_client_parameters *params, - bool noreply) ATTR_NULL(4); + const struct program_client_parameters *params); struct program_client * program_client_net_create_ips(const struct ip_addr *ips, size_t ips_count, in_port_t port, const char *const *args, - const struct program_client_parameters *params, - bool noreply) ATTR_NULL(5); + const struct program_client_parameters *params); int program_client_create(const char *uri, const char *const *args, const struct program_client_parameters *params, - bool noreply, struct program_client **pc_r, - const char **error_r) ATTR_NULL(3); + struct program_client **pc_r, const char **error_r); void program_client_destroy(struct program_client **_pclient); diff --git a/src/lib-program-client/test-program-client-net.c b/src/lib-program-client/test-program-client-net.c index b3d0114e4e..5368aeda7c 100644 --- a/src/lib-program-client/test-program-client-net.c +++ b/src/lib-program-client/test-program-client-net.c @@ -335,8 +335,9 @@ static void test_program_success(void) test_begin("test_program_success"); + pc_params.no_reply = FALSE; pc = program_client_net_create("127.0.0.1", test_globals.port, args, - &pc_params, FALSE); + &pc_params); buffer_t *output = buffer_create_dynamic(default_pool, 16); struct ostream *os = test_ostream_create(output); @@ -365,8 +366,9 @@ static void test_program_io_common(const char *const *args) struct program_client *pc; int ret = -2; + pc_params.no_reply = FALSE; pc = program_client_net_create("127.0.0.1", test_globals.port, args, - &pc_params, FALSE); + &pc_params); struct istream *is = test_istream_create(pclient_test_io_string); program_client_set_input(pc, is); @@ -424,8 +426,9 @@ static void test_program_failure(void) test_begin("test_program_failure"); + pc_params.no_reply = FALSE; pc = program_client_net_create("127.0.0.1", test_globals.port, args, - &pc_params, FALSE); + &pc_params); buffer_t *output = buffer_create_dynamic(default_pool, 16); struct ostream *os = test_ostream_create(output); @@ -459,8 +462,9 @@ static void test_program_noreply(void) test_begin("test_program_noreply"); + pc_params.no_reply = TRUE; pc = program_client_net_create("127.0.0.1", test_globals.port, args, - &pc_params, TRUE); + &pc_params); program_client_run_async(pc, test_program_async_callback, &ret); @@ -495,9 +499,10 @@ static void test_program_refused(void) i_fatal("Cannot convert addresses"); } + pc_params.no_reply = TRUE; pc = program_client_net_create_ips(ips, N_ELEMENTS(ips), test_globals.port, args, - &pc_params, TRUE); + &pc_params); test_expect_errors(N_ELEMENTS(ips)-1); program_client_run_async(pc, test_program_async_callback, &ret); diff --git a/src/lib-program-client/test-program-client-unix.c b/src/lib-program-client/test-program-client-unix.c index 94ba3700f0..c9d321920f 100644 --- a/src/lib-program-client/test-program-client-unix.c +++ b/src/lib-program-client/test-program-client-unix.c @@ -288,7 +288,8 @@ static void test_program_success(void) test_begin("test_program_success"); - pc = program_client_unix_create(TEST_SOCKET, args, &pc_params, FALSE); + pc_params.no_reply = FALSE; + pc = program_client_unix_create(TEST_SOCKET, args, &pc_params); buffer_t *output = buffer_create_dynamic(default_pool, 16); struct ostream *os = test_ostream_create(output); @@ -314,7 +315,8 @@ static void test_program_io_common(const char *const *args) struct program_client *pc; int ret; - pc = program_client_unix_create(TEST_SOCKET, args, &pc_params, FALSE); + pc_params.no_reply = FALSE; + pc = program_client_unix_create(TEST_SOCKET, args, &pc_params); struct istream *is = test_istream_create(pclient_test_io_string); program_client_set_input(pc, is); @@ -369,7 +371,8 @@ static void test_program_failure(void) test_begin("test_program_failure"); - pc = program_client_unix_create(TEST_SOCKET, args, &pc_params, FALSE); + pc_params.no_reply = FALSE; + pc = program_client_unix_create(TEST_SOCKET, args, &pc_params); buffer_t *output = buffer_create_dynamic(default_pool, 16); struct ostream *os = test_ostream_create(output); @@ -400,7 +403,8 @@ static void test_program_noreply(void) test_begin("test_program_noreply"); - pc = program_client_unix_create(TEST_SOCKET, args, &pc_params, TRUE); + pc_params.no_reply = TRUE; + pc = program_client_unix_create(TEST_SOCKET, args, &pc_params); program_client_run_async(pc, test_program_async_callback, &ret); @@ -424,7 +428,8 @@ static void test_program_sync(void) test_begin("test_program_sync"); - pc = program_client_unix_create(TEST_SOCKET, args, &pc_params, TRUE); + pc_params.no_reply = TRUE; + pc = program_client_unix_create(TEST_SOCKET, args, &pc_params); ret = program_client_run(pc); test_assert(ret == 1); @@ -449,8 +454,9 @@ static void test_program_async_wait(void) test_begin("test_program_async_wait"); + pc_params.no_reply = TRUE; test_globals.async_client = program_client_unix_create(TEST_SOCKET, - args, &pc_params, TRUE); + args, &pc_params); program_client_run_async(test_globals.async_client, test_program_async_wait_finish, diff --git a/src/plugins/quota/quota.c b/src/plugins/quota/quota.c index 16cd35cae1..915e5a047f 100644 --- a/src/plugins/quota/quota.c +++ b/src/plugins/quota/quota.c @@ -1011,6 +1011,7 @@ static void quota_warning_execute(struct quota_root *root, const char *cmd, struct program_client_parameters params = { .client_connect_timeout_msecs = 1000, .event = root->quota->event, + .no_reply = TRUE, }; struct program_client *pc; @@ -1044,7 +1045,7 @@ static void quota_warning_execute(struct quota_root *root, const char *cmd, args++; - if (program_client_create(socket_path, args, ¶ms, TRUE, + if (program_client_create(socket_path, args, ¶ms, &pc, &error) < 0) { e_error(root->quota->event, "program_client_create(%s) failed: %s", socket_path, diff --git a/src/plugins/welcome/welcome-plugin.c b/src/plugins/welcome/welcome-plugin.c index 45d434d9e3..ff00abff64 100644 --- a/src/plugins/welcome/welcome-plugin.c +++ b/src/plugins/welcome/welcome-plugin.c @@ -52,6 +52,7 @@ static void script_execute(struct mail_user *user, const char *cmd, bool wait) struct program_client_parameters params = { .client_connect_timeout_msecs = 1000, .event = user->event, + .no_reply = !wait, }; e_debug(user->event, "welcome: Executing %s (wait=%d)", cmd, wait ? 1 : 0); @@ -66,7 +67,7 @@ static void script_execute(struct mail_user *user, const char *cmd, bool wait) } struct welcome_client_list *wclient = i_new(struct welcome_client_list, 1); - wclient->client = program_client_unix_create(socket_path, args, ¶ms, !wait); + wclient->client = program_client_unix_create(socket_path, args, ¶ms); if (wait) { enum program_client_exit_status ret =