diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-03-27 11:25:50 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-03-27 11:25:50 +1300 |
commit | e9ac4bef2065abe545fbc7e8712c027f573082b3 (patch) | |
tree | 80dac4ecb44ceb08baceb780b25e82347a061e58 /libmproxy | |
parent | 690f797da2b22bb48e1d574dde2f02affa6010d3 (diff) | |
download | mitmproxy-e9ac4bef2065abe545fbc7e8712c027f573082b3.tar.gz mitmproxy-e9ac4bef2065abe545fbc7e8712c027f573082b3.tar.bz2 mitmproxy-e9ac4bef2065abe545fbc7e8712c027f573082b3.zip |
Add a variant of cleanBin that escapes newlines and tabs.
Use this to fix the hex display option.
Diffstat (limited to 'libmproxy')
-rw-r--r-- | libmproxy/utils.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libmproxy/utils.py b/libmproxy/utils.py index bcf9d141..b4e317c5 100644 --- a/libmproxy/utils.py +++ b/libmproxy/utils.py @@ -54,11 +54,18 @@ def isXML(s): return False -def cleanBin(s): +def cleanBin(s, fixspacing=False): + """ + Cleans binary data to make it safe to display. If fixspacing is True, + tabs, newlines and so forth will be maintained, if not, they will be + replaced with a placeholder. + """ parts = [] for i in s: o = ord(i) - if (o > 31 and o < 127) or i in "\n\r\t": + if (o > 31 and o < 127): + parts.append(i) + elif i in "\n\r\t" and not fixspacing: parts.append(i) else: parts.append(".") @@ -147,7 +154,7 @@ def hexdump(s): x += " " x += " ".join(" " for i in range(16 - len(part))) parts.append( - (o, x, cleanBin(part)) + (o, x, cleanBin(part, True)) ) return parts |