mirror of
https://github.com/tomaae/homeassistant-mikrotik_router.git
synced 2025-07-19 18:25:26 +02:00
Check and remove mangle name duplicates #75
This commit is contained in:
parent
4d83bbfbee
commit
cef6710f1b
1 changed files with 23 additions and 0 deletions
|
@ -113,6 +113,7 @@ class MikrotikControllerData:
|
||||||
)
|
)
|
||||||
|
|
||||||
self.nat_removed = {}
|
self.nat_removed = {}
|
||||||
|
self.mangle_removed = {}
|
||||||
self.host_hass_recovered = False
|
self.host_hass_recovered = False
|
||||||
self.host_tracking_initialized = False
|
self.host_tracking_initialized = False
|
||||||
|
|
||||||
|
@ -810,6 +811,28 @@ class MikrotikControllerData:
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Remove duplicate Mangle entries to prevent crash
|
||||||
|
mangle_uniq = {}
|
||||||
|
mangle_del = {}
|
||||||
|
for uid in self.data["mangle"]:
|
||||||
|
tmp_name = self.data["mangle"][uid]["name"]
|
||||||
|
if tmp_name not in mangle_uniq:
|
||||||
|
mangle_uniq[tmp_name] = uid
|
||||||
|
else:
|
||||||
|
mangle_del[uid] = 1
|
||||||
|
mangle_del[mangle_uniq[tmp_name]] = 1
|
||||||
|
|
||||||
|
for uid in mangle_del:
|
||||||
|
if self.data["mangle"][uid]["name"] not in self.mangle_removed:
|
||||||
|
self.mangle_removed[self.data["mangle"][uid]["name"]] = 1
|
||||||
|
_LOGGER.error(
|
||||||
|
"Mikrotik %s duplicate Mangle rule %s, entity will be unavailable.",
|
||||||
|
self.host,
|
||||||
|
self.data["mangle"][uid]["name"],
|
||||||
|
)
|
||||||
|
|
||||||
|
del self.data["mangle"][uid]
|
||||||
|
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
# get_system_routerboard
|
# get_system_routerboard
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue