Commit 9999e909 authored by ibuler's avatar ibuler

[Update] 修改models

parent a1b4180d
......@@ -97,6 +97,7 @@ class BaseServer:
self.send_bytes = 0
self.recv_bytes = 0
self.stop_evt = threading.Event()
self.chan = None
self.input_data = SizedList(maxsize=1024)
self.output_data = SizedList(maxsize=1024)
......@@ -160,27 +161,15 @@ class BaseServer:
parser = utils.TtyIOParser()
return parser.parse_input(self.input_data)
class TelnetServer(BaseServer):
"""
Telnet server
"""
def __init__(self, sock, asset, system_user):
super(TelnetServer, self).__init__()
self.sock = sock
self.asset = asset
self.system_user = system_user
def fileno(self):
return self.sock.fileno()
return self.chan.fileno()
def send(self, b):
self.parse(b)
return self.sock.send(b)
return self.chan.send(b)
def recv(self, size):
data = self.sock.recv(size)
data = self.chan.recv(size)
self.session.put_replay(data)
if self._input_initial:
if self._in_input_state:
......@@ -193,15 +182,26 @@ class TelnetServer(BaseServer):
logger.info("Closed server {}".format(self))
self.parse(b'')
self.stop_evt.set()
self.sock.close()
self.chan.close()
def __getattr__(self, item):
return getattr(self.sock, item)
return getattr(self.chan, item)
def __str__(self):
return "<To: {}>".format(str(self.asset))
class TelnetServer(BaseServer):
"""
Telnet server
"""
def __init__(self, sock, asset, system_user):
super(TelnetServer, self).__init__()
self.chan = sock
self.asset = asset
self.system_user = system_user
class Server(BaseServer):
"""
SSH Server
......@@ -218,38 +218,12 @@ class Server(BaseServer):
self.asset = asset
self.system_user = system_user
def fileno(self):
return self.chan.fileno()
def send(self, b):
self.parse(b)
return self.chan.send(b)
def recv(self, size):
data = self.chan.recv(size)
self.session.put_replay(data)
if self._input_initial:
if self._in_input_state:
self.input_data.append(data)
else:
self.output_data.append(data)
return data
def close(self):
logger.info("Closed server {}".format(self))
self.parse(b'')
self.stop_evt.set()
self.chan.close()
super().close()
self.chan.transport.close()
if self.sock:
self.sock.transport.close()
def __getattr__(self, item):
return getattr(self.chan, item)
def __str__(self):
return "<To: {}>".format(str(self.asset))
# def __del__(self):
# print("GC: Server object has been gc")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment