rewrite PROXY master instance
This commit is contained in:
parent
60c790f5cb
commit
ff25a032c6
|
@ -302,41 +302,30 @@ TGID_TS1_ACL: PERMIT:ALL
|
|||
TGID_TS2_ACL: PERMIT:ALL
|
||||
|
||||
|
||||
# Utilizing the hotspot proxy from FreeDMR
|
||||
[PROXY_TEMPLATE]
|
||||
ENABLED: True
|
||||
# Name that generated systems begin with
|
||||
NAME: HOTSPOT
|
||||
# Port that clients will connect on.
|
||||
EXTERNAL_PORT: 62032
|
||||
|
||||
# Internal ports used for generated master instances.
|
||||
INTERNAL_PORT_START: 54000
|
||||
INTERNAL_PORT_STOP: 54010
|
||||
|
||||
### Utilizing the hotspot proxy from FreeDMR
|
||||
##[PROXY_TEMPLATE_2]
|
||||
##ENABLED: True
|
||||
### Name that generated systems begin with
|
||||
##NAME: REPEATER
|
||||
### Port that clients will connect on.
|
||||
##EXTERNAL_PORT: 62032
|
||||
##
|
||||
### Internal ports used for generated master instances.
|
||||
##INTERNAL_PORT_START: 54000
|
||||
##INTERNAL_PORT_STOP: 54010
|
||||
|
||||
# Utilizing the hotspot proxy modified and used from FreeDMR
|
||||
[HOTSPOT]
|
||||
MODE: PROXY
|
||||
ENABLED: False
|
||||
# Configure as you would for a normal MASTER. These options will apply to all connected peers.
|
||||
STATIC_APRS_POSITION_ENABLED: False
|
||||
REPEAT: True
|
||||
PASSPHRASE: password
|
||||
EXPORT_AMBE: False
|
||||
PASSPHRASE: passw0rd
|
||||
GROUP_HANGTIME: 5
|
||||
USE_ACL: True
|
||||
REG_ACL: DENY:1
|
||||
SUB_ACL: DENY:1
|
||||
TGID_TS1_ACL: PERMIT:ALL
|
||||
TGID_TS2_ACL: PERMIT:ALL
|
||||
|
||||
|
||||
TG1_ACL: PERMIT:ALL
|
||||
TG2_ACL: PERMIT:ALL
|
||||
# Use the provided proxy script as opposed to starting a new thread at start.
|
||||
# Set to False if you are not worried about performance issues.
|
||||
EXTERNAL_PROXY_SCRIPT: False
|
||||
# Port that peers will connect on. This port should be opened in your firewall.
|
||||
EXTERNAL_PORT: 62028
|
||||
# Internal ports used for generated master instances. Peers shouldn't connect directly to these ports.
|
||||
# There is no need to open these ports in your server's firewall. A MASTER instance will be generated for each port in the range below.
|
||||
INTERNAL_PORT_START: 58000
|
||||
INTERNAL_PORT_STOP: 58005
|
||||
|
||||
|
||||
# PEER INSTANCES - DUPLICATE SECTION FOR MULTIPLE PEERS
|
||||
|
|
151
full_bridge.py
151
full_bridge.py
|
@ -3,6 +3,7 @@
|
|||
###############################################################################
|
||||
# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS <n0mjs@me.com>
|
||||
# GPS/Data - Copyright (C) 2021 Eric Craw, KF7EEL <kf7eel@qsl.net>
|
||||
# hotspot_proxy() - Copyright (C) 2020 Simon Adlem, G7RZU <g7rzu@gb7fr.org.uk>
|
||||
# Annotated modifications Copyright (C) 2021 Xavier FRS2013
|
||||
# Static position by IU7IGU
|
||||
#
|
||||
|
@ -981,7 +982,7 @@ def hotspot_proxy(listen_port, port_start, port_stop):
|
|||
reactor.listenUDP(ListenPort,Proxy(Master,ListenPort,CONNTRACK,BlackList,Timeout,Debug,DestportStart,DestPortEnd))
|
||||
|
||||
def loopingErrHandle(failure):
|
||||
print('(GLOBAL) STOPPING REACTOR TO AVOID MEMORY LEAK: Unhandled error innowtimed loop.\n {}'.format(failure))
|
||||
logger.error('(GLOBAL) STOPPING REACTOR TO AVOID MEMORY LEAK: Unhandled error innowtimed loop.\n {}'.format(failure))
|
||||
reactor.stop()
|
||||
|
||||
def stats():
|
||||
|
@ -2874,110 +2875,51 @@ if __name__ == '__main__':
|
|||
logger.info('(REPORT) TCP Socket reporting not configured')
|
||||
|
||||
# HBlink instance creation
|
||||
logger.info('(GLOBAL) HBlink \'bridge.py\' -- SYSTEM STARTING...')
|
||||
|
||||
proxy_a_masters = []
|
||||
proxy_b_masters = []
|
||||
proxy_c_masters = []
|
||||
if CONFIG['PROXY_A']['ENABLED']:
|
||||
#generate_proxy_masters()
|
||||
n_systems = CONFIG['PROXY_A']['INTERNAL_PORT_STOP'] - CONFIG['PROXY_A']['INTERNAL_PORT_START']
|
||||
logger.info('(GLOBAL) HBlink3 Extended \'full_bridge.py\' -- SYSTEM STARTING...')
|
||||
|
||||
# Generate list of Enabled MODE:PROXY masters
|
||||
proxy_master_list = []
|
||||
for i in CONFIG['SYSTEMS']:
|
||||
if CONFIG['SYSTEMS'][i]['ENABLED'] == True:
|
||||
if CONFIG['SYSTEMS'][i]['MODE'] == 'PROXY':
|
||||
proxy_master_list.append(i)
|
||||
# Start proxy as a thread (if enabled in config) for each set of MASTERs
|
||||
for m in proxy_master_list:
|
||||
if CONFIG['SYSTEMS'][m]['EXTERNAL_PROXY_SCRIPT'] == True:
|
||||
proxy_thread = threading.Thread(target=hotspot_proxy, args=(CONFIG['SYSTEMS'][m]['EXTERNAL_PORT'],CONFIG['SYSTEMS'][m]['INTERNAL_PORT_START'],CONFIG['SYSTEMS'][m]['INTERNAL_PORT_STOP'],))
|
||||
proxy_thread.daemon = True
|
||||
proxy_thread.start()
|
||||
logger.info('Started thread for PROXY for MASTER set: ' + m)
|
||||
|
||||
#Build Master configs from list
|
||||
for i in proxy_master_list:
|
||||
n_systems = CONFIG['SYSTEMS'][i]['INTERNAL_PORT_STOP'] - CONFIG['SYSTEMS'][i]['INTERNAL_PORT_START']
|
||||
n_count = 0
|
||||
while n_count < n_systems:
|
||||
|
||||
CONFIG['SYSTEMS'].update({CONFIG['PROXY_A']['NAME'] + '-' + str(n_count): {
|
||||
CONFIG['SYSTEMS'].update({i + '-' + str(n_count): {
|
||||
'MODE': 'MASTER',
|
||||
'ENABLED': True,
|
||||
'STATIC_APRS_POSITION_ENABLED': CONFIG['PROXY_A']['STATIC_APRS_POSITION_ENABLED'],
|
||||
'REPEAT': CONFIG['PROXY_A']['REPEAT'],
|
||||
'STATIC_APRS_POSITION_ENABLED': CONFIG['SYSTEMS'][i]['STATIC_APRS_POSITION_ENABLED'],
|
||||
'REPEAT': CONFIG['SYSTEMS'][i]['REPEAT'],
|
||||
'MAX_PEERS': 1,
|
||||
'IP': '127.0.0.1',
|
||||
'PORT': CONFIG['PROXY_A']['INTERNAL_PORT_START'] + n_count,
|
||||
'PASSPHRASE': CONFIG['PROXY_A']['PASSPHRASE'],
|
||||
'GROUP_HANGTIME': CONFIG['PROXY_A']['GROUP_HANGTIME'],
|
||||
'USE_ACL': CONFIG['PROXY_A']['USE_ACL'],
|
||||
'REG_ACL': sms_aprs_config.acl_build(CONFIG['PROXY_A']['REG_ACL'], 4294967295),
|
||||
'SUB_ACL': sms_aprs_config.acl_build(CONFIG['PROXY_A']['SUB_ACL'], 4294967295),
|
||||
'TGID_TS1_ACL': CONFIG['PROXY_A']['TGID_TS1_ACL'],
|
||||
'TGID_TS2_ACL': CONFIG['PROXY_A']['TGID_TS2_ACL']
|
||||
'PORT': CONFIG['SYSTEMS'][i]['INTERNAL_PORT_START'] + n_count,
|
||||
'PASSPHRASE': CONFIG['SYSTEMS'][i]['PASSPHRASE'],
|
||||
'GROUP_HANGTIME': CONFIG['SYSTEMS'][i]['GROUP_HANGTIME'],
|
||||
'USE_ACL': CONFIG['SYSTEMS'][i]['USE_ACL'],
|
||||
'REG_ACL': CONFIG['SYSTEMS'][i]['REG_ACL'],
|
||||
'SUB_ACL': CONFIG['SYSTEMS'][i]['SUB_ACL'],
|
||||
'TGID_TS1_ACL': CONFIG['SYSTEMS'][i]['TG1_ACL'],
|
||||
'TGID_TS2_ACL': CONFIG['SYSTEMS'][i]['TG2_ACL']
|
||||
}})
|
||||
CONFIG['SYSTEMS'][CONFIG['PROXY_A']['NAME'] + '-' + str(n_count)].update({'PEERS': {}})
|
||||
systems[CONFIG['PROXY_A']['NAME'] + '-' + str(n_count)] = routerHBP(CONFIG['PROXY_A']['NAME'] + '-' + str(n_count), CONFIG, report_server)
|
||||
CONFIG['SYSTEMS'][i + '-' + str(n_count)].update({'PEERS': {}})
|
||||
systems[i + '-' + str(n_count)] = routerHBP(i + '-' + str(n_count), CONFIG, report_server)
|
||||
n_count = n_count + 1
|
||||
|
||||
if CONFIG['PROXY_B']['ENABLED']:
|
||||
#generate_proxy_masters()
|
||||
n_systems = CONFIG['PROXY_B']['INTERNAL_PORT_STOP'] - CONFIG['PROXY_B']['INTERNAL_PORT_START']
|
||||
n_count = 0
|
||||
while n_count < n_systems:
|
||||
# Remove original MASTER stanza to prevent errors
|
||||
CONFIG['SYSTEMS'].pop(i)
|
||||
logger.info('Generated MASTER instances for proxy set: ' + i)
|
||||
|
||||
CONFIG['SYSTEMS'].update({CONFIG['PROXY_B']['NAME'] + '-' + str(n_count): {
|
||||
'MODE': 'MASTER',
|
||||
'ENABLED': True,
|
||||
'STATIC_APRS_POSITION_ENABLED': CONFIG['PROXY_B']['STATIC_APRS_POSITION_ENABLED'],
|
||||
'REPEAT': CONFIG['PROXY_B']['REPEAT'],
|
||||
'MAX_PEERS': 1,
|
||||
'IP': '127.0.0.1',
|
||||
'PORT': CONFIG['PROXY_B']['INTERNAL_PORT_START'] + n_count,
|
||||
'PASSPHRASE': CONFIG['PROXY_B']['PASSPHRASE'],
|
||||
'GROUP_HANGTIME': CONFIG['PROXY_B']['GROUP_HANGTIME'],
|
||||
'USE_ACL': CONFIG['PROXY_B']['USE_ACL'],
|
||||
'REG_ACL': sms_aprs_config.acl_build(CONFIG['PROXY_B']['REG_ACL'], 4294967295),
|
||||
'SUB_ACL': sms_aprs_config.acl_build(CONFIG['PROXY_B']['SUB_ACL'], 4294967295),
|
||||
'TGID_TS1_ACL': CONFIG['PROXY_B']['TGID_TS1_ACL'],
|
||||
'TGID_TS2_ACL': CONFIG['PROXY_B']['TGID_TS2_ACL']
|
||||
}})
|
||||
CONFIG['SYSTEMS'][CONFIG['PROXY_B']['NAME'] + '-' + str(n_count)].update({'PEERS': {}})
|
||||
systems[CONFIG['PROXY_B']['NAME'] + '-' + str(n_count)] = routerHBP(CONFIG['PROXY_B']['NAME'] + '-' + str(n_count), CONFIG, report_server)
|
||||
n_count = n_count + 1
|
||||
if CONFIG['PROXY_C']['ENABLED']:
|
||||
#generate_proxy_masters()
|
||||
n_systems = CONFIG['PROXY_C']['INTERNAL_PORT_STOP'] - CONFIG['PROXY_C']['INTERNAL_PORT_START']
|
||||
n_count = 0
|
||||
while n_count < n_systems:
|
||||
|
||||
CONFIG['SYSTEMS'].update({CONFIG['PROXY_C']['NAME'] + '-' + str(n_count): {
|
||||
'MODE': 'MASTER',
|
||||
'ENABLED': True,
|
||||
'STATIC_APRS_POSITION_ENABLED': CONFIG['PROXY_C']['STATIC_APRS_POSITION_ENABLED'],
|
||||
'REPEAT': CONFIG['PROXY_C']['REPEAT'],
|
||||
'MAX_PEERS': 1,
|
||||
'IP': '127.0.0.1',
|
||||
'PORT': CONFIG['PROXY_C']['INTERNAL_PORT_START'] + n_count,
|
||||
'PASSPHRASE': CONFIG['PROXY_C']['PASSPHRASE'],
|
||||
'GROUP_HANGTIME': CONFIG['PROXY_C']['GROUP_HANGTIME'],
|
||||
'USE_ACL': CONFIG['PROXY_C']['USE_ACL'],
|
||||
'REG_ACL': sms_aprs_config.acl_build(CONFIG['PROXY_C']['REG_ACL'], 4294967295),
|
||||
'SUB_ACL': sms_aprs_config.acl_build(CONFIG['PROXY_C']['SUB_ACL'], 4294967295),
|
||||
'TGID_TS1_ACL': CONFIG['PROXY_C']['TGID_TS1_ACL'],
|
||||
'TGID_TS2_ACL': CONFIG['PROXY_C']['TGID_TS2_ACL']
|
||||
}})
|
||||
CONFIG['SYSTEMS'][CONFIG['PROXY_C']['NAME'] + '-' + str(n_count)].update({'PEERS': {}})
|
||||
systems[CONFIG['PROXY_C']['NAME'] + '-' + str(n_count)] = routerHBP(CONFIG['PROXY_C']['NAME'] + '-' + str(n_count), CONFIG, report_server)
|
||||
n_count = n_count + 1
|
||||
|
||||
# Build the routing rules file
|
||||
## rule_bridge = rules_module.BRIDGES_TEMPLATE
|
||||
## bridge_dict = rule_bridge.copy()
|
||||
## for b in bridge_dict:
|
||||
## for s in bridge_dict[b]:
|
||||
#### print(s)
|
||||
## if s['SYSTEM'] == 'PROXY_A':
|
||||
## for m in proxy_a_masters:
|
||||
## print(m)
|
||||
## bridge_dict[b].append({'SYSTEM': m, 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': s['ON'], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
## bridge_dict[b].remove(s)
|
||||
#### print(bridge_dict)
|
||||
## if s['SYSTEM'] == 'PROXY_B':
|
||||
## for m in proxy_b_masters:
|
||||
## bridge_dict[b].append({'SYSTEM': m, 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': [1], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
## # bridge_dict[b].remove(s)
|
||||
## if s['SYSTEM'] == 'PROXY_C':
|
||||
## for m in proxy_c_masters:
|
||||
## bridge_dict[b].append({'SYSTEM': m, 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': [1], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
#### print(bridge_dict)
|
||||
##
|
||||
#### print(rule_bridge)
|
||||
BRIDGES = make_bridges(rules_module.BRIDGES)
|
||||
exclude = rules_module.EXCLUDE_FROM_UNIT
|
||||
|
||||
|
@ -3021,25 +2963,6 @@ if __name__ == '__main__':
|
|||
aprs_thread = threading.Thread(target=aprs_rx, args=(aprs_callsign, aprs_passcode, aprs_server, aprs_port, aprs_filter, user_ssid,))
|
||||
aprs_thread.daemon = True
|
||||
aprs_thread.start()
|
||||
# Create file for static positions - by IU7IGU
|
||||
## open("nom_aprs","w").close
|
||||
|
||||
if CONFIG['PROXY_A']['ENABLED']:
|
||||
if not CONFIG['PROXY_A']['USE_EXTERNAL_PROXY']:
|
||||
proxy_thread = threading.Thread(target=hotspot_proxy, args=(CONFIG['PROXY_A']['EXTERNAL_PORT'],CONFIG['PROXY_A']['INTERNAL_PORT_START'],CONFIG['PROXY_A']['INTERNAL_PORT_STOP'],))
|
||||
proxy_thread.daemon = True
|
||||
proxy_thread.start()
|
||||
if CONFIG['PROXY_B']['ENABLED']:
|
||||
if not CONFIG['PROXY_B']['USE_EXTERNAL_PROXY']:
|
||||
proxy_thread = threading.Thread(target=hotspot_proxy, args=(CONFIG['PROXY_B']['EXTERNAL_PORT'],CONFIG['PROXY_B']['INTERNAL_PORT_START'],CONFIG['PROXY_B']['INTERNAL_PORT_STOP'],))
|
||||
proxy_thread.daemon = True
|
||||
proxy_thread.start()
|
||||
if CONFIG['PROXY_C']['ENABLED']:
|
||||
if not CONFIG['PROXY_C']['USE_EXTERNAL_PROXY']:
|
||||
proxy_thread = threading.Thread(target=hotspot_proxy, args=(CONFIG['PROXY_C']['EXTERNAL_PORT'],CONFIG['PROXY_C']['INTERNAL_PORT_START'],CONFIG['PROXY_C']['INTERNAL_PORT_STOP'],))
|
||||
proxy_thread.daemon = True
|
||||
proxy_thread.start()
|
||||
|
||||
logger.info('Unit calls will be bridged to: ' + str(UNIT))
|
||||
print(BRIDGES)
|
||||
reactor.run()
|
||||
|
|
|
@ -94,11 +94,7 @@ def hblink_handler(_signal, _frame):
|
|||
# on matching and the action specified.
|
||||
def acl_check(_id, _acl):
|
||||
id = int_id(_id)
|
||||
print(type(_acl))
|
||||
for entry in _acl[1]:
|
||||
print(id)
|
||||
print(entry)
|
||||
#print(entry[1])
|
||||
if entry[0] <= id <= entry[1]:
|
||||
return _acl[0]
|
||||
return not _acl[0]
|
||||
|
|
|
@ -31,6 +31,8 @@ configuration file.
|
|||
timer to be reset. This is useful if you are using different TGIDs for voice traffic than
|
||||
triggering. If you are not, there is NO NEED to use this feature.
|
||||
'''
|
||||
# REQUIRED! - Path to your full_bridge.cfg
|
||||
config_file = './full_bridge.cfg'
|
||||
|
||||
BRIDGES_TEMPLATE = {
|
||||
'STATEWIDE': [
|
||||
|
@ -40,7 +42,8 @@ BRIDGES_TEMPLATE = {
|
|||
'ECHO': [
|
||||
{'SYSTEM': 'MASTER-1', 'TS': 2, 'TGID': 9999, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON', 'ON': [9999,], 'OFF': [9,10], 'RESET': []},
|
||||
{'SYSTEM': 'PEER-1', 'TS': 2, 'TGID': 9999, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON', 'ON': [9999,], 'OFF': [9,10], 'RESET': []},
|
||||
{'SYSTEM': 'PROXY_A', 'TS': 2, 'TGID': 9, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [4], 'OFF': [7,10], 'RESET': []},
|
||||
# For proxy MASTERs, just put in the name of the stanza, and rules will be generated automatically
|
||||
{'SYSTEM': 'HOTSPOT', 'TS': 2, 'TGID': 9, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [4], 'OFF': [7,10], 'RESET': []},
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -125,34 +128,26 @@ local_systems = {
|
|||
|
||||
#################### Function used to build bridges for PROXY stanzas, leave alone ####################
|
||||
def build_bridges():
|
||||
import sms_aprs_config
|
||||
import sms_aprs_config, random
|
||||
config_file = './gps_data.cfg'
|
||||
CONFIG = sms_aprs_config.build_config(config_file)
|
||||
## print(CONFIG)
|
||||
built_bridge = BRIDGES_TEMPLATE.copy()
|
||||
if CONFIG['PROXY_A']['ENABLED']:
|
||||
proxy_a_masters = []
|
||||
n_systems = CONFIG['PROXY_A']['INTERNAL_PORT_STOP'] - CONFIG['PROXY_A']['INTERNAL_PORT_START']
|
||||
n_count = 0
|
||||
while n_count < n_systems:
|
||||
proxy_a_masters.append(CONFIG['PROXY_A']['NAME'] + '-' + str(n_count))
|
||||
n_count = n_count + 1
|
||||
|
||||
proxy_list = []
|
||||
unique = str('_' + str(random.randint(100, 999)))
|
||||
for i in CONFIG['SYSTEMS']:
|
||||
if CONFIG['SYSTEMS'][i]['ENABLED'] == True:
|
||||
if CONFIG['SYSTEMS'][i]['MODE'] == 'PROXY':
|
||||
proxy_list.append(i + unique)
|
||||
|
||||
for b in BRIDGES_TEMPLATE:
|
||||
for s in BRIDGES_TEMPLATE[b]:
|
||||
if s['SYSTEM'] == 'PROXY_A':
|
||||
for m in proxy_a_masters:
|
||||
built_bridge[b].append({'SYSTEM': m, 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': s['ON'], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
built_bridge[b].remove(s)
|
||||
if s['SYSTEM'] == 'PROXY_B':
|
||||
for m in proxy_b_masters:
|
||||
built_bridge[b].append({'SYSTEM': m, 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': s['ON'], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
built_bridge[b].remove(s)
|
||||
if s['SYSTEM'] == 'PROXY_C':
|
||||
for m in proxy_c_masters:
|
||||
built_bridge[b].append({'SYSTEM': m, 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': s['ON'], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
built_bridge[b].remove(s)
|
||||
|
||||
if s['SYSTEM'] + unique in proxy_list:
|
||||
n_systems = CONFIG['SYSTEMS'][i]['INTERNAL_PORT_STOP'] - CONFIG['SYSTEMS'][i]['INTERNAL_PORT_START']
|
||||
n_count = 0
|
||||
while n_count < n_systems:
|
||||
built_bridge[b].append({'SYSTEM': s['SYSTEM'] + '-' + str(n_count), 'TS': s['TS'], 'TGID': s['TGID'], 'ACTIVE': s['ACTIVE'], 'TIMEOUT': s['TIMEOUT'], 'TO_TYPE': s['TO_TYPE'], 'ON': s['ON'], 'OFF': s['OFF'], 'RESET': s['RESET']})
|
||||
n_count = n_count + 1
|
||||
built_bridge[b].remove(s)
|
||||
return built_bridge
|
||||
|
||||
BRIDGES = build_bridges()
|
||||
|
|
|
@ -110,9 +110,6 @@ def build_config(_config_file):
|
|||
CONFIG['GPS_DATA'] = {}
|
||||
CONFIG['ALIASES'] = {}
|
||||
CONFIG['SYSTEMS'] = {}
|
||||
CONFIG['PROXY_A'] = {}
|
||||
CONFIG['PROXY_B'] = {}
|
||||
CONFIG['PROXY_C'] = {}
|
||||
|
||||
try:
|
||||
for section in config.sections():
|
||||
|
@ -201,78 +198,6 @@ def build_config(_config_file):
|
|||
'STALE_TIME': config.getint(section, 'STALE_DAYS') * 86400,
|
||||
})
|
||||
|
||||
elif section == 'PROXY_A':
|
||||
CONFIG['PROXY_A'].update({
|
||||
'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||
'USE_EXTERNAL_PROXY': config.getboolean(section, 'USE_EXTERNAL_PROXY'),
|
||||
'NAME': config.get(section, 'NAME'),
|
||||
'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||
'EXTERNAL_PORT': config.getint(section, 'EXTERNAL_PORT'),
|
||||
'INTERNAL_PORT_START': config.getint(section, 'INTERNAL_PORT_START'),
|
||||
'INTERNAL_PORT_STOP': config.getint(section, 'INTERNAL_PORT_STOP'),
|
||||
'STATIC_APRS_POSITION_ENABLED': config.getboolean(section, 'STATIC_APRS_POSITION_ENABLED'),
|
||||
'PASSPHRASE': bytes(config.get(section, 'PASSPHRASE'), 'utf-8'),
|
||||
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||
'REG_ACL': config.get(section, 'REG_ACL'),
|
||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||
'TGID_TS1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
||||
'TGID_TS2_ACL': config.get(section, 'TGID_TS2_ACL')
|
||||
})
|
||||
elif section == 'PROXY_B':
|
||||
CONFIG['PROXY_B'].update({
|
||||
'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||
'USE_EXTERNAL_PROXY': config.getboolean(section, 'USE_EXTERNAL_PROXY'),
|
||||
'NAME': config.get(section, 'NAME'),
|
||||
'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||
'EXTERNAL_PORT': config.getint(section, 'EXTERNAL_PORT'),
|
||||
'INTERNAL_PORT_START': config.getint(section, 'INTERNAL_PORT_START'),
|
||||
'INTERNAL_PORT_STOP': config.getint(section, 'INTERNAL_PORT_STOP'),
|
||||
'STATIC_APRS_POSITION_ENABLED': config.getboolean(section, 'STATIC_APRS_POSITION_ENABLED'),
|
||||
'PASSPHRASE': bytes(config.get(section, 'PASSPHRASE'), 'utf-8'),
|
||||
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||
'REG_ACL': config.get(section, 'REG_ACL'),
|
||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||
'TGID_TS1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
||||
'TGID_TS2_ACL': config.get(section, 'TGID_TS2_ACL')
|
||||
})
|
||||
elif section == 'PROXY_C':
|
||||
CONFIG['PROXY_C'].update({
|
||||
'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||
'USE_EXTERNAL_PROXY': config.getboolean(section, 'USE_EXTERNAL_PROXY'),
|
||||
'NAME': config.get(section, 'NAME'),
|
||||
'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||
'EXTERNAL_PORT': config.getint(section, 'EXTERNAL_PORT'),
|
||||
'INTERNAL_PORT_START': config.getint(section, 'INTERNAL_PORT_START'),
|
||||
'INTERNAL_PORT_STOP': config.getint(section, 'INTERNAL_PORT_STOP'),
|
||||
'STATIC_APRS_POSITION_ENABLED': config.getboolean(section, 'STATIC_APRS_POSITION_ENABLED'),
|
||||
'PASSPHRASE': bytes(config.get(section, 'PASSPHRASE'), 'utf-8'),
|
||||
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||
'REG_ACL': config.get(section, 'REG_ACL'),
|
||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||
'TGID_TS1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
||||
'TGID_TS2_ACL': config.get(section, 'TGID_TS2_ACL')
|
||||
})
|
||||
## elif section == 'PROXY_TEMPLATE_2':
|
||||
## CONFIG['PROXY_TEMPLATE'].update({
|
||||
## 'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||
## 'NAME': config.get(section, 'NAME'),
|
||||
## 'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||
## 'EXTERNAL_PORT': config.getint(section, 'EXTERNAL_PORT'),
|
||||
## 'INTERNAL_PORT_START': config.getint(section, 'INTERNAL_PORT_START'),
|
||||
## 'INTERNAL_PORT_STOP': config.getint(section, 'INTERNAL_PORT_STOP'),
|
||||
## 'STATIC_APRS_POSITION_ENABLED': config.getboolean(section, 'STATIC_APRS_POSITION_ENABLED'),
|
||||
## 'PASSPHRASE': bytes(config.get(section, 'PASSPHRASE'), 'utf-8'),
|
||||
## 'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||
## 'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||
## 'REG_ACL': config.get(section, 'REG_ACL'),
|
||||
## 'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||
## 'TG1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
||||
## 'TG2_ACL': config.get(section, 'TGID_TS2_ACL')
|
||||
## })
|
||||
|
||||
elif config.getboolean(section, 'ENABLED'):
|
||||
if config.get(section, 'MODE') == 'PEER':
|
||||
CONFIG['SYSTEMS'].update({section: {
|
||||
|
@ -384,24 +309,25 @@ def build_config(_config_file):
|
|||
}})
|
||||
CONFIG['SYSTEMS'][section].update({'PEERS': {}})
|
||||
|
||||
## elif config.get(section, 'MODE') == 'PROXY':
|
||||
## CONFIG['SYSTEMS'].update({section: {
|
||||
## 'MODE': config.get(section, 'MODE'),
|
||||
## 'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||
## 'STATIC_APRS_POSITION_ENABLED': config.getboolean(section, 'STATIC_APRS_POSITION_ENABLED'),
|
||||
## 'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||
## 'PASSPHRASE': bytes(config.get(section, 'PASSPHRASE'), 'utf-8'),
|
||||
## 'EXTERNAL_PORT': config.getint(section, 'EXTERNAL_PORT'),
|
||||
## 'INTERNAL_PORT_START': config.getint(section, 'INTERNAL_PORT_START'),
|
||||
## 'INTERNAL_PORT_STOP': config.getint(section, 'INTERNAL_PORT_STOP'),
|
||||
## 'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||
## 'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||
## 'REG_ACL': config.get(section, 'REG_ACL'),
|
||||
## 'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||
## 'TG1_ACL': config.get(section, 'TG1_ACL'),
|
||||
## 'TG2_ACL': config.get(section, 'TG2_ACL')
|
||||
## }})
|
||||
## CONFIG['SYSTEMS'][section].update({'PEERS': {}})
|
||||
elif config.get(section, 'MODE') == 'PROXY':
|
||||
CONFIG['SYSTEMS'].update({section: {
|
||||
'MODE': config.get(section, 'MODE'),
|
||||
'ENABLED': config.getboolean(section, 'ENABLED'),
|
||||
'EXTERNAL_PROXY_SCRIPT': config.getboolean(section, 'EXTERNAL_PROXY_SCRIPT'),
|
||||
'STATIC_APRS_POSITION_ENABLED': config.getboolean(section, 'STATIC_APRS_POSITION_ENABLED'),
|
||||
'REPEAT': config.getboolean(section, 'REPEAT'),
|
||||
'PASSPHRASE': bytes(config.get(section, 'PASSPHRASE'), 'utf-8'),
|
||||
'EXTERNAL_PORT': config.getint(section, 'EXTERNAL_PORT'),
|
||||
'INTERNAL_PORT_START': config.getint(section, 'INTERNAL_PORT_START'),
|
||||
'INTERNAL_PORT_STOP': config.getint(section, 'INTERNAL_PORT_STOP'),
|
||||
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||
'REG_ACL': config.get(section, 'REG_ACL'),
|
||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||
'TG1_ACL': config.get(section, 'TG1_ACL'),
|
||||
'TG2_ACL': config.get(section, 'TG2_ACL')
|
||||
}})
|
||||
CONFIG['SYSTEMS'][section].update({'PEERS': {}})
|
||||
|
||||
elif config.get(section, 'MODE') == 'OPENBRIDGE':
|
||||
CONFIG['SYSTEMS'].update({section: {
|
||||
|
|
Loading…
Reference in New Issue