dovecot-1.0: Login processes started by inetd aren't ours, don't...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Sep 30 18:03:22 EEST 2007
details: http://hg.dovecot.org/dovecot-1.0/rev/8d6433652a33
changeset: 5420:8d6433652a33
user: Timo Sirainen <tss at iki.fi>
date: Sun Sep 30 18:03:17 2007 +0300
description:
Login processes started by inetd aren't ours, don't treat them as such.
diffstat:
1 file changed, 7 insertions(+), 5 deletions(-)
src/master/login-process.c | 12 +++++++-----
diffs (49 lines):
diff -r f85adea35b74 -r 8d6433652a33 src/master/login-process.c
--- a/src/master/login-process.c Mon Sep 24 11:15:48 2007 +0300
+++ b/src/master/login-process.c Sun Sep 30 18:03:17 2007 +0300
@@ -433,7 +433,8 @@ static void login_process_input(void *co
}
static struct login_process *
-login_process_new(struct login_group *group, pid_t pid, int fd)
+login_process_new(struct login_group *group, pid_t pid, int fd,
+ bool inetd_child)
{
struct login_process *p;
@@ -444,12 +445,14 @@ login_process_new(struct login_group *gr
p->refcount = 2; /* once for fd close, another for process exit */
p->pid = pid;
p->fd = fd;
+ p->inetd_child = inetd_child;
p->io = io_add(fd, IO_READ, login_process_input, p);
p->output = o_stream_create_file(fd, default_pool,
sizeof(struct master_login_reply)*10,
FALSE);
- PID_ADD_PROCESS_TYPE(pid, PROCESS_TYPE_LOGIN);
+ if (!inetd_child)
+ PID_ADD_PROCESS_TYPE(pid, PROCESS_TYPE_LOGIN);
hash_insert(processes, POINTER_CAST(pid), p);
p->state = LOGIN_STATE_LISTENING;
@@ -623,7 +626,7 @@ static pid_t create_login_process(struct
net_set_nonblock(fd[0], TRUE);
fd_close_on_exec(fd[0], TRUE);
- (void)login_process_new(group, pid, fd[0]);
+ (void)login_process_new(group, pid, fd[0], FALSE);
(void)close(fd[1]);
(void)close(log_fd);
return pid;
@@ -876,9 +879,8 @@ static void inetd_login_accept(void *con
net_set_nonblock(fd, TRUE);
fd_close_on_exec(fd, TRUE);
- p = login_process_new(NULL, ++login_pid_counter, fd);
+ p = login_process_new(NULL, ++login_pid_counter, fd, TRUE);
p->initialized = TRUE;
- p->inetd_child = TRUE;
}
}
More information about the dovecot-cvs
mailing list