|
|
|
@ -39,6 +39,7 @@ import importlib.util
|
|
|
|
import re
|
|
|
|
import re
|
|
|
|
import copy
|
|
|
|
import copy
|
|
|
|
from setproctitle import setproctitle
|
|
|
|
from setproctitle import setproctitle
|
|
|
|
|
|
|
|
from collections import deque
|
|
|
|
|
|
|
|
|
|
|
|
#from crccheck.crc import Crc32
|
|
|
|
#from crccheck.crc import Crc32
|
|
|
|
from hashlib import blake2b
|
|
|
|
from hashlib import blake2b
|
|
|
|
@ -232,7 +233,7 @@ def make_default_reflector(reflector,_tmout,system):
|
|
|
|
if bridge not in BRIDGES:
|
|
|
|
if bridge not in BRIDGES:
|
|
|
|
BRIDGES[bridge] = []
|
|
|
|
BRIDGES[bridge] = []
|
|
|
|
make_single_reflector(bytes_3(reflector),_tmout, system)
|
|
|
|
make_single_reflector(bytes_3(reflector),_tmout, system)
|
|
|
|
bridgetemp = set()
|
|
|
|
bridgetemp = deque()
|
|
|
|
for bridgesystem in BRIDGES[bridge]:
|
|
|
|
for bridgesystem in BRIDGES[bridge]:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == 2:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == 2:
|
|
|
|
bridgetemp.append({'SYSTEM': system, 'TS': 2, 'TGID': bytes_3(9),'ACTIVE': True,'TIMEOUT': _tmout * 60,'TO_TYPE': 'OFF','OFF': [],'ON': [bytes_3(reflector),],'RESET': [], 'TIMER': time() + (_tmout * 60)})
|
|
|
|
bridgetemp.append({'SYSTEM': system, 'TS': 2, 'TGID': bytes_3(9),'ACTIVE': True,'TIMEOUT': _tmout * 60,'TO_TYPE': 'OFF','OFF': [],'ON': [bytes_3(reflector),],'RESET': [], 'TIMER': time() + (_tmout * 60)})
|
|
|
|
@ -245,7 +246,7 @@ def make_static_tg(tg,ts,_tmout,system):
|
|
|
|
#_tmout = CONFIG['SYSTEMS'][system]['DEFAULT_UA_TIMER']
|
|
|
|
#_tmout = CONFIG['SYSTEMS'][system]['DEFAULT_UA_TIMER']
|
|
|
|
if str(tg) not in BRIDGES:
|
|
|
|
if str(tg) not in BRIDGES:
|
|
|
|
make_single_bridge(bytes_3(tg),system,ts,_tmout)
|
|
|
|
make_single_bridge(bytes_3(tg),system,ts,_tmout)
|
|
|
|
bridgetemp = set()
|
|
|
|
bridgetemp = deque()
|
|
|
|
for bridgesystem in BRIDGES[str(tg)]:
|
|
|
|
for bridgesystem in BRIDGES[str(tg)]:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == ts:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == ts:
|
|
|
|
bridgetemp.append({'SYSTEM': system, 'TS': ts, 'TGID': bytes_3(tg),'ACTIVE': True,'TIMEOUT': _tmout * 60,'TO_TYPE': 'OFF','OFF': [],'ON': [bytes_3(tg),],'RESET': [], 'TIMER': time() + (_tmout * 60)})
|
|
|
|
bridgetemp.append({'SYSTEM': system, 'TS': ts, 'TGID': bytes_3(tg),'ACTIVE': True,'TIMEOUT': _tmout * 60,'TO_TYPE': 'OFF','OFF': [],'ON': [bytes_3(tg),],'RESET': [], 'TIMER': time() + (_tmout * 60)})
|
|
|
|
@ -256,7 +257,7 @@ def make_static_tg(tg,ts,_tmout,system):
|
|
|
|
|
|
|
|
|
|
|
|
def reset_static_tg(tg,ts,_tmout,system):
|
|
|
|
def reset_static_tg(tg,ts,_tmout,system):
|
|
|
|
#_tmout = CONFIG['SYSTEMS'][system]['DEFAULT_UA_TIMER']
|
|
|
|
#_tmout = CONFIG['SYSTEMS'][system]['DEFAULT_UA_TIMER']
|
|
|
|
bridgetemp = set()
|
|
|
|
bridgetemp = deque()
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
for bridgesystem in BRIDGES[str(tg)]:
|
|
|
|
for bridgesystem in BRIDGES[str(tg)]:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == ts:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == ts:
|
|
|
|
@ -275,7 +276,7 @@ def reset_default_reflector(reflector,_tmout,system):
|
|
|
|
if bridge not in BRIDGES:
|
|
|
|
if bridge not in BRIDGES:
|
|
|
|
BRIDGES[bridge] = []
|
|
|
|
BRIDGES[bridge] = []
|
|
|
|
make_single_reflector(bytes_3(reflector),_tmout, system)
|
|
|
|
make_single_reflector(bytes_3(reflector),_tmout, system)
|
|
|
|
bridgetemp = set()
|
|
|
|
bridgetemp = deque()
|
|
|
|
for bridgesystem in BRIDGES[bridge]:
|
|
|
|
for bridgesystem in BRIDGES[bridge]:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == 2:
|
|
|
|
if bridgesystem['SYSTEM'] == system and bridgesystem['TS'] == 2:
|
|
|
|
bridgetemp.append({'SYSTEM': system, 'TS': 2, 'TGID': bytes_3(9),'ACTIVE': False,'TIMEOUT': _tmout * 60,'TO_TYPE': 'ON','OFF': [],'ON': [bytes_3(reflector),],'RESET': [], 'TIMER': time() + (_tmout * 60)})
|
|
|
|
bridgetemp.append({'SYSTEM': system, 'TS': 2, 'TGID': bytes_3(9),'ACTIVE': False,'TIMEOUT': _tmout * 60,'TO_TYPE': 'ON','OFF': [],'ON': [bytes_3(reflector),],'RESET': [], 'TIMER': time() + (_tmout * 60)})
|
|
|
|
@ -317,7 +318,7 @@ def remove_bridge_system(system):
|
|
|
|
def rule_timer_loop():
|
|
|
|
def rule_timer_loop():
|
|
|
|
logger.debug('(ROUTER) routerHBP Rule timer loop started')
|
|
|
|
logger.debug('(ROUTER) routerHBP Rule timer loop started')
|
|
|
|
_now = time()
|
|
|
|
_now = time()
|
|
|
|
_remove_bridges = set()
|
|
|
|
_remove_bridges = deque()
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
_bridge_used = False
|
|
|
|
_bridge_used = False
|
|
|
|
for _system in BRIDGES[_bridge]:
|
|
|
|
for _system in BRIDGES[_bridge]:
|
|
|
|
@ -367,7 +368,7 @@ def rule_timer_loop():
|
|
|
|
|
|
|
|
|
|
|
|
def statTrimmer():
|
|
|
|
def statTrimmer():
|
|
|
|
logger.debug('(ROUTER) STAT trimmer loop started')
|
|
|
|
logger.debug('(ROUTER) STAT trimmer loop started')
|
|
|
|
_remove_bridges = set()
|
|
|
|
_remove_bridges = deque()
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
_bridge_stat = False
|
|
|
|
_bridge_stat = False
|
|
|
|
_in_use = False
|
|
|
|
_in_use = False
|
|
|
|
@ -411,7 +412,7 @@ def subMapWrite():
|
|
|
|
def SubMapTrimmer():
|
|
|
|
def SubMapTrimmer():
|
|
|
|
logger.debug('(SUBSCRIBER) Subscriber Map trimmer loop started')
|
|
|
|
logger.debug('(SUBSCRIBER) Subscriber Map trimmer loop started')
|
|
|
|
_sub_time = time()
|
|
|
|
_sub_time = time()
|
|
|
|
_remove_list = set()
|
|
|
|
_remove_list = deque()
|
|
|
|
for _subscriber in SUB_MAP:
|
|
|
|
for _subscriber in SUB_MAP:
|
|
|
|
if SUB_MAP[_subscriber][2] < (_sub_time - 86400):
|
|
|
|
if SUB_MAP[_subscriber][2] < (_sub_time - 86400):
|
|
|
|
_remove_list.append(_subscriber)
|
|
|
|
_remove_list.append(_subscriber)
|
|
|
|
@ -460,8 +461,8 @@ def stream_trimmer_loop():
|
|
|
|
# OBP systems
|
|
|
|
# OBP systems
|
|
|
|
# We can't delete items from a dicationry that's being iterated, so we have to make a temporarly list of entrys to remove later
|
|
|
|
# We can't delete items from a dicationry that's being iterated, so we have to make a temporarly list of entrys to remove later
|
|
|
|
if CONFIG['SYSTEMS'][system]['MODE'] == 'OPENBRIDGE':
|
|
|
|
if CONFIG['SYSTEMS'][system]['MODE'] == 'OPENBRIDGE':
|
|
|
|
remove_list = set()
|
|
|
|
remove_list = deque()
|
|
|
|
fin_list = set()
|
|
|
|
fin_list = deque()
|
|
|
|
for stream_id in systems[system].STATUS:
|
|
|
|
for stream_id in systems[system].STATUS:
|
|
|
|
|
|
|
|
|
|
|
|
#if stream already marked as finished, just remove it
|
|
|
|
#if stream already marked as finished, just remove it
|
|
|
|
@ -523,7 +524,7 @@ def stream_trimmer_loop():
|
|
|
|
removed = systems[system].STATUS.pop(stream_id)
|
|
|
|
removed = systems[system].STATUS.pop(stream_id)
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
_bcsq_remove = set()
|
|
|
|
_bcsq_remove = deque()
|
|
|
|
for tgid in _sysconfig['_bcsq']:
|
|
|
|
for tgid in _sysconfig['_bcsq']:
|
|
|
|
if _sysconfig['_bcsq'][tgid] == stream_id:
|
|
|
|
if _sysconfig['_bcsq'][tgid] == stream_id:
|
|
|
|
_bcsq_remove.append(tgid)
|
|
|
|
_bcsq_remove.append(tgid)
|
|
|
|
@ -1851,7 +1852,7 @@ class routerOBP(OPENBRIDGE):
|
|
|
|
logger.debug('(%s) Bridge for STAT TG %s does not exist. Creating',self._system, int_id(_dst_id))
|
|
|
|
logger.debug('(%s) Bridge for STAT TG %s does not exist. Creating',self._system, int_id(_dst_id))
|
|
|
|
make_stat_bridge(_dst_id)
|
|
|
|
make_stat_bridge(_dst_id)
|
|
|
|
|
|
|
|
|
|
|
|
_sysIgnore = set()
|
|
|
|
_sysIgnore = deque()
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
for _system in BRIDGES[_bridge]:
|
|
|
|
for _system in BRIDGES[_bridge]:
|
|
|
|
|
|
|
|
|
|
|
|
@ -2657,7 +2658,7 @@ class routerHBP(HBSYSTEM):
|
|
|
|
#Save this packet
|
|
|
|
#Save this packet
|
|
|
|
self.STATUS[_slot]['lastData'] = _data
|
|
|
|
self.STATUS[_slot]['lastData'] = _data
|
|
|
|
|
|
|
|
|
|
|
|
_sysIgnore = set()
|
|
|
|
_sysIgnore = deque()
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
#if _bridge[0:1] != '#':
|
|
|
|
#if _bridge[0:1] != '#':
|
|
|
|
if True:
|
|
|
|
if True:
|
|
|
|
@ -2966,7 +2967,7 @@ if __name__ == '__main__':
|
|
|
|
|
|
|
|
|
|
|
|
#Generator
|
|
|
|
#Generator
|
|
|
|
generator = {}
|
|
|
|
generator = {}
|
|
|
|
systemdelete = set()
|
|
|
|
systemdelete = deque()
|
|
|
|
for system in CONFIG['SYSTEMS']:
|
|
|
|
for system in CONFIG['SYSTEMS']:
|
|
|
|
if CONFIG['SYSTEMS'][system]['ENABLED']:
|
|
|
|
if CONFIG['SYSTEMS'][system]['ENABLED']:
|
|
|
|
if CONFIG['SYSTEMS'][system]['MODE'] == 'MASTER' and (CONFIG['SYSTEMS'][system]['GENERATOR'] > 1):
|
|
|
|
if CONFIG['SYSTEMS'][system]['MODE'] == 'MASTER' and (CONFIG['SYSTEMS'][system]['GENERATOR'] > 1):
|
|
|
|
|