diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2013-01-05 16:48:49 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2013-01-05 16:48:49 +1300 |
commit | 1e932e704577ff8159f93d424d4b7041dec29eea (patch) | |
tree | 0e44bc0b17af293a4721978cd3223cf48efca625 /libpathod/pathod.py | |
parent | 3886ccae9379d065e54e0eb7e961992ff3c0ee62 (diff) | |
download | mitmproxy-1e932e704577ff8159f93d424d4b7041dec29eea.tar.gz mitmproxy-1e932e704577ff8159f93d424d4b7041dec29eea.tar.bz2 mitmproxy-1e932e704577ff8159f93d424d4b7041dec29eea.zip |
Collect SSL options into an SSLOptions object
Also split SSL cert specifications from SSL service mode - we can now enter SSL
service mode through a proxy CONNECT request as well.
Diffstat (limited to 'libpathod/pathod.py')
-rw-r--r-- | libpathod/pathod.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libpathod/pathod.py b/libpathod/pathod.py index 587e51bf..48aa076f 100644 --- a/libpathod/pathod.py +++ b/libpathod/pathod.py @@ -8,6 +8,13 @@ logger = logging.getLogger('pathod') class PathodError(Exception): pass +class SSLOptions: + def __init__(self, certfile=None, keyfile=None, not_after_connect=None): + self.keyfile = keyfile or utils.data.path("resources/server.key") + self.certfile = certfile or utils.data.path("resources/server.crt") + self.not_after_connect = not_after_connect + + class PathodHandler(tcp.BaseHandler): wbufsize = 0 sni = None @@ -144,11 +151,11 @@ class PathodHandler(tcp.BaseHandler): self.info("\n".join(s)) def handle(self): - if self.server.ssloptions and not self.server.ssloptions["ssl_after_connect"]: + if self.server.ssl: try: self.convert_to_ssl( - self.server.ssloptions["certfile"], - self.server.ssloptions["keyfile"], + self.server.ssloptions.certfile, + self.server.ssloptions.keyfile, ) except tcp.NetLibError, v: s = str(v) @@ -182,7 +189,7 @@ class PathodHandler(tcp.BaseHandler): class Pathod(tcp.TCPServer): LOGBUF = 500 def __init__( self, - addr, ssloptions=None, craftanchor="/p/", staticdir=None, anchors=None, + addr, ssl=False, ssloptions=None, craftanchor="/p/", staticdir=None, anchors=None, sizelimit=None, noweb=False, nocraft=False, noapi=False, nohang=False, timeout=None, logreq=False, logresp=False, explain=False, hexdump=False ): @@ -199,7 +206,8 @@ class Pathod(tcp.TCPServer): nohang: Disable pauses. """ tcp.TCPServer.__init__(self, addr) - self.ssloptions = ssloptions + self.ssl = ssl + self.ssloptions = ssloptions or SSLOptions() self.staticdir = staticdir self.craftanchor = craftanchor self.sizelimit = sizelimit |