Commit Diff


commit - dbe262a45d6df9aa04357580a653e30fd0019a14
commit + 1fbac5ba7c6c04d59d1c1199cd9f57638967a504
blob - 5ff75159db1183a7bc7f6fcdf58020329571049d
blob + 47eed0b7d5fb40ad6b58a88c5cfded79bfea8444
--- ex.c
+++ ex.c
@@ -416,8 +416,13 @@ handle_fork_req(int fd, short ev, void *data)
 	    || !recv_string(fd, &chash)
 	    || !recv_time(fd, &notbefore)
 	    || !recv_time(fd, &notafter)
-	    || !recv_vhost(fd, &vhost))
-		fatal("failure in handling fork request");
+	    || !recv_vhost(fd, &vhost)) {
+		if (errno == EINTR) {
+			event_loopbreak();
+			return;
+		}
+		fatal("failure in handling fork request: %s", strerror(errno));
+	}
 
 	d = launch_cgi(&iri, spath, relpath, addr, ruser, cissuer, chash,
 	    notbefore, notafter, vhost);