dovecot-2.1-pigeonhole: managesieve: Added -t parameter to speci...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Fri Jan 20 23:27:00 EET 2012


details:   http://hg.rename-it.nl/dovecot-2.1-pigeonhole/rev/66c9a4a82428
changeset: 1595:66c9a4a82428
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Fri Jan 20 22:26:53 2012 +0100
description:
managesieve: Added -t parameter to specify post-login script timeout (Dovecot change).

diffstat:

 src/managesieve/main.c |  27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diffs (64 lines):

diff -r 523eae0118b1 -r 66c9a4a82428 src/managesieve/main.c
--- a/src/managesieve/main.c	Thu Jan 12 18:43:13 2012 +0100
+++ b/src/managesieve/main.c	Fri Jan 20 22:26:53 2012 +0100
@@ -225,11 +225,15 @@
 		&managesieve_setting_parser_info,
 		NULL
 	};
+	struct master_login_settings login_set;
 	enum master_service_flags service_flags = 0;
 	enum mail_storage_service_flags storage_service_flags = 0;
-	const char *postlogin_socket_path, *username = NULL;
+	const char *username = NULL;
 	int c;
 
+	memset(&login_set, 0, sizeof(login_set));
+	login_set.postlogin_timeout_secs = MASTER_POSTLOGIN_TIMEOUT_DEFAULT;
+
 	if (IS_STANDALONE() && getuid() == 0 &&
 	    net_getpeername(1, NULL, NULL) == 0) {
 		printf("NO \"managesieve binary must not be started from "
@@ -247,9 +251,14 @@
 	}
 
 	master_service = master_service_init("managesieve", service_flags,
-					     &argc, &argv, "u:");
+					     &argc, &argv, "t:u:");
 	while ((c = master_getopt(master_service)) > 0) {
 		switch (c) {
+		case 't':
+			if (str_to_uint(optarg, &login_set.postlogin_timeout_secs) < 0 ||
+			    login_set.postlogin_timeout_secs == 0)
+				i_fatal("Invalid -t parameter: %s", optarg);
+			break;
 		case 'u':
 			storage_service_flags |=
 				MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP;
@@ -259,8 +268,12 @@
 			return FATAL_DEFAULT;
 		}
 	}
-	postlogin_socket_path = argv[optind] == NULL ? NULL :
-		t_abspath(argv[optind]);
+
+	login_set.auth_socket_path = t_abspath("auth-master");
+	if (argv[optind] != NULL)
+		login_set.postlogin_socket_path = t_abspath(argv[optind]);
+	login_set.callback = login_client_connected;
+	login_set.failure_callback = login_client_failed;
 
 	master_service_init_finish(master_service);
 	master_service_set_die_callback(master_service, managesieve_die);
@@ -287,11 +300,7 @@
 			main_stdio_run(username);
 		} T_END;
 	} else {
-		master_login = master_login_init(master_service,
-						 t_abspath("auth-master"),
-						 postlogin_socket_path,
-						 login_client_connected,
-						 login_client_failed);
+		master_login = master_login_init(master_service, &login_set);
 		io_loop_set_running(current_ioloop);
 	}
 


More information about the dovecot-cvs mailing list