aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-07-09 11:18:03 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-07-09 11:18:03 +1200
commit79af9e89c44597e58e6db0486a54e133e9def704 (patch)
treed4ab244cd23b5f93ddf16af6afcd0a2250dd2b5e
parentaab45078adfdf143722aa021c7d7ad1b2eb61ed3 (diff)
downloadmitmproxy-79af9e89c44597e58e6db0486a54e133e9def704.tar.gz
mitmproxy-79af9e89c44597e58e6db0486a54e133e9def704.tar.bz2
mitmproxy-79af9e89c44597e58e6db0486a54e133e9def704.zip
Test replay corner cases. Fix discovered bugs.
-rw-r--r--.gitignore3
-rw-r--r--libmproxy/proxy.py6
-rw-r--r--test/test_server.py12
3 files changed, 16 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index b88b179b..f268eff1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,6 @@ MANIFEST
*.swo
mitmproxyc
mitmdumpc
-netlib
.coverage
+netlib
+libpathod
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index bc7051d4..e7b2c409 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -67,11 +67,9 @@ class RequestReplayThread(threading.Thread):
self.flow.request, httpversion, code, msg, headers, content, server.cert
)
response._send(self.masterq)
- except (ProxyError, http.HttpError), v:
- err = flow.Error(self.flow.request, v.msg)
+ except (ProxyError, http.HttpError, tcp.NetLibError), v:
+ err = flow.Error(self.flow.request, str(v))
err._send(self.masterq)
- except tcp.NetLibError, v:
- raise ProxyError(502, v)
class ServerConnection(tcp.TCPClient):
diff --git a/test/test_server.py b/test/test_server.py
index a500d81c..72be976f 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -30,6 +30,18 @@ class SanityMixin:
rt.join()
assert l.response.code == 305
+ # Disconnect error
+ l.request.path = "/p/305:d0"
+ rt = self.master.replay_request(l)
+ rt.join()
+ assert l.error
+
+ # Port error
+ l.request.port = 1
+ rt = self.master.replay_request(l)
+ rt.join()
+ assert l.error
+
class TestHTTP(tutils.HTTPProxTest, SanityMixin):
def test_invalid_http(self):