aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
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 /libmproxy
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.
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/console.py3
-rw-r--r--libmproxy/proxy.py2
-rw-r--r--libmproxy/utils.py5
3 files changed, 4 insertions, 6 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)
-
-
-