From: Timo Sirainen Date: Mon, 12 Oct 2009 16:51:06 +0000 (-0400) Subject: *-login: Login binaries can now set up their own private settings. X-Git-Tag: 2.0.alpha1~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ceee001c11865a88a311c50c4430867b2d32ce6;p=thirdparty%2Fdovecot%2Fcore.git *-login: Login binaries can now set up their own private settings. --HG-- branch : HEAD --- diff --git a/src/imap-login/client.c b/src/imap-login/client.c index d36565ebb9..dcb16291b0 100644 --- a/src/imap-login/client.c +++ b/src/imap-login/client.c @@ -32,6 +32,10 @@ const char *login_protocol = "imap"; const char *login_process_name = "imap-login"; unsigned int login_default_port = 143; +void login_process_preinit(void) +{ +} + /* Skip incoming data until newline is found, returns TRUE if newline was found. */ bool client_skip_line(struct imap_client *client) diff --git a/src/login-common/common.h b/src/login-common/common.h index 6df3ddc810..0dd6fe0152 100644 --- a/src/login-common/common.h +++ b/src/login-common/common.h @@ -21,4 +21,6 @@ extern int anvil_fd; extern const struct login_settings *global_login_settings; +void login_process_preinit(void); + #endif diff --git a/src/login-common/login-settings.c b/src/login-common/login-settings.c index 25285b372b..f513585e18 100644 --- a/src/login-common/login-settings.c +++ b/src/login-common/login-settings.c @@ -83,6 +83,11 @@ struct setting_parser_info login_setting_parser_info = { MEMBER(check_func) login_settings_check }; +const struct setting_parser_info *login_set_roots[] = { + &login_setting_parser_info, + NULL +}; + /* */ static int ssl_settings_check(void *_set ATTR_UNUSED, const char **error_r) { @@ -152,17 +157,13 @@ login_settings_read(struct master_service *service, pool_t pool, const struct ip_addr *local_ip, const struct ip_addr *remote_ip) { - static const struct setting_parser_info *set_roots[] = { - &login_setting_parser_info, - NULL - }; struct master_service_settings_input input; const char *error; void **sets; struct login_settings *set; memset(&input, 0, sizeof(input)); - input.roots = set_roots; + input.roots = login_set_roots; input.module = "login"; input.service = login_protocol; diff --git a/src/login-common/login-settings.h b/src/login-common/login-settings.h index f58d7cbd3f..f63f5cb960 100644 --- a/src/login-common/login-settings.h +++ b/src/login-common/login-settings.h @@ -32,6 +32,8 @@ struct login_settings { char *const *log_format_elements_split; }; +extern const struct setting_parser_info *login_set_roots[]; + struct login_settings * login_settings_read(struct master_service *service, pool_t pool, const struct ip_addr *local_ip, diff --git a/src/login-common/main.c b/src/login-common/main.c index a2a5e9f2f4..a4b2fc8952 100644 --- a/src/login-common/main.c +++ b/src/login-common/main.c @@ -199,6 +199,7 @@ int main(int argc, char *argv[], char *envp[]) master_fd = master_connect(t_strcut(login_process_name, '-')); } #endif + login_process_preinit(); process_title_init(argv, envp); set_pool = pool_alloconly_create("global login settings", 4096); diff --git a/src/pop3-login/client.c b/src/pop3-login/client.c index d25fa46104..19d6007d46 100644 --- a/src/pop3-login/client.c +++ b/src/pop3-login/client.c @@ -24,6 +24,10 @@ const char *login_protocol = "pop3"; const char *login_process_name = "pop3-login"; unsigned int login_default_port = 110; +void login_process_preinit(void) +{ +} + static bool cmd_stls(struct pop3_client *client) { client_cmd_starttls(&client->common);