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