diff options
author | Maximilian Hils <git@maximilianhils.com> | 2015-11-04 21:32:12 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2015-11-04 21:32:12 +0100 |
commit | fb463f50ed6c1431b29d77a8bf239fb25dd2b6e9 (patch) | |
tree | 27d4cece2fe37de6b20dfae38f8b2d9c789bbbbf /libmproxy/platform/osx.py | |
parent | c62abd67d25ce190cb614320d08a87b1e6fa5148 (diff) | |
parent | 9398d5896b62a92d1fd41996ec337e9ca13f69af (diff) | |
download | mitmproxy-fb463f50ed6c1431b29d77a8bf239fb25dd2b6e9.tar.gz mitmproxy-fb463f50ed6c1431b29d77a8bf239fb25dd2b6e9.tar.bz2 mitmproxy-fb463f50ed6c1431b29d77a8bf239fb25dd2b6e9.zip |
Merge pull request #809 from zbuc/pfctl_errhandling
Better error handling/reporting for pfctl failures on OS X
Diffstat (limited to 'libmproxy/platform/osx.py')
-rw-r--r-- | libmproxy/platform/osx.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libmproxy/platform/osx.py b/libmproxy/platform/osx.py index c5922850..2824718e 100644 --- a/libmproxy/platform/osx.py +++ b/libmproxy/platform/osx.py @@ -19,8 +19,17 @@ class Resolver(object): def original_addr(self, csock): peer = csock.getpeername() - stxt = subprocess.check_output(self.STATECMD, stderr=subprocess.STDOUT) - if "sudo: a password is required" in stxt: + try: + stxt = subprocess.check_output(self.STATECMD, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError, e: + if "sudo: a password is required" in e.output: + insufficient_priv = True + else: + raise RuntimeError("Error getting pfctl state: " + repr(e)) + else: + insufficient_priv = "sudo: a password is required" in stxt + + if insufficient_priv: raise RuntimeError( "Insufficient privileges to access pfctl. " "See http://mitmproxy.org/doc/transparent/osx.html for details.") |