The smtpd processes are not expected to ever leave their event loop.
So stop pretending that the *_shutdown() functions could ever be called
in this context, and just fatal() if event_dispatch() returns.
Eric.
Index: ca.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/ca.c,v
retrieving revision 1.23
diff -u -p -r1.23 ca.c
--- ca.c 1 Sep 2016 10:54:25 -0000 1.23
+++ ca.c 4 Sep 2016 14:37:31 -0000
@@ -127,9 +127,8 @@ ca(void)
if (pledge("stdio", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("event_dispatch");
- ca_shutdown();
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}
Index: control.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/control.c,v
retrieving revision 1.115
diff -u -p -r1.115 control.c
--- control.c 4 Sep 2016 09:33:49 -0000 1.115
+++ control.c 4 Sep 2016 14:37:31 -0000
@@ -296,9 +296,8 @@ control(void)
if (pledge("stdio unix recvfd sendfd", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("event_dispatch");
- control_shutdown();
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}
Index: lka.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/lka.c,v
retrieving revision 1.195
diff -u -p -r1.195 lka.c
--- lka.c 3 Sep 2016 15:54:14 -0000 1.195
+++ lka.c 4 Sep 2016 14:37:31 -0000
@@ -448,9 +448,8 @@ lka(void)
if (pledge("stdio rpath inet dns getpw recvfd proc exec", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("event_dispatch");
- lka_shutdown();
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}
Index: pony.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/pony.c,v
retrieving revision 1.14
diff -u -p -r1.14 pony.c
--- pony.c 1 Sep 2016 10:54:25 -0000 1.14
+++ pony.c 4 Sep 2016 14:37:31 -0000
@@ -209,9 +209,8 @@ pony(void)
if (pledge("stdio inet unix recvfd sendfd", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("event_dispatch");
- pony_shutdown();
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}
Index: queue.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/queue.c,v
retrieving revision 1.180
diff -u -p -r1.180 queue.c
--- queue.c 1 Sep 2016 10:54:25 -0000 1.180
+++ queue.c 4 Sep 2016 14:37:31 -0000
@@ -720,9 +720,8 @@ queue(void)
if (pledge("stdio rpath wpath cpath flock recvfd sendfd", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("event_dispatch");
- queue_shutdown();
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}
Index: scheduler.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/scheduler.c,v
retrieving revision 1.53
diff -u -p -r1.53 scheduler.c
--- scheduler.c 1 Sep 2016 10:54:25 -0000 1.53
+++ scheduler.c 4 Sep 2016 14:37:31 -0000
@@ -489,9 +489,8 @@ scheduler(void)
if (pledge("stdio", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("event_dispatch");
- scheduler_shutdown();
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}
Index: smtpd.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd.c,v
retrieving revision 1.283
diff -u -p -r1.283 smtpd.c
--- smtpd.c 4 Sep 2016 09:33:49 -0000 1.283
+++ smtpd.c 4 Sep 2016 14:37:31 -0000
@@ -1050,8 +1050,8 @@ smtpd(void) {
"getpw sendfd proc exec id inet unix", NULL) == -1)
err(1, "pledge");
- if (event_dispatch() < 0)
- fatal("smtpd: event_dispatch");
+ event_dispatch();
+ fatalx("exited event loop");
return (0);
}