aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-05-20 13:59:42 -0700
committerMaximilian Hils <git@maximilianhils.com>2016-05-20 13:59:42 -0700
commiteb914924ab56b28f982660c0600f6ae8818af204 (patch)
tree1913607645abcc7fd0c1fe10533bdf9ac2dfd020
parentb538138ead1dc8550f2d4e4a3f30ff70abb95f53 (diff)
downloadmitmproxy-eb914924ab56b28f982660c0600f6ae8818af204.tar.gz
mitmproxy-eb914924ab56b28f982660c0600f6ae8818af204.tar.bz2
mitmproxy-eb914924ab56b28f982660c0600f6ae8818af204.zip
fix #1099
-rw-r--r--mitmproxy/console/flowview.py2
-rw-r--r--netlib/http/message.py6
-rw-r--r--netlib/multidict.py3
3 files changed, 10 insertions, 1 deletions
diff --git a/mitmproxy/console/flowview.py b/mitmproxy/console/flowview.py
index 3538c4ad..2010cecd 100644
--- a/mitmproxy/console/flowview.py
+++ b/mitmproxy/console/flowview.py
@@ -186,7 +186,7 @@ class FlowView(tabs.Tabs):
viewmode,
message,
limit,
- (bytes(message.headers), message.content) # Cache invalidation
+ message # Cache invalidation
)
def _get_content_view(self, viewmode, message, max_lines, _):
diff --git a/netlib/http/message.py b/netlib/http/message.py
index db4054b1..76affeec 100644
--- a/netlib/http/message.py
+++ b/netlib/http/message.py
@@ -26,6 +26,9 @@ class MessageData(utils.Serializable):
def __ne__(self, other):
return not self.__eq__(other)
+ def __hash__(self):
+ return hash(frozenset(self.__dict__.items()))
+
def set_state(self, state):
for k, v in state.items():
if k == "headers":
@@ -52,6 +55,9 @@ class Message(utils.Serializable):
def __ne__(self, other):
return not self.__eq__(other)
+ def __hash__(self):
+ return hash(self.data) ^ 1
+
def get_state(self):
return self.data.get_state()
diff --git a/netlib/multidict.py b/netlib/multidict.py
index a359d46b..ec1b24d8 100644
--- a/netlib/multidict.py
+++ b/netlib/multidict.py
@@ -87,6 +87,9 @@ class MultiDict(MutableMapping, Serializable):
def __ne__(self, other):
return not self.__eq__(other)
+ def __hash__(self):
+ return hash(self.fields)
+
def get_all(self, key):
"""
Return the list of all values for a given key.