dovecot-2.0: login: Keep binary-specific defaults in a struct.
dovecot at dovecot.org
dovecot at dovecot.org
Wed Apr 14 19:27:32 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/57e53ecebbd3
changeset: 11156:57e53ecebbd3
user: Timo Sirainen <tss at iki.fi>
date: Wed Apr 14 19:27:26 2010 +0300
description:
login: Keep binary-specific defaults in a struct.
diffstat:
src/imap-login/client.c | 9 ++++++---
src/login-common/client-common-auth.c | 10 ++++++----
src/login-common/client-common.c | 2 +-
src/login-common/login-common.h | 14 ++++++++++++--
src/login-common/login-settings.c | 4 ++--
src/login-common/main.c | 12 ++++++------
src/login-common/sasl-server.c | 2 +-
src/pop3-login/client.c | 9 ++++++---
8 files changed, 40 insertions(+), 22 deletions(-)
diffs (172 lines):
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/imap-login/client.c
--- a/src/imap-login/client.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/imap-login/client.c Wed Apr 14 19:27:26 2010 +0300
@@ -28,9 +28,12 @@
/* Disconnect client when it sends too many bad commands */
#define CLIENT_MAX_BAD_COMMANDS 10
-const char *login_protocol = "imap";
-const char *login_process_name = "imap-login";
-unsigned int login_default_port = 143, login_default_ssl_port = 993;
+const struct login_binary login_binary = {
+ .protocol = "imap",
+ .process_name = "imap-login",
+ .default_port = 143,
+ .default_ssl_port = 993
+};
void login_process_preinit(void)
{
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/login-common/client-common-auth.c
--- a/src/login-common/client-common-auth.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/login-common/client-common-auth.c Wed Apr 14 19:27:26 2010 +0300
@@ -92,8 +92,10 @@
else if (strcmp(key, "ssl") == 0) {
if (strcmp(value, "yes") == 0) {
reply_r->ssl_flags |= PROXY_SSL_FLAG_YES;
- if (reply_r->port == 0)
- reply_r->port = login_default_ssl_port;
+ if (reply_r->port == 0) {
+ reply_r->port =
+ login_binary.default_ssl_port;
+ }
} else if (strcmp(value, "any-cert") == 0) {
reply_r->ssl_flags |= PROXY_SSL_FLAG_YES |
PROXY_SSL_FLAG_ANY_CERT;
@@ -106,7 +108,7 @@
i_debug("Ignoring unknown passdb extra field: %s", key);
}
if (reply_r->port == 0)
- reply_r->port = login_default_port;
+ reply_r->port = login_binary.default_port;
if (reply_r->destuser == NULL)
reply_r->destuser = client->virtual_user;
@@ -472,7 +474,7 @@
client_ref(client);
client->auth_initializing = TRUE;
- sasl_server_auth_begin(client, login_protocol, mech_name,
+ sasl_server_auth_begin(client, login_binary.protocol, mech_name,
init_resp, sasl_callback);
client->auth_initializing = FALSE;
if (!client->authenticating)
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/login-common/client-common.c
--- a/src/login-common/client-common.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/login-common/client-common.c Wed Apr 14 19:27:26 2010 +0300
@@ -369,7 +369,7 @@
for (i = 0; i < 3; i++)
tab[i].value = str_sanitize(tab[i].value, 80);
}
- tab[3].value = login_protocol;
+ tab[3].value = login_binary.protocol;
tab[4].value = getenv("HOME");
tab[5].value = net_ip2addr(&client->local_ip);
tab[6].value = net_ip2addr(&client->ip);
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/login-common/login-common.h
--- a/src/login-common/login-common.h Wed Apr 14 19:19:27 2010 +0300
+++ b/src/login-common/login-common.h Wed Apr 14 19:27:26 2010 +0300
@@ -12,9 +12,19 @@
#define AUTH_PLAINTEXT_DISABLED_MSG \
"Plaintext authentication disallowed on non-secure (SSL/TLS) connections."
-extern const char *login_protocol, *login_process_name;
-extern unsigned int login_default_port, login_default_ssl_port;
+struct login_binary {
+ /* e.g. imap, pop3 */
+ const char *protocol;
+ /* e.g. imap-login, pop3-login */
+ const char *process_name;
+ /* e.g. 143, 110 */
+ unsigned int default_port;
+ /* e.g. 993, 995. if there is no ssl port, use 0. */
+ unsigned int default_ssl_port;
+};
+
+extern const struct login_binary login_binary;
extern struct auth_client *auth_client;
extern struct master_auth *master_auth;
extern bool closing_down;
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/login-common/login-settings.c
--- a/src/login-common/login-settings.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/login-common/login-settings.c Wed Apr 14 19:27:26 2010 +0300
@@ -192,8 +192,8 @@
memset(&input, 0, sizeof(input));
input.roots = login_set_roots;
- input.module = login_process_name;
- input.service = login_protocol;
+ input.module = login_binary.process_name;
+ input.service = login_binary.protocol;
input.local_host = local_host;
if (local_ip != NULL)
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/login-common/main.c
--- a/src/login-common/main.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/login-common/main.c Wed Apr 14 19:27:26 2010 +0300
@@ -182,8 +182,8 @@
return;
}
lookup->access = access_lookup(*lookup->next_socket, lookup->conn.fd,
- login_protocol, login_access_callback,
- lookup);
+ login_binary.protocol,
+ login_access_callback, lookup);
if (lookup->access == NULL)
login_access_lookup_free(lookup);
}
@@ -299,7 +299,7 @@
auth_client = auth_client_init("auth", (unsigned int)getpid(), FALSE);
auth_client_set_connect_notify(auth_client, auth_connect_notify, NULL);
- master_auth = master_auth_init(master_service, login_protocol);
+ master_auth = master_auth_init(master_service, login_binary.protocol);
clients_init();
login_proxy_init();
@@ -330,10 +330,10 @@
bool allow_core_dumps = FALSE;
int c;
- master_service = master_service_init(login_process_name, service_flags,
- &argc, &argv, "DS");
+ master_service = master_service_init(login_binary.process_name,
+ service_flags, &argc, &argv, "DS");
master_service_init_log(master_service, t_strconcat(
- login_process_name, ": ", NULL));
+ login_binary.process_name, ": ", NULL));
while ((c = master_getopt(master_service)) > 0) {
switch (c) {
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/login-common/sasl-server.c
--- a/src/login-common/sasl-server.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/login-common/sasl-server.c Wed Apr 14 19:27:26 2010 +0300
@@ -183,7 +183,7 @@
return;
}
- query = t_strconcat("LOOKUP\t", login_protocol, "/",
+ query = t_strconcat("LOOKUP\t", login_binary.protocol, "/",
net_ip2addr(&client->ip), "/",
str_tabescape(client->virtual_user), NULL);
anvil_client_query(anvil, query, anvil_lookup_callback, req);
diff -r 5f3edac6b3bf -r 57e53ecebbd3 src/pop3-login/client.c
--- a/src/pop3-login/client.c Wed Apr 14 19:19:27 2010 +0300
+++ b/src/pop3-login/client.c Wed Apr 14 19:27:26 2010 +0300
@@ -22,9 +22,12 @@
/* Disconnect client when it sends too many bad commands */
#define CLIENT_MAX_BAD_COMMANDS 10
-const char *login_protocol = "pop3";
-const char *login_process_name = "pop3-login";
-unsigned int login_default_port = 110, login_default_ssl_port = 995;
+const struct login_binary login_binary = {
+ .protocol = "pop3",
+ .process_name = "pop3-login",
+ .default_port = 110,
+ .default_ssl_port = 995
+};
void login_process_preinit(void)
{
More information about the dovecot-cvs
mailing list