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