diff options
author | Thomas Kriechbaumer <thomas@kriechbaumer.name> | 2015-08-01 10:40:19 +0200 |
---|---|---|
committer | Thomas Kriechbaumer <thomas@kriechbaumer.name> | 2015-08-01 14:37:32 +0200 |
commit | db02553e2afee044faac898d12bd8d1adadbcd21 (patch) | |
tree | 1e5910599b7b47c527528f03f896efd2fbf7c907 /libmproxy/encoding.py | |
parent | 8a051511706e2e62c32e0f70e05ecab11d444b6f (diff) | |
download | mitmproxy-db02553e2afee044faac898d12bd8d1adadbcd21.tar.gz mitmproxy-db02553e2afee044faac898d12bd8d1adadbcd21.tar.bz2 mitmproxy-db02553e2afee044faac898d12bd8d1adadbcd21.zip |
move code from mitmproxy to netlib
Diffstat (limited to 'libmproxy/encoding.py')
-rw-r--r-- | libmproxy/encoding.py | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/libmproxy/encoding.py b/libmproxy/encoding.py deleted file mode 100644 index f107eb5f..00000000 --- a/libmproxy/encoding.py +++ /dev/null @@ -1,82 +0,0 @@ -""" - Utility functions for decoding response bodies. -""" -from __future__ import absolute_import -import cStringIO -import gzip -import zlib - -__ALL__ = ["ENCODINGS"] - -ENCODINGS = set(["identity", "gzip", "deflate"]) - - -def decode(e, content): - encoding_map = { - "identity": identity, - "gzip": decode_gzip, - "deflate": decode_deflate, - } - if e not in encoding_map: - return None - return encoding_map[e](content) - - -def encode(e, content): - encoding_map = { - "identity": identity, - "gzip": encode_gzip, - "deflate": encode_deflate, - } - if e not in encoding_map: - return None - return encoding_map[e](content) - - -def identity(content): - """ - Returns content unchanged. Identity is the default value of - Accept-Encoding headers. - """ - return content - - -def decode_gzip(content): - gfile = gzip.GzipFile(fileobj=cStringIO.StringIO(content)) - try: - return gfile.read() - except (IOError, EOFError): - return None - - -def encode_gzip(content): - s = cStringIO.StringIO() - gf = gzip.GzipFile(fileobj=s, mode='wb') - gf.write(content) - gf.close() - return s.getvalue() - - -def decode_deflate(content): - """ - Returns decompressed data for DEFLATE. Some servers may respond with - compressed data without a zlib header or checksum. An undocumented - feature of zlib permits the lenient decompression of data missing both - values. - - http://bugs.python.org/issue5784 - """ - try: - try: - return zlib.decompress(content) - except zlib.error: - return zlib.decompress(content, -15) - except zlib.error: - return None - - -def encode_deflate(content): - """ - Returns compressed content, always including zlib header and checksum. - """ - return zlib.compress(content) |