]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login-proxy: Add login_proxy_timeout setting
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 24 Apr 2020 12:17:06 +0000 (15:17 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 25 May 2020 08:38:55 +0000 (08:38 +0000)
This can be used to overwrite the default 30 seconds. It's still possible
to overwrite this from "proxy_timeout" passdb extra field.

src/login-common/client-common-auth.c
src/login-common/login-settings.c
src/login-common/login-settings.h

index eb70adbae1183a099aea952184c3d6cf38aa5f36..1d6f1d09d75d6ea38476c5ecfd6d967894db32a9 100644 (file)
@@ -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;
 
index cb5224740cfe184e72e22b91cfc1198fbd7b9df3..f51a2a50deafeb9d4082e496f13ff32208706d77 100644 (file)
@@ -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",
 
index 55639447bd0c3182fbafbac3c9dd52b9037acdee..a8069a8cc690358ae0b38d204df7db4409c58049 100644 (file)
@@ -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;