diff options
Diffstat (limited to 'libmproxy')
-rw-r--r-- | libmproxy/cmdline.py | 2 | ||||
-rw-r--r-- | libmproxy/console/__init__.py | 2 | ||||
-rw-r--r-- | libmproxy/console/contentview.py | 2 | ||||
-rw-r--r-- | libmproxy/console/flowview.py | 28 | ||||
-rw-r--r-- | libmproxy/filt.py | 2 | ||||
-rw-r--r-- | libmproxy/flow.py | 8 | ||||
-rw-r--r-- | libmproxy/platform/linux.py | 2 | ||||
-rw-r--r-- | libmproxy/proxy.py | 1 | ||||
-rw-r--r-- | libmproxy/utils.py | 2 |
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 |