From 96a0b52cf8bb0b52bc186354e3cd556df8416e3e Mon Sep 17 00:00:00 2001 From: ziajka Date: Mon, 20 Nov 2017 13:51:07 +0100 Subject: [PATCH] EthernetSwitch closing connections, Ref: gui/#2330 --- gns3server/compute/dynamips/nodes/ethernet_switch.py | 5 +++-- gns3server/utils/asyncio/telnet_server.py | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gns3server/compute/dynamips/nodes/ethernet_switch.py b/gns3server/compute/dynamips/nodes/ethernet_switch.py index d45088f1..1df65caf 100644 --- a/gns3server/compute/dynamips/nodes/ethernet_switch.py +++ b/gns3server/compute/dynamips/nodes/ethernet_switch.py @@ -166,8 +166,8 @@ class EthernetSwitch(Device): self._telnet_shell = EthernetSwitchConsole(self) self._telnet_shell.prompt = self._name + '> ' - telnet = create_telnet_shell(self._telnet_shell) - self._telnet_server = (yield from asyncio.start_server(telnet.run, self._manager.port_manager.console_host, self.console)) + self._telnet = create_telnet_shell(self._telnet_shell) + self._telnet_server = (yield from asyncio.start_server(self._telnet.run, self._manager.port_manager.console_host, self.console)) self._hypervisor.devices.append(self) @@ -214,6 +214,7 @@ class EthernetSwitch(Device): """ Deletes this Ethernet switch. """ + yield from self._telnet.close() for nio in self._nios.values(): if nio: diff --git a/gns3server/utils/asyncio/telnet_server.py b/gns3server/utils/asyncio/telnet_server.py index faee7b21..0f4bc3c1 100644 --- a/gns3server/utils/asyncio/telnet_server.py +++ b/gns3server/utils/asyncio/telnet_server.py @@ -209,6 +209,11 @@ class AsyncioTelnetServer: yield from connection.disconnected() del self._connections[network_writer] + @asyncio.coroutine + def close(self): + for writer, connection in self._connections.items(): + connection.close() + @asyncio.coroutine def client_connected_hook(self): pass