aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/platform/osx.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2014-08-10 16:10:49 +0200
committerMaximilian Hils <git@maximilianhils.com>2014-08-10 16:10:49 +0200
commit858b0af0bbcbf3c26e71c0b6e33b5de3a8f31c75 (patch)
treea35834b8488abdb4d7ed5621fe1c9c9cf9a70ef6 /libmproxy/platform/osx.py
parentecf8081ba63f15ec283979a3418951711ec30071 (diff)
downloadmitmproxy-858b0af0bbcbf3c26e71c0b6e33b5de3a8f31c75.tar.gz
mitmproxy-858b0af0bbcbf3c26e71c0b6e33b5de3a8f31c75.tar.bz2
mitmproxy-858b0af0bbcbf3c26e71c0b6e33b5de3a8f31c75.zip
fix #270
Diffstat (limited to 'libmproxy/platform/osx.py')
-rw-r--r--libmproxy/platform/osx.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/libmproxy/platform/osx.py b/libmproxy/platform/osx.py
index 3a91ac2b..810e5e5f 100644
--- a/libmproxy/platform/osx.py
+++ b/libmproxy/platform/osx.py
@@ -13,15 +13,14 @@ import pf
the output processing of pfctl (see pf.py).
"""
-class Resolver:
+
+class Resolver(object):
STATECMD = ("sudo", "-n", "/sbin/pfctl", "-s", "state")
- def __init__(self):
- pass
def original_addr(self, csock):
peer = csock.getpeername()
- try:
- stxt = subprocess.check_output(self.STATECMD, stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError:
- return None
+ stxt = subprocess.check_output(self.STATECMD, stderr=subprocess.STDOUT)
+ if "sudo: a password is required" in stxt:
+ raise RuntimeError("Insufficient privileges to access pfctl. "
+ "See http://mitmproxy.org/doc/transparent/osx.html for details.")
return pf.lookup(peer[0], peer[1], stxt)