aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-03-20 22:50:03 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-03-20 22:50:03 +0100
commit2ce023a991d8edd52bb10186105a7725188cd8ac (patch)
tree69f3addbd34a8de58983636784651946029d0cf2
parentd8e8dfc1c6136c709bb3286c2f058a8ac101acc0 (diff)
downloadmitmproxy-2ce023a991d8edd52bb10186105a7725188cd8ac.tar.gz
mitmproxy-2ce023a991d8edd52bb10186105a7725188cd8ac.tar.bz2
mitmproxy-2ce023a991d8edd52bb10186105a7725188cd8ac.zip
py3++
-rw-r--r--mitmproxy/filt.py8
-rw-r--r--mitmproxy/flow.py15
-rw-r--r--mitmproxy/main.py8
-rw-r--r--mitmproxy/platform/windows.py10
-rw-r--r--mitmproxy/protocol/http2.py8
-rw-r--r--pathod/pathoc.py10
-rw-r--r--pathod/test.py4
-rw-r--r--test/mitmproxy/test_flow.py6
-rw-r--r--test/mitmproxy/tools/passive_close.py6
9 files changed, 37 insertions, 38 deletions
diff --git a/mitmproxy/filt.py b/mitmproxy/filt.py
index 5e0e13cc..f34969dd 100644
--- a/mitmproxy/filt.py
+++ b/mitmproxy/filt.py
@@ -152,9 +152,9 @@ class FHead(_Rex):
flags = re.MULTILINE
def __call__(self, f):
- if f.request and self.re.search(str(f.request.headers)):
+ if f.request and self.re.search(bytes(f.request.headers)):
return True
- if f.response and self.re.search(str(f.response.headers)):
+ if f.response and self.re.search(bytes(f.response.headers)):
return True
return False
@@ -165,7 +165,7 @@ class FHeadRequest(_Rex):
flags = re.MULTILINE
def __call__(self, f):
- if f.request and self.re.search(str(f.request.headers)):
+ if f.request and self.re.search(bytes(f.request.headers)):
return True
@@ -175,7 +175,7 @@ class FHeadResponse(_Rex):
flags = re.MULTILINE
def __call__(self, f):
- if f.response and self.re.search(str(f.response.headers)):
+ if f.response and self.re.search(bytes(f.response.headers)):
return True
diff --git a/mitmproxy/flow.py b/mitmproxy/flow.py
index 5d6334b5..a937e106 100644
--- a/mitmproxy/flow.py
+++ b/mitmproxy/flow.py
@@ -6,12 +6,11 @@ from __future__ import absolute_import
import traceback
from abc import abstractmethod, ABCMeta
import hashlib
-import Cookie
-import cookielib
+from six.moves import http_cookies, http_cookiejar
import os
import re
import time
-import urlparse
+from six.moves import urllib
from netlib import wsgi
from netlib.exceptions import HttpException
@@ -248,8 +247,8 @@ class ServerPlaybackState:
"""
r = flow.request
- _, _, path, _, query, _ = urlparse.urlparse(r.url)
- queriesArray = urlparse.parse_qsl(query, keep_blank_values=True)
+ _, _, path, _, query, _ = urllib.parse.urlparse(r.url)
+ queriesArray = urllib.parse_qsl(query, keep_blank_values=True)
key = [
str(r.port),
@@ -323,9 +322,9 @@ class StickyCookieState:
)
def domain_match(self, a, b):
- if cookielib.domain_match(a, b):
+ if http_cookiejar.domain_match(a, b):
return True
- elif cookielib.domain_match(a, b.strip(".")):
+ elif http_cookiejar.domain_match(a, b.strip(".")):
return True
return False
@@ -333,7 +332,7 @@ class StickyCookieState:
for i in f.response.headers.get_all("set-cookie"):
# FIXME: We now know that Cookie.py screws up some cookies with
# valid RFC 822/1123 datetime specifications for expiry. Sigh.
- c = Cookie.SimpleCookie(str(i))
+ c = http_cookies.SimpleCookie(str(i))
for m in c.values():
k = self.ckey(m, f)
if self.domain_match(f.request.host, k[0]):
diff --git a/mitmproxy/main.py b/mitmproxy/main.py
index ef135754..31c1409e 100644
--- a/mitmproxy/main.py
+++ b/mitmproxy/main.py
@@ -2,7 +2,7 @@ from __future__ import print_function, absolute_import
import os
import signal
import sys
-import thread
+from six.moves import _thread # PY3: We only need _thread.error, which is an alias of RuntimeError in 3.3+
from netlib.version_check import check_pyopenssl_version, check_mitmproxy_version
from . import version, cmdline
from .exceptions import ServerException
@@ -68,7 +68,7 @@ def mitmproxy(args=None): # pragma: no cover
m = console.ConsoleMaster(server, console_options)
try:
m.run()
- except (KeyboardInterrupt, thread.error):
+ except (KeyboardInterrupt, _thread.error):
pass
@@ -103,7 +103,7 @@ def mitmdump(args=None): # pragma: no cover
except dump.DumpError as e:
print("mitmdump: %s" % e, file=sys.stderr)
sys.exit(1)
- except (KeyboardInterrupt, thread.error):
+ except (KeyboardInterrupt, _thread.error):
pass
@@ -134,5 +134,5 @@ def mitmweb(args=None): # pragma: no cover
m = web.WebMaster(server, web_options)
try:
m.run()
- except (KeyboardInterrupt, thread.error):
+ except (KeyboardInterrupt, _thread.error):
pass
diff --git a/mitmproxy/platform/windows.py b/mitmproxy/platform/windows.py
index 9fe04cfa..0a810908 100644
--- a/mitmproxy/platform/windows.py
+++ b/mitmproxy/platform/windows.py
@@ -1,10 +1,10 @@
import configargparse
-import cPickle as pickle
+from six.moves import cPickle as pickle
from ctypes import byref, windll, Structure
from ctypes.wintypes import DWORD
import os
import socket
-import SocketServer
+from six.moves import socketserver
import struct
import threading
import time
@@ -53,7 +53,7 @@ class Resolver(object):
return self.original_addr(csock)
-class APIRequestHandler(SocketServer.StreamRequestHandler):
+class APIRequestHandler(socketserver.StreamRequestHandler):
"""
TransparentProxy API: Returns the pickled server address, port tuple
@@ -78,10 +78,10 @@ class APIRequestHandler(SocketServer.StreamRequestHandler):
proxifier.trusted_pids.discard(pid)
-class APIServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
+class APIServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
def __init__(self, proxifier, *args, **kwargs):
- SocketServer.TCPServer.__init__(self, *args, **kwargs)
+ socketserver.TCPServer.__init__(self, *args, **kwargs)
self.proxifier = proxifier
self.daemon_threads = True
diff --git a/mitmproxy/protocol/http2.py b/mitmproxy/protocol/http2.py
index 1773729d..eba4795e 100644
--- a/mitmproxy/protocol/http2.py
+++ b/mitmproxy/protocol/http2.py
@@ -2,7 +2,7 @@ from __future__ import (absolute_import, print_function, division)
import threading
import time
-import Queue
+from six.moves import queue
import h2
import six
@@ -252,12 +252,12 @@ class Http2SingleStreamLayer(_HttpTransmissionLayer, threading.Thread):
self.response_headers = None
self.pushed = False
- self.request_data_queue = Queue.Queue()
+ self.request_data_queue = queue.Queue()
self.request_queued_data_length = 0
self.request_data_finished = threading.Event()
self.response_arrived = threading.Event()
- self.response_data_queue = Queue.Queue()
+ self.response_data_queue = queue.Queue()
self.response_queued_data_length = 0
self.response_data_finished = threading.Event()
@@ -382,7 +382,7 @@ class Http2SingleStreamLayer(_HttpTransmissionLayer, threading.Thread):
while True:
try:
yield self.response_data_queue.get(timeout=1)
- except Queue.Empty:
+ except queue.Empty:
pass
if self.response_data_finished.is_set():
while self.response_data_queue.qsize() > 0:
diff --git a/pathod/pathoc.py b/pathod/pathoc.py
index 64a81c94..86661f98 100644
--- a/pathod/pathoc.py
+++ b/pathod/pathoc.py
@@ -3,7 +3,7 @@ import sys
import os
import itertools
import hashlib
-import Queue
+from six.moves import queue
import random
import select
import time
@@ -92,8 +92,8 @@ class WebsocketFrameReader(threading.Thread):
self.showresp = showresp
self.hexdump = hexdump
self.rfile = rfile
- self.terminate = Queue.Queue()
- self.frames_queue = Queue.Queue()
+ self.terminate = queue.Queue()
+ self.frames_queue = queue.Queue()
self.logger = log.ConnectionLogger(
self.logfp,
self.hexdump,
@@ -119,7 +119,7 @@ class WebsocketFrameReader(threading.Thread):
try:
self.terminate.get_nowait()
return
- except Queue.Empty:
+ except queue.Empty:
pass
for rfile in r:
with self.logger.ctx() as log:
@@ -344,7 +344,7 @@ class Pathoc(tcp.TCPClient):
timeout=timeout,
block=True if timeout != 0 else False
)
- except Queue.Empty:
+ except queue.Empty:
if finish:
continue
else:
diff --git a/pathod/test.py b/pathod/test.py
index a2552376..23b7a5b6 100644
--- a/pathod/test.py
+++ b/pathod/test.py
@@ -1,6 +1,6 @@
from six.moves import cStringIO as StringIO
import threading
-import Queue
+from six.moves import queue
import requests
import requests.packages.urllib3
@@ -13,7 +13,7 @@ class Daemon:
IFACE = "127.0.0.1"
def __init__(self, ssl=None, **daemonargs):
- self.q = Queue.Queue()
+ self.q = queue.Queue()
self.logfp = StringIO()
daemonargs["logfp"] = self.logfp
self.thread = _PaThread(self.IFACE, self.q, ssl, daemonargs)
diff --git a/test/mitmproxy/test_flow.py b/test/mitmproxy/test_flow.py
index 0d9a2e8d..993db876 100644
--- a/test/mitmproxy/test_flow.py
+++ b/test/mitmproxy/test_flow.py
@@ -1,4 +1,4 @@
-import Queue
+from six.moves import queue
import time
import os.path
from six.moves import cStringIO as StringIO
@@ -853,7 +853,7 @@ class TestFlowMaster:
assert not fm.start_client_playback(pb, False)
fm.client_playback.testing = True
- q = Queue.Queue()
+ q = queue.Queue()
assert not fm.state.flow_count()
fm.tick(q, 0)
assert fm.state.flow_count()
@@ -909,7 +909,7 @@ class TestFlowMaster:
False,
None,
False)
- q = Queue.Queue()
+ q = queue.Queue()
fm.tick(q, 0)
assert fm.should_exit.is_set()
diff --git a/test/mitmproxy/tools/passive_close.py b/test/mitmproxy/tools/passive_close.py
index 5b1bd451..4b657f8d 100644
--- a/test/mitmproxy/tools/passive_close.py
+++ b/test/mitmproxy/tools/passive_close.py
@@ -1,8 +1,8 @@
-import SocketServer
+from six.moves import socketserver
from time import sleep
-class service(SocketServer.BaseRequestHandler):
+class service(socketserver.BaseRequestHandler):
def handle(self):
data = 'dummy'
@@ -16,7 +16,7 @@ class service(SocketServer.BaseRequestHandler):
sleep(3600)
-class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
+class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass
server = ThreadedTCPServer(('', 1520), service)