aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-11-04 21:32:12 +0100
committerMaximilian Hils <git@maximilianhils.com>2015-11-04 21:32:12 +0100
commitfb463f50ed6c1431b29d77a8bf239fb25dd2b6e9 (patch)
tree27d4cece2fe37de6b20dfae38f8b2d9c789bbbbf
parentc62abd67d25ce190cb614320d08a87b1e6fa5148 (diff)
parent9398d5896b62a92d1fd41996ec337e9ca13f69af (diff)
downloadmitmproxy-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
-rw-r--r--libmproxy/platform/osx.py13
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.")