mirror of
https://github.com/tomaae/homeassistant-mikrotik_router.git
synced 2025-07-18 01:34:24 +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.mangle_removed = {}
|
||||
self.host_hass_recovered = 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
|
||||
# ---------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue