changeset 19706:3a4866198d8f

imap, pop3, imap-urlauth: Added -a <auth-master socket path> parameter
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 03 Feb 2016 14:05:07 +0200
parents 9fb16176c200
children 55397852db0a
files src/imap-urlauth/imap-urlauth.c src/imap/main.c src/pop3/main.c
diffstat 3 files changed, 25 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap-urlauth/imap-urlauth.c	Wed Feb 03 14:00:16 2016 +0200
+++ b/src/imap-urlauth/imap-urlauth.c	Wed Feb 03 14:05:07 2016 +0200
@@ -186,6 +186,8 @@
 	void **sets;
 	enum master_service_flags service_flags = 0;
 	const char *error = NULL, *username = NULL;
+	const char *auth_socket_path = "auth-master";
+	int c;
 
 	memset(&login_set, 0, sizeof(login_set));
 	login_set.postlogin_timeout_secs = MASTER_POSTLOGIN_TIMEOUT_DEFAULT;
@@ -205,9 +207,16 @@
 	}
 
 	master_service = master_service_init("imap-urlauth", service_flags,
-					     &argc, &argv, "");
-	if (master_getopt(master_service) > 0)
-		return FATAL_DEFAULT;
+					     &argc, &argv, "a:");
+	while ((c = master_getopt(master_service)) > 0) {
+		switch (c) {
+		case 'a':
+			auth_socket_path = optarg;
+			break;
+		default:
+			return FATAL_DEFAULT;
+		}
+	}
 	master_service_init_log(master_service, "imap-urlauth: ");
 
 	memset(&input, 0, sizeof(input));
@@ -224,7 +233,7 @@
 	if (imap_urlauth_settings->verbose_proctitle)
 		verbose_proctitle = TRUE;
 
-	login_set.auth_socket_path = t_abspath("auth-master");
+	login_set.auth_socket_path = t_abspath(auth_socket_path);
 	login_set.callback = login_client_connected;
 	login_set.failure_callback = login_client_failed;
 
--- a/src/imap/main.c	Wed Feb 03 14:00:16 2016 +0200
+++ b/src/imap/main.c	Wed Feb 03 14:05:07 2016 +0200
@@ -368,7 +368,7 @@
 	enum master_service_flags service_flags = 0;
 	enum mail_storage_service_flags storage_service_flags =
 		MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE;
-	const char *username = NULL;
+	const char *username = NULL, *auth_socket_path = "auth-master";
 	int c;
 
 	memset(&login_set, 0, sizeof(login_set));
@@ -392,9 +392,12 @@
 	}
 
 	master_service = master_service_init("imap", service_flags,
-					     &argc, &argv, "Dt:u:");
+					     &argc, &argv, "a:Dt:u:");
 	while ((c = master_getopt(master_service)) > 0) {
 		switch (c) {
+		case 'a':
+			auth_socket_path = optarg;
+			break;
 		case 't':
 			if (str_to_uint(optarg, &login_set.postlogin_timeout_secs) < 0 ||
 			    login_set.postlogin_timeout_secs == 0)
@@ -435,7 +438,7 @@
 			main_stdio_run(username);
 		} T_END;
 	} else T_BEGIN {
-		login_set.auth_socket_path = t_abspath("auth-master");
+		login_set.auth_socket_path = t_abspath(auth_socket_path);
 		if (argv[optind] != NULL) {
 			login_set.postlogin_socket_path =
 				t_abspath(argv[optind]);
--- a/src/pop3/main.c	Wed Feb 03 14:00:16 2016 +0200
+++ b/src/pop3/main.c	Wed Feb 03 14:05:07 2016 +0200
@@ -215,7 +215,7 @@
 	enum master_service_flags service_flags = 0;
 	enum mail_storage_service_flags storage_service_flags =
 		MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE;
-	const char *username = NULL;
+	const char *username = NULL, *auth_socket_path = "auth-master";
 	int c;
 
 	memset(&login_set, 0, sizeof(login_set));
@@ -238,9 +238,12 @@
 	}
 
 	master_service = master_service_init("pop3", service_flags,
-					     &argc, &argv, "t:u:");
+					     &argc, &argv, "a:t:u:");
 	while ((c = master_getopt(master_service)) > 0) {
 		switch (c) {
+		case 'a':
+			auth_socket_path = optarg;
+			break;
 		case 't':
 			if (str_to_uint(optarg, &login_set.postlogin_timeout_secs) < 0 ||
 			    login_set.postlogin_timeout_secs == 0)
@@ -256,7 +259,7 @@
 		}
 	}
 
-	login_set.auth_socket_path = t_abspath("auth-master");
+	login_set.auth_socket_path = t_abspath(auth_socket_path);
 	if (argv[optind] != NULL)
 		login_set.postlogin_socket_path = t_abspath(argv[optind]);
 	login_set.callback = login_client_connected;