From 0261c04ede400f3b7406a0e207fdfef1c1461c78 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Mar 2021 17:22:50 +0000 Subject: [PATCH] When using a GENERATOR config, reset HBP options to default on client logout --- bridge_master.py | 2 ++ hblink.py | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/bridge_master.py b/bridge_master.py index 0e0df44..b2aedbb 100755 --- a/bridge_master.py +++ b/bridge_master.py @@ -1962,7 +1962,9 @@ if __name__ == '__main__': _systemname = system+'-'+str(count) generator[_systemname] = copy.deepcopy(CONFIG['SYSTEMS'][system]) generator[_systemname]['PORT'] = generator[_systemname]['PORT'] + count + generator[_systemname]['_default_options'] = "TS1_STATIC={};TS2_STATIC={};SINGLE={};DEFAULT_UA_TIMER={};DEFAULT_REFLECTOR={};VOICE={}".format(generator[_systemname]['TS1_STATIC'],generator[_systemname]['TS2_STATIC'],int(generator[_systemname]['SINGLE_MODE']),generator[_systemname]['DEFAULT_UA_TIMER'],generator[_systemname]['DEFAULT_REFLECTOR'],int(generator[_systemname]['VOICE_IDENT']) ) logger.debug('(GLOBAL) Generator - generated system %s',_systemname) + generator[_systemname]['_default_options'] systemdelete.append(system) for _system in generator: diff --git a/hblink.py b/hblink.py index 5bf9582..cb30232 100755 --- a/hblink.py +++ b/hblink.py @@ -250,8 +250,13 @@ class HBSYSTEM(DatagramProtocol): # Remove any timed out peers from the configuration del self._CONFIG['SYSTEMS'][self._system]['PEERS'][peer] if 'PEERS' not in self._CONFIG['SYSTEMS'][self._system] and 'OPTIONS' in self._CONFIG['SYSTEMS'][self._system]: - logger.info('(%s) Deleting HBP Options',self._system) - del self._CONFIG['SYSTEMS'][self._system]['OPTIONS'] + + if '_default_options' in self._CONFIG['SYSTEMS'][self._system]: + logger.info('(%s) Setting default Options: %s',self._system, self._CONFIG['SYSTEMS'][self._system]['_default_options']) + self._CONFIG['SYSTEMS'][self._system]['OPTIONS'] = self._CONFIG['SYSTEMS'][self._system]['_default_options'] + else: + del self._CONFIG['SYSTEMS'][self._system]['OPTIONS'] + logger.info('(%s) Deleting HBP Options',self._system) # Aliased in __init__ to maintenance_loop if system is a peer def peer_maintenance_loop(self): @@ -485,8 +490,12 @@ class HBSYSTEM(DatagramProtocol): self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr) del self._peers[_peer_id] if 'OPTIONS' in self._CONFIG['SYSTEMS'][self._system]: - logger.info('(%s) Deleting HBP Options',self._system) - del self._CONFIG['SYSTEMS'][self._system]['OPTIONS'] + if '_default_options' in self._CONFIG['SYSTEMS'][self._system]: + self._CONFIG['SYSTEMS'][self._system]['OPTIONS'] = self._CONFIG['SYSTEMS'][self._system]['_default_options'] + logger.info('(%s) Setting default Options: %s',self._system, self._CONFIG['SYSTEMS'][self._system]['_default_options']) + else: + logger.info('(%s) Deleting HBP Options',self._system) + del self._CONFIG['SYSTEMS'][self._system]['OPTIONS'] else: _peer_id = _data[4:8] # Configure Command