aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol2/layer.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/protocol2/layer.py')
-rw-r--r--libmproxy/protocol2/layer.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/libmproxy/protocol2/layer.py b/libmproxy/protocol2/layer.py
index 2775845e..8e985d4d 100644
--- a/libmproxy/protocol2/layer.py
+++ b/libmproxy/protocol2/layer.py
@@ -35,7 +35,7 @@ import threading
from netlib import tcp
from ..proxy import Log
from ..proxy.connection import ServerConnection
-from .messages import Connect, Reconnect, ChangeServer, Kill
+from .messages import Connect, Reconnect, SetServer, Kill
from ..exceptions import ProtocolException
@@ -45,6 +45,7 @@ class _LayerCodeCompletion(object):
"""
def __init__(self):
+ super(_LayerCodeCompletion, self).__init__()
if True:
return
self.config = None
@@ -94,7 +95,7 @@ class Layer(_LayerCodeCompletion):
return [self] + self.ctx.layers
def __repr__(self):
- return "%s\r\n %s" % (self.__class__.name__, repr(self.ctx))
+ return type(self).__name__
class ServerConnectionMixin(object):
@@ -103,6 +104,7 @@ class ServerConnectionMixin(object):
"""
def __init__(self):
+ super(ServerConnectionMixin, self).__init__()
self._server_address = None
self.server_conn = None
@@ -114,8 +116,11 @@ class ServerConnectionMixin(object):
elif message == Connect:
self._connect()
return True
- elif message == ChangeServer:
- raise NotImplementedError
+ elif message == SetServer and message.depth == 1:
+ if self.server_conn:
+ self._disconnect()
+ self.server_address = message.address
+ return True
elif message == Kill:
self._disconnect()