From d7e9ae9a4a3994d809cd293a7d26fd66146d4ed7 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 5 Jan 2021 17:18:02 +0000 Subject: [PATCH] OPtions - preserve peers --- bridge_master.py | 7 +++++-- hotspot_proxy_v2.py | 9 +++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/bridge_master.py b/bridge_master.py index 03f53a9..09bf9b2 100755 --- a/bridge_master.py +++ b/bridge_master.py @@ -624,13 +624,16 @@ def options_config(): tg = int(tg) make_static_tg(tg,2,_tmout,_system) - + systems[_system]._peer_sema.acquire(blocking=True) + _peerstmp = CONFIG['SYSTEMS'][_system]['PEERS'] CONFIG['SYSTEMS'][_system].update({ 'TS1_STATIC' : _options['TS1_STATIC'], 'TS2_STATIC' : _options['TS2_STATIC'], 'DEFAULT_REFLECTOR' : int(_options['DEFAULT_REFLECTOR']), - 'DEFAULT_UA_TIMER' : int(_options['DEFAULT_UA_TIMER']) + 'DEFAULT_UA_TIMER' : int(_options['DEFAULT_UA_TIMER']), + 'PEERS' : _peerstmp }) + systems[_system]._peer_sema.release() def mysql_config_check(): diff --git a/hotspot_proxy_v2.py b/hotspot_proxy_v2.py index f71b199..331b960 100644 --- a/hotspot_proxy_v2.py +++ b/hotspot_proxy_v2.py @@ -19,10 +19,10 @@ class Proxy(DatagramProtocol): self.numPorts = DestPortEnd - DestportStart - def reaper(self,_peer_id,transport): + def reaper(self,_peer_id): if self.debug: print("dead",_peer_id) - #transport.write(b'RPTCL'+_peer_id, ('127.0.0.1',self.peerTrack[_peer_id]['dport'])) + self.transport.write(b'RPTCL'+_peer_id, ('127.0.0.1',self.peerTrack[_peer_id]['dport'])) self.connTrack[self.peerTrack[_peer_id]['dport']] = False del self.peerTrack[_peer_id] @@ -81,10 +81,11 @@ class Proxy(DatagramProtocol): # _peer_id = self.connTrack[port] if self.debug: print(data) - if _peer_id in self.peerTrack: + if _peer_id and _peer_id in self.peerTrack: self.transport.write(data,(self.peerTrack[_peer_id]['shost'],self.peerTrack[_peer_id]['sport'])) #self.peerTrack[_peer_id]['timer'].reset() return + else: @@ -132,7 +133,7 @@ class Proxy(DatagramProtocol): self.peerTrack[_peer_id]['dport'] = _dport self.peerTrack[_peer_id]['sport'] = port self.peerTrack[_peer_id]['shost'] = host - self.peerTrack[_peer_id]['timer'] = ResettableTimer(self.timeout,self.reaper,[_peer_id,self.transport]) + self.peerTrack[_peer_id]['timer'] = ResettableTimer(self.timeout,self.reaper,[_peer_id]) self.peerTrack[_peer_id]['timer'].start() self.transport.write(data, (self.master,_dport)) if self.debug: