From 179458c3d438289703f58a9ef37880e297000145 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 15 Apr 2009 01:44:45 -0400 Subject: [PATCH] Make prefork server respond properly to parent exit. --- src/prefork.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/prefork.py b/src/prefork.py index 65b259e..0d98f79 100644 --- a/src/prefork.py +++ b/src/prefork.py @@ -35,7 +35,15 @@ def _send_packet(sock, data): def _recv_packet(sock): from struct import calcsize, unpack - size, = unpack("I", sock.recv(calcsize("I"))) + size_bytes_size = calcsize("I") + size_bytes = sock.recv(size_bytes_size) + + if len(size_bytes) < size_bytes_size: + from warnings import warn + warn("Prefork server exiting upon apparent death of parent") + raise SystemExit + + size, = unpack("I", size_bytes) packet = "" while len(packet) < size: -- GitLab