summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2000-10-03 03:28:46 +0000
committerWarner Losh <imp@FreeBSD.org>2000-10-03 03:28:46 +0000
commited13219d7c1131773744d618ecc929e027153bbd (patch)
treeb99051e17da7bca4aabdc986f508785b1c730898
parentWhitespace changes. (diff)
Kludge rearming the signal for SIGCHLD so that we can harvest the
zombies on the system. Without this change, the socks5 daemon would work great for a short period of time, then hang because no more children could be created. It appears from debugging that this is because gravedigger was only called once. I reestablish the signal handler in gravedigger to force SIGCHLD to be unmasked. A more proper fix might be to fix Signal to have multi-shot signals, or to see what might be broken with the signal masks. Since I'm in a hurry and this port's daemon is broken without this, I commit this kludge knowing that it will live approximately forever, less three days.
-rw-r--r--net/socks5/files/patch-as10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/socks5/files/patch-as b/net/socks5/files/patch-as
new file mode 100644
index 000000000000..57df76f1c5a7
--- /dev/null
+++ b/net/socks5/files/patch-as
@@ -0,0 +1,10 @@
+--- server/socket.c.orig Mon Oct 2 21:18:48 2000
++++ server/socket.c Mon Oct 2 21:18:55 2000
+@@ -66,6 +66,7 @@
+ if (errno == EINTR) continue;
+ case 0:
+ SigUnblock(set);
++ Signal(SIGCHLD, gravedigger);
+ errno = oerrno;
+ return;
+ default: