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
parent 89e914e9d1
commit e2c682084c
2 changed files with 6 additions and 1 deletions

View File

@ -1,4 +1,4 @@
import re, errno, socket, select, struct import re, errno, socket, select, signal, struct
import compat.ssubprocess as ssubprocess import compat.ssubprocess as ssubprocess
import helpers, ssyslog import helpers, ssyslog
from helpers import * from helpers import *
@ -398,6 +398,11 @@ def main(port, dnsport, syslog):
sys.stdout.write('READY\n') sys.stdout.write('READY\n')
sys.stdout.flush() 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, # ctrl-c shouldn't be passed along to me. When the main sshuttle dies,
# I'll die automatically. # I'll die automatically.
os.setsid() os.setsid()

0
main.py Normal file → Executable file
View File