summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacek Masiulaniec <jacekm@cvs.openbsd.org>2009-02-16 12:10:26 +0000
committerJacek Masiulaniec <jacekm@cvs.openbsd.org>2009-02-16 12:10:26 +0000
commit8e6e68ac3a13d2ff7919488b25d7b01d3b19828b (patch)
treec92f99355ade96408ba3564f89809f09daa2da56
parent20f5aabbf6ebb1e5c80a5bc6b07158984f707749 (diff)
Process which connects with a pool of cloned processes needs to
keep open all pipes going in their direction; ok pyr@
-rw-r--r--usr.sbin/smtpd/config.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.sbin/smtpd/config.c b/usr.sbin/smtpd/config.c
index 19b1ba9bbab..1abb0f70dcc 100644
--- a/usr.sbin/smtpd/config.c
+++ b/usr.sbin/smtpd/config.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: config.c,v 1.4 2009/02/15 10:32:23 jacekm Exp $ */
+/* $OpenBSD: config.c,v 1.5 2009/02/16 12:10:25 jacekm Exp $ */
/*
* Copyright (c) 2008 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -172,6 +172,10 @@ config_pipes(struct smtpd *env, struct peer *p, u_int peercount)
is_peer(p, j, peercount) &&
count == env->sc_instance)
continue;
+ if (i == smtpd_process &&
+ is_peer(p, j, peercount) &&
+ env->sc_instances[i] == 1)
+ continue;
close(env->sc_pipes[i][j][count]);
env->sc_pipes[i][j][count] = -1;
}