aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/tcp.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-02-08 04:16:58 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-02-08 04:16:58 +0100
commitfe0ed63c4a3486402f65638b476149ebba752055 (patch)
tree1739d349e75ccbb1cf2b8ef48aff885fe8711288 /netlib/tcp.py
parent4873547de3c65ba7c14cace4bca7b17368b2900d (diff)
downloadmitmproxy-fe0ed63c4a3486402f65638b476149ebba752055.tar.gz
mitmproxy-fe0ed63c4a3486402f65638b476149ebba752055.tar.bz2
mitmproxy-fe0ed63c4a3486402f65638b476149ebba752055.zip
add Serializable ABC
Diffstat (limited to 'netlib/tcp.py')
-rw-r--r--netlib/tcp.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py
index 85b4b0e2..2e91a70c 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -16,6 +16,7 @@ import six
import OpenSSL
from OpenSSL import SSL
+from netlib.utils import Serializable
from . import certutils, version_check
# This is a rather hackish way to make sure that
@@ -298,7 +299,7 @@ class Reader(_FileLike):
raise NotImplementedError("Can only peek into (pyOpenSSL) sockets")
-class Address(object):
+class Address(Serializable):
"""
This class wraps an IPv4/IPv6 tuple to provide named attributes and
@@ -309,6 +310,20 @@ class Address(object):
self.address = tuple(address)
self.use_ipv6 = use_ipv6
+ def get_state(self):
+ return {
+ "address": self.address,
+ "use_ipv6": self.use_ipv6
+ }
+
+ def set_state(self, state):
+ self.address = state["address"]
+ self.use_ipv6 = state["use_ipv6"]
+
+ @classmethod
+ def from_state(cls, state):
+ return Address(**state)
+
@classmethod
def wrap(cls, t):
if isinstance(t, cls):