diff --git a/custom_components/mikrotik_router/mikrotik_controller.py b/custom_components/mikrotik_router/mikrotik_controller.py index d25a8f0..07d1925 100644 --- a/custom_components/mikrotik_router/mikrotik_controller.py +++ b/custom_components/mikrotik_router/mikrotik_controller.py @@ -1052,10 +1052,14 @@ class MikrotikControllerData: {"name": "address-list"}, {"name": "protocol", "default": "any"}, {"name": "in-interface", "default": "any"}, + {"name": "in-interface-list", "default": "any"}, {"name": "out-interface", "default": "any"}, + {"name": "out-interface-list", "default": "any"}, {"name": "src-address", "default": "any"}, + {"name": "src-address-list", "default": "any"}, {"name": "src-port", "default": "any"}, {"name": "dst-address", "default": "any"}, + {"name": "dst-address-list", "default": "any"}, {"name": "dst-port", "default": "any"}, {"name": "layer7-protocol", "default": "any"}, {"name": "connection-state", "default": "any"}, @@ -1081,14 +1085,22 @@ class MikrotikControllerData: {"key": "layer7-protocol"}, {"text": ","}, {"key": "in-interface"}, + {"text": ","}, + {"key": "in-interface-list"}, {"text": ":"}, {"key": "src-address"}, + {"text": ","}, + {"key": "src-address-list"}, {"text": ":"}, {"key": "src-port"}, {"text": "-"}, {"key": "out-interface"}, + {"text": ","}, + {"key": "out-interface-list"}, {"text": ":"}, {"key": "dst-address"}, + {"text": ","}, + {"key": "dst-address-list"}, {"text": ":"}, {"key": "dst-port"}, ], diff --git a/custom_components/mikrotik_router/switch.py b/custom_components/mikrotik_router/switch.py index 7b2b2e1..d535829 100644 --- a/custom_components/mikrotik_router/switch.py +++ b/custom_components/mikrotik_router/switch.py @@ -407,8 +407,8 @@ class MikrotikControllerFilterSwitch(MikrotikControllerSwitch): for uid in self._ctrl.data["filter"]: if self._ctrl.data["filter"][uid]["uniq-id"] == ( f"{self._data['chain']},{self._data['action']},{self._data['protocol']},{self._data['layer7-protocol']}," - f"{self._data['in-interface']}:{self._data['src-address']}:{self._data['src-port']}-" - f"{self._data['out-interface']}:{self._data['dst-address']}:{self._data['dst-port']}" + f"{self._data['in-interface']},{self._data['in-interface-list']}:{self._data['src-address']},{self._data['src-address-list']}:{self._data['src-port']}-" + f"{self._data['out-interface']},{self._data['out-interface-list']}:{self._data['dst-address']},{self._data['dst-address-list']}:{self._data['dst-port']}" ): value = self._ctrl.data["filter"][uid][".id"] @@ -424,8 +424,8 @@ class MikrotikControllerFilterSwitch(MikrotikControllerSwitch): for uid in self._ctrl.data["filter"]: if self._ctrl.data["filter"][uid]["uniq-id"] == ( f"{self._data['chain']},{self._data['action']},{self._data['protocol']},{self._data['layer7-protocol']}," - f"{self._data['in-interface']}:{self._data['src-address']}:{self._data['src-port']}-" - f"{self._data['out-interface']}:{self._data['dst-address']}:{self._data['dst-port']}" + f"{self._data['in-interface']},{self._data['in-interface-list']}:{self._data['src-address']},{self._data['src-address-list']}:{self._data['src-port']}-" + f"{self._data['out-interface']},{self._data['out-interface-list']}:{self._data['dst-address']},{self._data['dst-address-list']}:{self._data['dst-port']}" ): value = self._ctrl.data["filter"][uid][".id"]