firewall: catch SIGHUP and SIGPIPE.

Not sure if this will fix anything, but it might stop the problem reported
on some MacOS versions where the firewall doesn't get cleaned up correctly.
This commit is contained in:
Avery Pennarun 2012-01-05 21:16:24 -05:00 committed by Brian May
parent 5a39341d50
commit 39425a03c5

View File

@ -1,6 +1,7 @@
import errno
import socket
import select
import signal
import struct
import compat.ssubprocess as ssubprocess
import ssyslog
@ -565,6 +566,11 @@ def main(port_v6, port_v4, dnsport_v6, dnsport_v4, method, udp, syslog):
sys.stdout.write('READY %s\n' % method)
sys.stdout.flush()
# don't disappear if our controlling terminal or stdout/stderr
# disappears; we still have to clean up.
signal.signal(signal.SIGHUP, signal.SIG_IGN)
signal.signal(signal.SIGPIPE, signal.SIG_IGN)
# ctrl-c shouldn't be passed along to me. When the main sshuttle dies,
# I'll die automatically.
os.setsid()