aboutsummaryrefslogtreecommitdiffstats
path: root/examples/upsidedownternet.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/upsidedownternet.py')
-rw-r--r--examples/upsidedownternet.py20
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