From c62704c56e9c46214723cda6ca73e4c985f75e4b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 15 Apr 2003 19:58:48 +0300 Subject: [PATCH] Separate PROCESS_TYPE_MAIL into IMAP and POP3. --HG-- branch : HEAD --- src/master/common.h | 3 ++- src/master/login-process.c | 6 +++++- src/master/mail-process.c | 5 +++-- src/master/mail-process.h | 3 ++- src/master/main.c | 4 +++- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/master/common.h b/src/master/common.h index b452db593f..43e745da93 100644 --- a/src/master/common.h +++ b/src/master/common.h @@ -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 diff --git a/src/master/login-process.c b/src/master/login-process.c index 8cd11806be..09dbd6ba93 100644 --- a/src/master/login-process.c +++ b/src/master/login-process.c @@ -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 */ diff --git a/src/master/mail-process.c b/src/master/mail-process.c index 5d987f8489..9a02288701 100644 --- a/src/master/mail-process.c +++ b/src/master/mail-process.c @@ -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; } diff --git a/src/master/mail-process.h b/src/master/mail-process.h index 97f69cfc91..4823695f44 100644 --- a/src/master/mail-process.h +++ b/src/master/mail-process.h @@ -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); diff --git a/src/master/main.c b/src/master/main.c index 6d9aac47a6..7bdc0903b5 100644 --- a/src/master/main.c +++ b/src/master/main.c @@ -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); -- 2.47.3