From dde01317e027a0d83f01e1f53a23d63cf17735d2 Mon Sep 17 00:00:00 2001 From: grossmj Date: Tue, 2 Apr 2019 01:12:06 +0700 Subject: [PATCH] Fix packet filter not working for Ethernet switch and Ethernet hub. Fixes https://github.com/GNS3/gns3-gui/issues/2754 --- gns3server/controller/compute.py | 2 +- gns3server/controller/udp_link.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py index aa191af2..d93ac1f0 100644 --- a/gns3server/controller/compute.py +++ b/gns3server/controller/compute.py @@ -528,7 +528,7 @@ class Compute: elif response.status == 503: raise aiohttp.web.HTTPServiceUnavailable(text="Service unavailable {} {}".format(url, body)) else: - raise NotImplementedError("{} status code is not supported".format(response.status)) + raise NotImplementedError("{} status code is not supported for {} '{}'".format(response.status, method, url)) if body and len(body): if raw: response.body = body diff --git a/gns3server/controller/udp_link.py b/gns3server/controller/udp_link.py index c5121b9b..97d4b916 100644 --- a/gns3server/controller/udp_link.py +++ b/gns3server/controller/udp_link.py @@ -117,13 +117,15 @@ class UDPLink(Link): port_number1 = self._nodes[0]["port_number"] self._link_data[0]["filters"] = node1_filters self._link_data[0]["suspend"] = self._suspended - await node1.put("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number1, port_number=port_number1), data=self._link_data[0], timeout=120) + if node1.node_type not in ("ethernet_switch", "ethernet_hub"): + await node1.put("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number1, port_number=port_number1), data=self._link_data[0], timeout=120) adapter_number2 = self._nodes[1]["adapter_number"] port_number2 = self._nodes[1]["port_number"] self._link_data[1]["filters"] = node2_filters self._link_data[1]["suspend"] = self._suspended - await node2.put("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number2, port_number=port_number2), data=self._link_data[1], timeout=221) + if node2.node_type not in ("ethernet_switch", "ethernet_hub"): + await node2.put("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number2, port_number=port_number2), data=self._link_data[1], timeout=221) async def delete(self): """