dovecot-2.2: imapc: Minor code cleanup.
dovecot at dovecot.org
dovecot at dovecot.org
Wed Jul 10 06:05:30 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/673648c6fb4b
changeset: 16584:673648c6fb4b
user: Timo Sirainen <tss at iki.fi>
date: Wed Jul 10 05:57:36 2013 +0300
description:
imapc: Minor code cleanup.
diffstat:
src/lib-storage/index/imapc/imapc-storage.c | 103 +++++++++++++++------------
1 files changed, 57 insertions(+), 46 deletions(-)
diffs (122 lines):
diff -r 939aa051e3f1 -r 673648c6fb4b src/lib-storage/index/imapc/imapc-storage.c
--- a/src/lib-storage/index/imapc/imapc-storage.c Wed Jul 10 05:37:01 2013 +0300
+++ b/src/lib-storage/index/imapc/imapc-storage.c Wed Jul 10 05:57:36 2013 +0300
@@ -240,61 +240,72 @@
}
static int
+imapc_client_create(struct mail_namespace *ns,
+ const struct imapc_settings *imapc_set,
+ const struct mail_storage_settings *mail_set,
+ struct imapc_client **client_r, const char **error_r)
+{
+ struct imapc_client_settings set;
+ string_t *str;
+
+ memset(&set, 0, sizeof(set));
+ set.host = imapc_set->imapc_host;
+ if (*set.host == '\0') {
+ *error_r = "missing imapc_host";
+ return -1;
+ }
+ set.port = imapc_set->imapc_port;
+ if (imapc_set->imapc_user[0] != '\0')
+ set.username = imapc_set->imapc_user;
+ else if (ns->owner != NULL)
+ set.username = ns->owner->username;
+ else
+ set.username = ns->user->username;
+ set.master_user = imapc_set->imapc_master_user;
+ set.password = imapc_set->imapc_password;
+ if (*set.password == '\0') {
+ *error_r = "missing imapc_password";
+ return -1;
+ }
+ 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, "/",
+ DNS_CLIENT_SOCKET_NAME, NULL);
+ set.debug = mail_set->mail_debug;
+ set.rawlog_dir = mail_user_home_expand(ns->user,
+ imapc_set->imapc_rawlog_dir);
+
+ str = t_str_new(128);
+ mail_user_set_get_temp_prefix(str, ns->user->set);
+ set.temp_path_prefix = str_c(str);
+
+ set.ssl_ca_dir = mail_set->ssl_client_ca_dir;
+ set.ssl_ca_file = mail_set->ssl_client_ca_file;
+ set.ssl_verify = imapc_set->imapc_ssl_verify;
+ if (strcmp(imapc_set->imapc_ssl, "imaps") == 0)
+ set.ssl_mode = IMAPC_CLIENT_SSL_MODE_IMMEDIATE;
+ else if (strcmp(imapc_set->imapc_ssl, "starttls") == 0)
+ set.ssl_mode = IMAPC_CLIENT_SSL_MODE_STARTTLS;
+ else
+ set.ssl_mode = IMAPC_CLIENT_SSL_MODE_NONE;
+ set.ssl_crypto_device = mail_set->ssl_crypto_device;
+
+ *client_r = imapc_client_init(&set);
+ return 0;
+}
+
+static int
imapc_storage_create(struct mail_storage *_storage,
struct mail_namespace *ns,
const char **error_r)
{
struct imapc_storage *storage = (struct imapc_storage *)_storage;
- struct imapc_client_settings set;
- string_t *str;
char sep;
storage->set = mail_storage_get_driver_settings(_storage);
-
- memset(&set, 0, sizeof(set));
- set.host = storage->set->imapc_host;
- if (*set.host == '\0') {
- *error_r = "missing imapc_host";
+ if (imapc_client_create(ns, storage->set, _storage->set,
+ &storage->client, error_r) < 0)
return -1;
- }
- set.port = storage->set->imapc_port;
- if (storage->set->imapc_user[0] != '\0')
- set.username = storage->set->imapc_user;
- else if (ns->owner != NULL)
- set.username = ns->owner->username;
- else
- set.username = ns->user->username;
- set.master_user = storage->set->imapc_master_user;
- set.password = storage->set->imapc_password;
- if (*set.password == '\0') {
- *error_r = "missing imapc_password";
- return -1;
- }
- set.max_idle_time = storage->set->imapc_max_idle_time;
- set.dns_client_socket_path =
- *_storage->user->set->base_dir == '\0' ? "" :
- t_strconcat(_storage->user->set->base_dir, "/",
- DNS_CLIENT_SOCKET_NAME, NULL);
- set.debug = _storage->set->mail_debug;
- set.rawlog_dir = mail_user_home_expand(_storage->user,
- storage->set->imapc_rawlog_dir);
-
- str = t_str_new(128);
- mail_user_set_get_temp_prefix(str, _storage->user->set);
- set.temp_path_prefix = str_c(str);
-
- set.ssl_ca_dir = _storage->set->ssl_client_ca_dir;
- set.ssl_ca_file = _storage->set->ssl_client_ca_file;
- set.ssl_verify = storage->set->imapc_ssl_verify;
- if (strcmp(storage->set->imapc_ssl, "imaps") == 0)
- set.ssl_mode = IMAPC_CLIENT_SSL_MODE_IMMEDIATE;
- else if (strcmp(storage->set->imapc_ssl, "starttls") == 0)
- set.ssl_mode = IMAPC_CLIENT_SSL_MODE_STARTTLS;
- else
- set.ssl_mode = IMAPC_CLIENT_SSL_MODE_NONE;
- set.ssl_crypto_device = _storage->set->ssl_crypto_device;
-
- storage->client = imapc_client_init(&set);
p_array_init(&storage->remote_namespaces, _storage->pool, 4);
p_array_init(&storage->untagged_callbacks, _storage->pool, 16);
More information about the dovecot-cvs
mailing list