Merge pull request #34 from ea5gvk/pruebas

Fix: proteger acceso a BRIDGES[_bridge] con KeyError guard tras list(BRIDGES)
pull/37/head
Joaquin Madrid Belando 2 months ago committed by GitHub
commit 7637c6bcdb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -302,7 +302,7 @@ def reset_static_tg(tg,ts,_tmout,system):
def reset_all_reflector_system(_tmout,system):
for system in CONFIG['SYSTEMS']:
for bridge in BRIDGES:
for bridge in list(BRIDGES):
if bridge[0:1] == '#':
for bridgesystem in BRIDGES[bridge]:
bridgetemp = deque()
@ -337,6 +337,8 @@ def remove_bridge_system(system):
_bridgestemp = {}
_bridgetemp = {}
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
for _bridgesystem in BRIDGES[_bridge]:
if _bridgesystem['SYSTEM'] != system:
if _bridge not in _bridgestemp:
@ -352,6 +354,8 @@ def remove_bridge_system(system):
def deactivate_all_dynamic_bridges(system_name):
"""Desactiva todos los bridges dinámicos (no estáticos, no reflectores) de un sistema."""
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
if _bridge[0:1] == '#': # Saltar reflectores
continue
for _sys_entry in BRIDGES[_bridge]:
@ -373,6 +377,8 @@ def rule_timer_loop():
_debug_msgs = []
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
_bridge_used = False
### MODIFIED: Detect special TGIDs (9990-9999) to exclude them from infinite timer logic
@ -471,6 +477,8 @@ def statTrimmer():
logger.debug('(ROUTER) STAT trimmer loop started')
_remove_bridges = deque()
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
_bridge_stat = False
_in_use = False
for _system in BRIDGES[_bridge]:
@ -531,6 +539,8 @@ def bridgeDebug():
#_setbridge = str(times[bridgetmout])
if CONFIG['SYSTEMS'][system]['MODE'] == 'MASTER':
for _bridge in set(times.values()):
if _bridge not in BRIDGES:
continue
logger.warning('(BRIDGEDEBUG) deactivating system: %s for bridge: %s',system,_bridge)
bridgetemp = deque()
for bridgesystem in BRIDGES[_bridge]:
@ -1810,7 +1820,9 @@ def options_config():
if int(_options['DEFAULT_UA_TIMER']) != CONFIG['SYSTEMS'][_system]['DEFAULT_UA_TIMER']:
logger.debug('(OPTIONS) %s Updating DEFAULT_UA_TIMER for existing bridges.',_system)
remove_bridge_system(_system)
for _bridge in BRIDGES:
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
ts1 = False
ts2 = False
for i,e in enumerate(BRIDGES[_bridge]):
@ -2482,7 +2494,9 @@ class routerOBP(OPENBRIDGE):
make_stat_bridge(_dst_id)
_sysIgnore = deque()
for _bridge in BRIDGES:
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
for _system in BRIDGES[_bridge]:
if _system['SYSTEM'] == self._system and _system['TGID'] == _dst_id and _system['TS'] == _slot and _system['ACTIVE'] == True:
@ -3400,7 +3414,9 @@ class routerHBP(HBSYSTEM):
# Now, run the general routing loop for all other bridges to handle cross-connections.
# We skip the one we just processed to avoid duplicate work.
for _bridge in BRIDGES:
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
if _bridge == _current_bridge_key:
continue
for _system in BRIDGES[_bridge]:
@ -3429,7 +3445,9 @@ class routerHBP(HBSYSTEM):
#
# Iterate the rules dictionary
for _bridge in BRIDGES:
for _bridge in list(BRIDGES):
if _bridge not in BRIDGES:
continue
if (_bridge[0:1] == '#') and (_int_dst_id != 9):
continue
for _system in BRIDGES[_bridge]:

Loading…
Cancel
Save

Powered by TurnKey Linux.