aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-01-21 12:43:00 +1300
committerAldo Cortesi <aldo@nullcube.com>2012-01-21 12:43:00 +1300
commitd5e3722c97c2094032fe02095c3b8f7cb4df87c3 (patch)
tree457bc724192c9eae0900aa2e13a09e9d3300d266
parent2a09cad420f2d74246deda7c48552b089714a0b6 (diff)
downloadmitmproxy-d5e3722c97c2094032fe02095c3b8f7cb4df87c3.tar.gz
mitmproxy-d5e3722c97c2094032fe02095c3b8f7cb4df87c3.tar.bz2
mitmproxy-d5e3722c97c2094032fe02095c3b8f7cb4df87c3.zip
Fix an issue caused by some editors when editing a request/response body.
Many editors make it hard save a file without a terminating newline on the last line. When editing message bodies, this can cause problems. For now, I just strip the newlines off the end of the body when we return from an editor.
-rw-r--r--libmproxy/console.py3
-rw-r--r--libmproxy/proxy.py2
-rw-r--r--libmproxy/utils.py5
-rw-r--r--test/serv.py4
-rw-r--r--test/sslserv.py2
-rw-r--r--test/test_server.py2
6 files changed, 7 insertions, 11 deletions
diff --git a/libmproxy/console.py b/libmproxy/console.py
index fb1a2ed0..3e00249d 100644
--- a/libmproxy/console.py
+++ b/libmproxy/console.py
@@ -454,7 +454,8 @@ class ConnectionView(WWrap):
self.flow.backup()
if part == "b":
- conn.content = self._spawn_editor(conn.content or "")
+ c = self._spawn_editor(conn.content or "")
+ conn.content = c.rstrip("\n")
elif part == "h":
headertext = self._spawn_editor(repr(conn.headers))
headers = flow.Headers()
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index 32057c24..9b21bd22 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -122,7 +122,7 @@ def parse_request_line(request):
if major != 1:
raise ProxyError(400, "Unsupported protocol")
return method, scheme, host, port, path, minor
-
+
class FileLike:
def __init__(self, o):
diff --git a/libmproxy/utils.py b/libmproxy/utils.py
index a7e41752..108a99cb 100644
--- a/libmproxy/utils.py
+++ b/libmproxy/utils.py
@@ -413,7 +413,7 @@ def parse_url(url):
def parse_size(s):
"""
Parses a size specification. Valid specifications are:
-
+
123: bytes
123k: kilobytes
123m: megabytes
@@ -437,6 +437,3 @@ def parse_size(s):
return int(s) * mult
except ValueError:
raise ValueError("Invalid size specification: %s"%s)
-
-
-
diff --git a/test/serv.py b/test/serv.py
index 53747f08..f6dee2cc 100644
--- a/test/serv.py
+++ b/test/serv.py
@@ -4,7 +4,5 @@ from BaseHTTPServer import HTTPServer
import handler
def make(port):
- server_address = ('', port)
+ server_address = ('127.0.0.1', port)
return HTTPServer(server_address, handler.TestRequestHandler)
-
-
diff --git a/test/sslserv.py b/test/sslserv.py
index 4aa4df39..557ce869 100644
--- a/test/sslserv.py
+++ b/test/sslserv.py
@@ -18,5 +18,5 @@ class SecureHTTPServer(HTTPServer):
def make(port):
- server_address = ('', port)
+ server_address = ('127.0.0.1', port)
return SecureHTTPServer(server_address, handler.TestRequestHandler)
diff --git a/test/test_server.py b/test/test_server.py
index 1e3c1df4..b000cc46 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -41,7 +41,7 @@ class uProxy(tutils.ProxTest):
assert f.code == 200
assert f.read()
f.close()
-
+
l = self.log()
assert l[0].address
assert "host" in l[1].headers