From cff23ec51177f11902c99b727268eb05ea7c97c7 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 24 Jan 2016 17:41:01 +0200 Subject: [PATCH] imapc: Added imapc_cmd_timeout setting to control the command wait timeouts. --- src/lib-storage/index/imapc/imapc-settings.c | 2 ++ src/lib-storage/index/imapc/imapc-settings.h | 1 + src/lib-storage/index/imapc/imapc-storage.c | 1 + 3 files changed, 4 insertions(+) diff --git a/src/lib-storage/index/imapc/imapc-settings.c b/src/lib-storage/index/imapc/imapc-settings.c index d05e05edd7..60d2ba2337 100644 --- a/src/lib-storage/index/imapc/imapc-settings.c +++ b/src/lib-storage/index/imapc/imapc-settings.c @@ -28,6 +28,7 @@ static const struct setting_define imapc_setting_defines[] = { DEF(SET_STR, imapc_features), DEF(SET_STR, imapc_rawlog_dir), DEF(SET_STR, imapc_list_prefix), + DEF(SET_TIME, imapc_cmd_timeout), DEF(SET_TIME, imapc_max_idle_time), DEF(SET_STR, pop3_deleted_flag), @@ -50,6 +51,7 @@ static const struct imapc_settings imapc_default_settings = { .imapc_features = "", .imapc_rawlog_dir = "", .imapc_list_prefix = "", + .imapc_cmd_timeout = 5*60, .imapc_max_idle_time = 60*29, .pop3_deleted_flag = "" diff --git a/src/lib-storage/index/imapc/imapc-settings.h b/src/lib-storage/index/imapc/imapc-settings.h index 6d9c861428..d4c7a62882 100644 --- a/src/lib-storage/index/imapc/imapc-settings.h +++ b/src/lib-storage/index/imapc/imapc-settings.h @@ -32,6 +32,7 @@ struct imapc_settings { const char *imapc_features; const char *imapc_rawlog_dir; const char *imapc_list_prefix; + unsigned int imapc_cmd_timeout; unsigned int imapc_max_idle_time; const char *pop3_deleted_flag; diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 217d2fbe2f..da2295fbfd 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -266,6 +266,7 @@ int imapc_storage_client_create(struct mail_namespace *ns, } set.sasl_mechanisms = imapc_set->imapc_sasl_mechanisms; set.use_proxyauth = (imapc_set->parsed_features & IMAPC_FEATURE_PROXYAUTH) != 0; + set.cmd_timeout_msecs = imapc_set->imapc_cmd_timeout * 1000; set.max_idle_time = imapc_set->imapc_max_idle_time; set.dns_client_socket_path = *ns->user->set->base_dir == '\0' ? "" : t_strconcat(ns->user->set->base_dir, "/",