From: Timo Sirainen Date: Fri, 24 Apr 2020 12:17:06 +0000 (+0300) Subject: login-proxy: Add login_proxy_timeout setting X-Git-Tag: 2.3.13~693 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0764acda6ec6d140e683c73eb6af33a4dee7dfbe;p=thirdparty%2Fdovecot%2Fcore.git login-proxy: Add login_proxy_timeout setting This can be used to overwrite the default 30 seconds. It's still possible to overwrite this from "proxy_timeout" passdb extra field. --- diff --git a/src/login-common/client-common-auth.c b/src/login-common/client-common-auth.c index eb70adbae1..1d6f1d09d7 100644 --- a/src/login-common/client-common-auth.c +++ b/src/login-common/client-common-auth.c @@ -16,7 +16,6 @@ #include "client-common.h" #define PROXY_FAILURE_MSG "Account is temporarily unavailable." -#define PROXY_DEFAULT_TIMEOUT_MSECS (1000*30) /* If we've been waiting auth server to respond for over this many milliseconds, send a "waiting" message. */ @@ -464,7 +463,7 @@ static int proxy_start(struct client *client, proxy_set.port = reply->port; proxy_set.connect_timeout_msecs = reply->proxy_timeout_msecs; if (proxy_set.connect_timeout_msecs == 0) - proxy_set.connect_timeout_msecs = PROXY_DEFAULT_TIMEOUT_MSECS; + proxy_set.connect_timeout_msecs = client->set->login_proxy_timeout; proxy_set.notify_refresh_secs = reply->proxy_refresh_secs; proxy_set.ssl_flags = reply->ssl_flags; diff --git a/src/login-common/login-settings.c b/src/login-common/login-settings.c index cb5224740c..f51a2a50de 100644 --- a/src/login-common/login-settings.c +++ b/src/login-common/login-settings.c @@ -29,6 +29,7 @@ static const struct setting_define login_setting_defines[] = { DEF(SET_STR_VARS, login_proxy_notify_path), DEF(SET_STR, login_plugin_dir), DEF(SET_STR, login_plugins), + DEF(SET_TIME_MSECS, login_proxy_timeout), DEF(SET_TIME, login_proxy_max_disconnect_delay), DEF(SET_STR, director_username_hash), @@ -55,6 +56,7 @@ static const struct login_settings login_default_settings = { .login_proxy_notify_path = "proxy-notify", .login_plugin_dir = MODULEDIR"/login", .login_plugins = "", + .login_proxy_timeout = 30*1000, .login_proxy_max_disconnect_delay = 0, .director_username_hash = "%u", diff --git a/src/login-common/login-settings.h b/src/login-common/login-settings.h index 55639447bd..a8069a8cc6 100644 --- a/src/login-common/login-settings.h +++ b/src/login-common/login-settings.h @@ -12,6 +12,7 @@ struct login_settings { const char *login_proxy_notify_path; const char *login_plugin_dir; const char *login_plugins; + unsigned int login_proxy_timeout; unsigned int login_proxy_max_disconnect_delay; const char *director_username_hash;