diff options
author | Maximilian Hils <git@maximilianhils.com> | 2016-02-08 04:16:58 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2016-02-08 04:16:58 +0100 |
commit | fe0ed63c4a3486402f65638b476149ebba752055 (patch) | |
tree | 1739d349e75ccbb1cf2b8ef48aff885fe8711288 /netlib/tcp.py | |
parent | 4873547de3c65ba7c14cace4bca7b17368b2900d (diff) | |
download | mitmproxy-fe0ed63c4a3486402f65638b476149ebba752055.tar.gz mitmproxy-fe0ed63c4a3486402f65638b476149ebba752055.tar.bz2 mitmproxy-fe0ed63c4a3486402f65638b476149ebba752055.zip |
add Serializable ABC
Diffstat (limited to 'netlib/tcp.py')
-rw-r--r-- | netlib/tcp.py | 17 |
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): |