This icons are using scale independent PDF template images which make menu item
icon look great on both Yosemite light & dark theme. Also adding new flatter
and higher resolution app icon.
Importing everything (*) from AppKit takes a while, since we got 3 scripts
doing that, startup could take up to few seconds. This change makes script
import only what they need, improving startup time to fraction of second.
There were still a few conditions under some OSes that would cause
firewall.py to terminate without cleaning up the firewall settings. 'pkill
sshuttle' was one of them. Ignore a couple more signals to further ensure a
correct cleanup.
(This only affects sshuttle --firewall, which is a subprocess of the main
sshuttle process. The firewall is supposed to exit automatically whenever
the client exits, and so far that part seems to work reliably.)
If the subprocess was trying to write to its stdout/stderr, its process
would never actually finish because it was blocked waiting for us to read
it, but we were blocked on waitpid(). Instead, use waitpid(WNOHANG) and
continually read from the subprocess (which should be a blocking operation)
until it exits.