]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Separate PROCESS_TYPE_MAIL into IMAP and POP3.
authorTimo Sirainen <tss@iki.fi>
Tue, 15 Apr 2003 16:58:48 +0000 (19:58 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 15 Apr 2003 16:58:48 +0000 (19:58 +0300)
--HG--
branch : HEAD

src/master/common.h
src/master/login-process.c
src/master/mail-process.c
src/master/mail-process.h
src/master/main.c

index b452db593f22204927f91a81dcfa7891c20a8f57..43e745da932c303690e314b14ab9addd6af9822f 100644 (file)
@@ -13,7 +13,8 @@ enum {
        PROCESS_TYPE_UNKNOWN,
        PROCESS_TYPE_AUTH,
        PROCESS_TYPE_LOGIN,
-       PROCESS_TYPE_MAIL,
+       PROCESS_TYPE_IMAP,
+       PROCESS_TYPE_POP3,
        PROCESS_TYPE_SSL_PARAM,
 
        PROCESS_TYPE_MAX
index 8cd11806be4c3ca203911c1ea266eaa6d3b8a3b0..09dbd6ba93378e17fc6e437cfdec72e53a6a2194 100644 (file)
@@ -31,6 +31,7 @@ struct login_group {
 
        const char *executable;
        unsigned int process_size;
+       int process_type;
        int *listen_fd, *ssl_listen_fd;
 };
 
@@ -84,11 +85,13 @@ static void login_group_create(struct login_settings *login_set)
        if (strcmp(login_set->name, "imap") == 0) {
                group->executable = set->imap_executable;
                group->process_size = set->imap_process_size;
+               group->process_type = PROCESS_TYPE_IMAP;
                group->listen_fd = &mail_fd[FD_IMAP];
                group->ssl_listen_fd = &mail_fd[FD_IMAPS];
        } else if (strcmp(login_set->name, "pop3") == 0) {
                group->executable = set->pop3_executable;
                group->process_size = set->pop3_process_size;
+               group->process_type = PROCESS_TYPE_POP3;
                group->listen_fd = &mail_fd[FD_POP3];
                group->ssl_listen_fd = &mail_fd[FD_POP3S];
        } else
@@ -118,7 +121,8 @@ void auth_master_callback(struct auth_master_reply *reply,
                        create_mail_process(request->fd, &request->ip,
                                            group->executable,
                                            group->process_size,
-                                           reply, (const char *) data);
+                                           group->process_type, reply,
+                                           (const char *) data);
        }
 
        /* reply to login */
index 5d987f84892459210da7fb3662c49a43708c5b40..9a02288701cda0959946c75bd6f1a1817f1593e3 100644 (file)
@@ -101,7 +101,8 @@ static const char *expand_mail_env(const char *env, const char *user,
 
 int create_mail_process(int socket, struct ip_addr *ip,
                        const char *executable, unsigned int process_size,
-                       struct auth_master_reply *reply, const char *data)
+                       int process_type, struct auth_master_reply *reply,
+                       const char *data)
 {
        static const char *argv[] = { NULL, NULL, NULL };
        const char *host, *mail;
@@ -129,7 +130,7 @@ int create_mail_process(int socket, struct ip_addr *ip,
        if (pid != 0) {
                /* master */
                mail_process_count++;
-               PID_ADD_PROCESS_TYPE(pid, PROCESS_TYPE_MAIL);
+               PID_ADD_PROCESS_TYPE(pid, process_type);
                return TRUE;
        }
 
index 97f69cfc91e9a1ff2090f8259b627f8d9aa3f3e4..4823695f44df2673d4cab21e39ea190fab8c7827 100644 (file)
@@ -5,7 +5,8 @@ struct auth_master_reply;
 
 int create_mail_process(int socket, struct ip_addr *ip,
                        const char *executable, unsigned int process_size,
-                       struct auth_master_reply *reply, const char *data);
+                       int process_type, struct auth_master_reply *reply,
+                       const char *data);
 
 void mail_process_destroyed(pid_t pid);
 
index 6d9aac47a65ffef0af8ab93726f58c4c2865a64b..7bdc0903b5e7bb39a288fccb67b0668d553596e0 100644 (file)
@@ -25,6 +25,7 @@ const char *process_names[PROCESS_TYPE_MAX] = {
        "auth",
        "login",
        "imap",
+       "pop3",
        "ssl-param"
 };
 
@@ -122,7 +123,8 @@ static void timeout_handler(void *context __attr_unused__)
                process_type = PID_GET_PROCESS_TYPE(pid);
                PID_REMOVE_PROCESS_TYPE(pid);
 
-               if (process_type == PROCESS_TYPE_MAIL)
+               if (process_type == PROCESS_TYPE_IMAP ||
+                   process_type == PROCESS_TYPE_POP3)
                        mail_process_destroyed(pid);
                if (process_type == PROCESS_TYPE_SSL_PARAM)
                        ssl_parameter_process_destroyed(pid);