diff options
Diffstat (limited to 'examples/upsidedownternet.py')
-rw-r--r-- | examples/upsidedownternet.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/examples/upsidedownternet.py b/examples/upsidedownternet.py index a52b6d30..738eb11f 100644 --- a/examples/upsidedownternet.py +++ b/examples/upsidedownternet.py @@ -1,10 +1,16 @@ import cStringIO from PIL import Image +from libmproxy.protocol.http import decoded -def response(ctx, flow): - if flow.response.headers["content-type"] == ["image/png"]: - s = cStringIO.StringIO(flow.response.content) - img = Image.open(s).rotate(180) - s2 = cStringIO.StringIO() - img.save(s2, "png") - flow.response.content = s2.getvalue() +def response(context, flow): + if flow.response.headers.get_first("content-type", "").startswith("image"): + with decoded(flow.response): # automatically decode gzipped responses. + try: + s = cStringIO.StringIO(flow.response.content) + img = Image.open(s).rotate(180) + s2 = cStringIO.StringIO() + img.save(s2, "png") + flow.response.content = s2.getvalue() + flow.response.headers["content-type"] = ["image/png"] + except: # Unknown image types etc. + pass
\ No newline at end of file |