aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/cmdline.py2
-rw-r--r--libmproxy/console/__init__.py2
-rw-r--r--libmproxy/console/contentview.py2
-rw-r--r--libmproxy/console/flowview.py28
-rw-r--r--libmproxy/filt.py2
-rw-r--r--libmproxy/flow.py8
-rw-r--r--libmproxy/platform/linux.py2
-rw-r--r--libmproxy/proxy.py1
-rw-r--r--libmproxy/utils.py2
9 files changed, 24 insertions, 25 deletions
diff --git a/libmproxy/cmdline.py b/libmproxy/cmdline.py
index 388607af..e221a872 100644
--- a/libmproxy/cmdline.py
+++ b/libmproxy/cmdline.py
@@ -1,8 +1,6 @@
import proxy
import re, filt
import argparse
-import shlex
-import os
APP_HOST = "mitm"
APP_PORT = 80
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index 536b0bac..a316602c 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -1,7 +1,7 @@
import mailcap, mimetypes, tempfile, os, subprocess, glob, time, shlex, stat
import os.path, sys, weakref
import urwid
-from .. import controller, utils, flow
+from .. import controller, utils, flow, script
import flowlist, flowview, help, common, grideditor, palettes, contentview, flowdetailview
EVENTLOG_SIZE = 500
diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py
index a5cb679e..d39d1b9c 100644
--- a/libmproxy/console/contentview.py
+++ b/libmproxy/console/contentview.py
@@ -490,7 +490,7 @@ def get_content_view(viewmode, hdrItems, content, limit, logfunc):
try:
ret = viewmode(hdrs, content, limit)
# Third-party viewers can fail in unexpected ways...
- except Exception, e:
+ except Exception:
s = traceback.format_exc()
s = "Content viewer failed: \n" + s
logfunc(s)
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index 35fc1e43..6c4a2651 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -1,8 +1,12 @@
-import os, sys
+import os, sys, copy
import urwid
import common, grideditor, contentview
from .. import utils, flow, controller
+
+class SearchError(Exception): pass
+
+
def _mkhelp():
text = []
keys = [
@@ -87,9 +91,7 @@ class FlowViewHeader(common.WWrap):
class CallbackCache:
- #commented decorator because it was breaking search functionality (caching after
- # searches.) If it can be made to only cache the first time, it'd be great.
- #@utils.LRUCache(200)
+ @utils.LRUCache(200)
def _callback(self, method, *args, **kwargs):
return getattr(self.obj, method)(*args, **kwargs)
@@ -137,7 +139,6 @@ class FlowView(common.WWrap):
limit = sys.maxint
else:
limit = contentview.VIEW_CUTOFF
-
description, text_objects = cache.callback(
self, "_cached_content_view",
viewmode,
@@ -145,7 +146,6 @@ class FlowView(common.WWrap):
conn.content,
limit
)
-
return (description, text_objects)
def cont_view_handle_missing(self, conn, viewmode):
@@ -173,14 +173,12 @@ class FlowView(common.WWrap):
key = "header",
val = "text"
)
-
if conn.content is not None:
override = self.override_get()
viewmode = self.viewmode_get(override)
msg, body = self.cont_view_handle_missing(conn, viewmode)
elif conn.content == flow.CONTENT_MISSING:
pass
-
return headers, msg, body
def conn_text_merge(self, headers, msg, body):
@@ -188,7 +186,6 @@ class FlowView(common.WWrap):
Grabs what is returned by conn_text_raw and merges them all
toghether, mainly used by conn_text and search
"""
-
override = self.override_get()
viewmode = self.viewmode_get(override)
@@ -222,7 +219,6 @@ class FlowView(common.WWrap):
"""
headers, msg, body = self.conn_text_raw(conn)
merged = self.conn_text_merge(headers, msg, body)
-
return urwid.ListBox(merged)
def _tab(self, content, attr):
@@ -304,7 +300,10 @@ class FlowView(common.WWrap):
# generate the body, highlight the words and get focus
headers, msg, body = self.conn_text_raw(text)
- body, focus_position = self.search_highlight_text(body, search_string)
+ try:
+ body, focus_position = self.search_highlight_text(body, search_string)
+ except SearchError:
+ return "Search not supported in this view."
if focus_position == None:
# no results found.
@@ -350,12 +349,15 @@ class FlowView(common.WWrap):
i = start_line
found = False
+ text_objects = copy.deepcopy(text_objects)
for text_object in text_objects[start_line:]:
if i != start_line:
start_index = 0
- text, style = text_object.get_text()
-
+ try:
+ text, style = text_object.get_text()
+ except AttributeError:
+ raise SearchError()
find_index = text.find(search_string, start_index)
if find_index != -1:
before = text[:find_index]
diff --git a/libmproxy/filt.py b/libmproxy/filt.py
index 824429c7..6a0c3075 100644
--- a/libmproxy/filt.py
+++ b/libmproxy/filt.py
@@ -334,7 +334,7 @@ bnf = _make()
def parse(s):
try:
return bnf.parseString(s, parseAll=True)[0]
- except pp.ParseException, v:
+ except pp.ParseException:
return None
except ValueError:
return None
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 2dd1359a..ee9031ba 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -2,7 +2,7 @@
This module provides more sophisticated flow tracking. These match requests
with their responses, and provide filtering and interception facilities.
"""
-import hashlib, Cookie, cookielib, copy, re, urlparse, os, threading
+import hashlib, Cookie, cookielib, copy, re, urlparse, threading
import time, urllib
import tnetstring, filt, script, utils, encoding, proxy
from email.utils import parsedate_tz, formatdate, mktime_tz
@@ -1394,9 +1394,9 @@ class FlowMaster(controller.Master):
pass
def unload_scripts(self):
- for script in self.scripts[:]:
- script.unload()
- self.scripts.remove(script)
+ for s in self.scripts[:]:
+ s.unload()
+ self.scripts.remove(s)
def load_script(self, command):
"""
diff --git a/libmproxy/platform/linux.py b/libmproxy/platform/linux.py
index 411d442e..d37f0fe8 100644
--- a/libmproxy/platform/linux.py
+++ b/libmproxy/platform/linux.py
@@ -1,4 +1,4 @@
-import socket, struct, fcntl
+import socket, struct
# Python socket module does not have this constant
SO_ORIGINAL_DST = 80
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index 854cc22b..96363a67 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -108,7 +108,6 @@ class RequestReplayThread(threading.Thread):
server = ServerConnection(self.config, r.scheme, r.host, r.port, r.host)
server.connect()
server.send(r)
- tsstart = utils.timestamp()
httpversion, code, msg, headers, content = http.read_response(
server.rfile, r.method, self.config.body_size_limit
)
diff --git a/libmproxy/utils.py b/libmproxy/utils.py
index 961c6618..1ec4685d 100644
--- a/libmproxy/utils.py
+++ b/libmproxy/utils.py
@@ -1,4 +1,4 @@
-import os, datetime, urlparse, string, urllib, re
+import os, datetime, urllib, re
import time, functools, cgi
import json
from netlib import http