aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. McEnroe <june@causal.agency>2019-12-20 16:26:01 -0500
committerC. McEnroe <june@causal.agency>2019-12-20 16:26:01 -0500
commit5707b15920a1ce57f01db0d592487d833218be9d (patch)
treef289c76d87d90dfc00f11d35b05cbeab4c8ed48a
parentAdd CONTRIBUTING section to README (diff)
downloadpounce-5707b15920a1ce57f01db0d592487d833218be9d.tar.gz
pounce-5707b15920a1ce57f01db0d592487d833218be9d.zip
Exit when server gets POLLHUP
This should maybe gracefully inform clients of what happened, but for now this is much better than the infinite poll loop that happened previously.
-rw-r--r--bounce.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/bounce.c b/bounce.c
index 2b1413d..8dc2850 100644
--- a/bounce.c
+++ b/bounce.c
@@ -413,7 +413,10 @@ int main(int argc, char *argv[]) {
if (!revents) continue;
if (event.fds[i].fd == server) {
- serverRecv();
+ if (revents & POLLIN) serverRecv();
+ if (revents & (POLLHUP | POLLERR)) {
+ errx(EX_UNAVAILABLE, "server closed connection");
+ }
continue;
}