From 70c28f5d34c0bf3a74b84e89b7817d1d0fd9058b Mon Sep 17 00:00:00 2001 From: Chris Czub Date: Thu, 29 Oct 2015 15:56:43 -0400 Subject: Better error handling/reporting for pfctl failures on OS X --- libmproxy/platform/osx.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'libmproxy') diff --git a/libmproxy/platform/osx.py b/libmproxy/platform/osx.py index c5922850..194e9cad 100644 --- a/libmproxy/platform/osx.py +++ b/libmproxy/platform/osx.py @@ -19,8 +19,15 @@ 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)) + + if insufficient_priv is True or "sudo: a password is required" in stxt: raise RuntimeError( "Insufficient privileges to access pfctl. " "See http://mitmproxy.org/doc/transparent/osx.html for details.") -- cgit v1.2.3