summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/smtpd/lka.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.sbin/smtpd/lka.c b/usr.sbin/smtpd/lka.c
index 1e1bae88ee9..54c710e487d 100644
--- a/usr.sbin/smtpd/lka.c
+++ b/usr.sbin/smtpd/lka.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lka.c,v 1.134 2012/08/18 18:18:23 gilles Exp $ */
+/* $OpenBSD: lka.c,v 1.135 2012/08/25 22:52:19 eric Exp $ */
/*
* Copyright (c) 2008 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -197,6 +197,11 @@ lka_imsg(struct imsgev *iev, struct imsg *imsg)
purge_config(PURGE_MAPS);
env->sc_rules = env->sc_rules_reload;
env->sc_maps = env->sc_maps_reload;
+
+ /* start fulfilling requests */
+ event_add(&env->sc_ievs[PROC_MTA]->ev, NULL);
+ event_add(&env->sc_ievs[PROC_MFA]->ev, NULL);
+ event_add(&env->sc_ievs[PROC_SMTP]->ev, NULL);
return;
case IMSG_CTL_VERBOSE:
@@ -303,6 +308,11 @@ lka(void)
config_pipes(peers, nitems(peers));
config_peers(peers, nitems(peers));
+ /* ignore them until we get our config */
+ event_del(&env->sc_ievs[PROC_MTA]->ev);
+ event_del(&env->sc_ievs[PROC_MFA]->ev);
+ event_del(&env->sc_ievs[PROC_SMTP]->ev);
+
if (event_dispatch() < 0)
fatal("event_dispatch");
lka_shutdown();