]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
*-login: Login binaries can now set up their own private settings.
authorTimo Sirainen <tss@iki.fi>
Mon, 12 Oct 2009 16:51:06 +0000 (12:51 -0400)
committerTimo Sirainen <tss@iki.fi>
Mon, 12 Oct 2009 16:51:06 +0000 (12:51 -0400)
--HG--
branch : HEAD

src/imap-login/client.c
src/login-common/common.h
src/login-common/login-settings.c
src/login-common/login-settings.h
src/login-common/main.c
src/pop3-login/client.c

index d36565ebb9211b7659c937341c9145fba06297cd..dcb16291b0beb3fd876a5d7698b3314247aa34c1 100644 (file)
@@ -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)
index 6df3ddc8103cd20c75af02acf5fd38d319ef6485..0dd6fe0152ea5770c8f7765c05c421eb71ec4161 100644 (file)
@@ -21,4 +21,6 @@ extern int anvil_fd;
 
 extern const struct login_settings *global_login_settings;
 
+void login_process_preinit(void);
+
 #endif
index 25285b372ba70f22bb9db03d7d837edc064c80c6..f513585e18b66185325e1a2569dd78d9e45232a6 100644 (file)
@@ -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
+};
+
 /* <settings checks> */
 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;
 
index f58d7cbd3f0dff8640b3f1f5d81183e2a97c85ab..f63f5cb960484a7616ce90d6a7053ac4f22edb58 100644 (file)
@@ -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,
index a2a5e9f2f48a7c70571c7fc504ab73b227b80c63..a4b2fc8952ef3f4db3df7cb9f141b132b7d856c6 100644 (file)
@@ -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);
index d25fa461046bbdff215a88ea441bdb9098029ee1..19d6007d466e7aff1829c60e609e26ec010cc890 100644 (file)
@@ -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);