diff --git a/bridge.py b/bridge.py index ba0f594..9e8c660 100755 --- a/bridge.py +++ b/bridge.py @@ -118,15 +118,14 @@ __email__ = 'kf7eel@qsl.net' #### return config.build_config(cli_file) -def send_unit_table(CONFIG, _data, _bridge_data): +def send_unit_table(CONFIG, _data): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_data = { - 'unit_table': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode':'unit_table', 'secret':shared_secret, 'data': str(_data), - 'bridge_data': str(_bridge_data), - } json_object = json.dumps(sms_data, indent = 4) @@ -138,13 +137,15 @@ def send_unit_table(CONFIG, _data, _bridge_data): except requests.ConnectionError: logger.error('Config server unreachable') -def ping(CONFIG): +def ping(CONFIG, _bridge_data): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) ping_data = { - 'ping': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], - 'secret':shared_secret - + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'ping', + 'secret':shared_secret, + 'bridge_data': str(_bridge_data), + 'user_systems': str(user_systems()) } ## print(rules_check) json_object = json.dumps(ping_data, indent = 4) @@ -158,6 +159,33 @@ def ping(CONFIG): print('restart') print(sys.argv) os.execv(__file__, sys.argv) + elif 'on:' in c or 'off:' in c: + + parse = re.sub('on:|off:','', c) + data_list = parse.split(',') + iBRIDGES = copy.deepcopy(BRIDGES) +## print(parse) +## print(BRIDGES[data_list[0]]) +## print(BRIDGES[data_list[0]]) +## print(type(BRIDGES[data_list[0]])) +## print(BRIDGES[data_list[0]][1]) + n = 0 + for r in iBRIDGES[data_list[0]]: +## print(r['SYSTEM']) + if r['SYSTEM'] == data_list[1]: +## print(n) +## print(r['SYSTEM']) +## print(BRIDGES[data_list[0]][n]['SYSTEM']) +## print(BRIDGES[data_list[0]][n]['ACTIVE']) + if 'on:' in c: + BRIDGES[data_list[0]][n]['ACTIVE'] = True + BRIDGES[data_list[0]][n]['TIMER'] = time() + iBRIDGES[data_list[0]][n]['TIMEOUT'] + if 'off:' in c: + BRIDGES[data_list[0]][n]['ACTIVE'] = False + print(BRIDGES[data_list[0]][n]['ACTIVE']) + n = n + 1 + else: + print(c) ## return resp['rules'] except requests.ConnectionError: @@ -170,7 +198,8 @@ def download_rules(L_CONFIG_FILE, cli_file): user_man_url = L_CONFIG_FILE['WEB_SERVICE']['URL'] shared_secret = str(sha256(L_CONFIG_FILE['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) rules_check = { - 'get_rules':L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'get_rules', 'secret':shared_secret } ## print(rules_check) @@ -191,7 +220,8 @@ def download_config(L_CONFIG_FILE, cli_file): user_man_url = L_CONFIG_FILE['WEB_SERVICE']['URL'] shared_secret = str(sha256(L_CONFIG_FILE['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) config_check = { - 'get_config':L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'get_config', 'secret':shared_secret } json_object = json.dumps(config_check, indent = 4) @@ -540,6 +570,23 @@ def ten_loop_func(): with open(CONFIG['WEB_SERVICE']['BURN_FILE'], 'w') as f: f.write(str(download_burnlist(CONFIG))) +def user_systems(): + peer_files = os.listdir('/tmp/' + CONFIG['LOGGER']['LOG_NAME'] + '_PEERS/') + whos_where = {} + for i in peer_files: + if '.' not in i: + print(i) + data = ast.literal_eval(os.popen('cat /tmp/' + (CONFIG['LOGGER']['LOG_NAME'] + '_PEERS/' + i)).read()) +## where_list = {} + whos_where[i] = [] + for d in data.items(): + print(d[1]['call']) + whos_where[i].append(d[1]['call']) +## whos_where.append({i:d[1]['call']}) +## print(whos_where) + return whos_where +## ast.literal_eval(os.popen('cat /tmp/' + (CONFIG['LOGGER']['LOG_NAME'] + '_PEERS/' + system)).read()) + # Run this every minute for rule timer updates def rule_timer_loop(unit_flood_time): @@ -593,7 +640,7 @@ def rule_timer_loop(unit_flood_time): for unit in remove_list: del UNIT_MAP[unit] - send_unit_table(CONFIG, UNIT_MAP, BRIDGES) + send_unit_table(CONFIG, UNIT_MAP) logger.debug('Removed unit(s) %s from UNIT_MAP', remove_list) @@ -615,7 +662,7 @@ def rule_timer_loop(unit_flood_time): # run this every 10 seconds to trim orphaned stream ids def stream_trimmer_loop(): - ping(CONFIG) + ping(CONFIG, BRIDGES) logger.debug('(ROUTER) Trimming inactive stream IDs from system lists') _now = time() diff --git a/data_gateway.py b/data_gateway.py index bb09550..c4c2a07 100755 --- a/data_gateway.py +++ b/data_gateway.py @@ -319,6 +319,8 @@ def download_aprs_settings(_CONFIG): user_man_url = _CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(_CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) aprs_check = { + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'aprs_settings', 'aprs_settings':True, 'secret':shared_secret } @@ -339,6 +341,8 @@ def ping(CONFIG): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) ping_data = { + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'ping', 'ping': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], 'secret':shared_secret } @@ -364,7 +368,8 @@ def send_dash_loc(CONFIG, call, lat, lon, time, comment, dmr_id): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) loc_data = { - 'dashboard': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'dashboard', 'secret':shared_secret, 'call': call, 'lat' : lat, @@ -387,7 +392,8 @@ def send_sms_log(CONFIG, snd_call, rcv_call, msg, rcv_id, snd_id, system_name): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_data = { - 'log_sms': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'log_sms', 'secret':shared_secret, 'snd_call': snd_call, 'rcv_call': rcv_call, @@ -409,7 +415,8 @@ def send_bb(CONFIG, callsign, dmr_id, bulletin, system_name): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_data = { - 'bb_send': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'bb_send', 'secret':shared_secret, 'callsign': callsign, 'dmr_id': dmr_id, @@ -432,7 +439,8 @@ def send_mb(CONFIG, _dst_callsign, _src_callsign, message, _dst_dmr_id, _src_dmr user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) mb_data = { - 'mb_add': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'mb_add', 'secret':shared_secret, 'dst_callsign': _dst_callsign, 'src_callsign': _src_callsign, @@ -480,7 +488,8 @@ def send_unit_table(CONFIG, _data): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_data = { - 'unit_table': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'unit_table', 'secret':shared_secret, 'data': str(_data), @@ -500,7 +509,8 @@ def send_known_services(CONFIG, _data): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_data = { - 'known_services': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'known_services', 'secret':shared_secret, 'data': str(_data), @@ -520,7 +530,8 @@ def send_sms_que_req(CONFIG): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_req_data = { - 'get_sms_que': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'get_sms_que', 'secret':shared_secret, } json_object = json.dumps(sms_req_data, indent = 4) @@ -538,7 +549,8 @@ def send_sms_cmd(CONFIG, _rf_id, _cmd): user_man_url = CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) sms_cmd_data = { - 'sms_cmd': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'sms_cmd', 'secret':shared_secret, 'rf_id': _rf_id, 'cmd': _cmd, @@ -563,7 +575,8 @@ def download_config(CONFIG_FILE, cli_file): user_man_url = CONFIG_FILE['WEB_SERVICE']['URL'] shared_secret = str(sha256(CONFIG_FILE['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) config_check = { - 'get_config':CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'], + 'server': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'get_config', 'secret':shared_secret } json_object = json.dumps(config_check, indent = 4) diff --git a/docker/data_gateway/data_gateway.cfg b/docker/data_gateway/data_gateway.cfg index 8f38bb1..1fd86dc 100644 --- a/docker/data_gateway/data_gateway.cfg +++ b/docker/data_gateway/data_gateway.cfg @@ -194,7 +194,7 @@ MQTT_PASSWORD2: # Otherwise ACLs work as described in the global stanza [HBNET] MODE: OPENBRIDGE -ENABLED: True +ENABLED: False IP: PORT: 53002 NETWORK_ID: 99 diff --git a/docker/hbnet/hbnet.cfg b/docker/hbnet/hbnet.cfg index 4ff1fda..8ec9874 100755 --- a/docker/hbnet/hbnet.cfg +++ b/docker/hbnet/hbnet.cfg @@ -168,7 +168,7 @@ OTHER_OPTIONS: [DATA_GATEWAY] MODE: OPENBRIDGE -ENABLED: True +ENABLED: False IP: PORT: 53001 NETWORK_ID: 99 diff --git a/hblink.py b/hblink.py index 5e89fb8..859d6cf 100755 --- a/hblink.py +++ b/hblink.py @@ -150,6 +150,8 @@ def download_burnlist(_CONFIG): user_man_url = _CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(_CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) burn_check = { + 'server': _CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'burn_list', 'burn_list':True, 'secret':shared_secret } @@ -332,6 +334,8 @@ class HBSYSTEM(DatagramProtocol): shared_secret = str(sha256(self._CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) ## print(int(str(int_id(_id))[:7])) auth_check = { + 'server': self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'auth_check', 'secret':shared_secret, 'login_id':int(str(int_id(_id))[:7]), 'login_ip': peer_ip, @@ -354,6 +358,8 @@ class HBSYSTEM(DatagramProtocol): shared_secret = str(sha256(self._CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) #print(int(str(int_id(_id))[:7])) auth_conf = { + 'server': self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'login_conf', 'secret':shared_secret, 'login_id':int(str(int_id(_id))[:7]), 'login_ip': peer_ip, @@ -375,6 +381,8 @@ class HBSYSTEM(DatagramProtocol): user_man_url = self._CONFIG['WEB_SERVICE']['URL'] shared_secret = str(sha256(self._CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest()) peer_loc_conf = { + 'server': self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], + 'mode': 'peer_loc', 'secret':shared_secret, 'loc_callsign':re.sub("b'|'|\s\s+", '', str(call)), 'dmr_id' : int(str(int_id(_id))), diff --git a/web/app.py b/web/app.py index 6635554..71a2e91 100644 --- a/web/app.py +++ b/web/app.py @@ -1158,36 +1158,85 @@ By using this service, you agree not to do anything malicious. You agree to use def gateway_wiz_page(add_server): return render_template('data_gateway_wizard.html', server = add_server) - @app.route('/bridge_status//') + @app.route('/bridge_status//', methods=['GET', 'POST']) def bridge_tg_status(server, system): - server_bridges = Misc.query.filter_by(field_1='bridge_table_' + server).first() - BRIDGES = ast.literal_eval(server_bridges.field_2) - table_data = '' - for _bridge in BRIDGES: - for e in BRIDGES[_bridge]: - if system == e['SYSTEM']: -## print(e) - print(type(e['TIMER'])) - print(datetime.datetime.fromtimestamp(e['TIMER'])) - print() - if time.time() <= e['TIMER']: - exp = ''' -
- On
''' + str(datetime.datetime.fromtimestamp(e['TIMER'])).strftime(time_format) + ''' -
-''' - elif time.time() > e['TIMER']: - exp = ''' -
- Off -
-''' - table_data = table_data + '' + _bridge + '' + str(int_id(e['TGID'])) + '' + exp + '' - -## print(str((timedelta(seconds=e['TIMER']) + datetime.datetime.fromtimestamp(e['TIMER'])).strftime(time_format))) - - - return render_template('bridge_status.html', table_data = Markup(table_data), server = server, system = system) + if request.args.get('change'): +## connected = Misc.query.filter_by(field_1='user_system_table_' + server).first() +## connected_list = ast.literal_eval(connected.field_2) +#### print(connected_list[system]) +## for i in connected_list[system]: +## print(i) +## if str(current_user.username).upper() == i.upper(): +## print('yay') +#### if current_user.username + try: +## if current_user.has_roles('Admin'): + cl = Misc.query.filter_by(field_1=request.args.get('server') + '_command_list').first() + cmd_lst = ast.literal_eval(cl.field_2) +## print('--') + print(cmd_lst) + except: + cmd_lst = [] + misc_add(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) + +## if request.args.get('server_command') == 'restart': +## cmd_lst.append('restart') +## elif request.args.get('server_command') == '2': +## cmd_lst.append('2') + cmd_lst.append(request.args.get('change')) +## print(cmd_lst) + content = '''

Changes qued.

+

Redirecting in 3 seconds.

+''' + misc_edit_field_1(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) +## misc_add(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) + return render_template('flask_user_layout.html', markup_content = Markup(content)) + else: + connected = Misc.query.filter_by(field_1='user_system_table_' + server).first() + connected_list = ast.literal_eval(connected.field_2) +## print(connected_list[system]) + for i in connected_list[system]: + print(i) + if str(current_user.username).upper() == i.upper() or current_user.has_roles('Admin'): + server_bridges = Misc.query.filter_by(field_1='bridge_table_' + server).first() + BRIDGES = ast.literal_eval(server_bridges.field_2) + table_data = '' + for _bridge in BRIDGES: + for e in BRIDGES[_bridge]: + if system == e['SYSTEM']: + ## print(e) + ## print(type(e['TIMER'])) + ## print(datetime.datetime.fromtimestamp(e['TIMER'])) + ## print() + ## if time.time() <= e['TIMER']: + ## print(e) + if e['ACTIVE']: + change_button = '' + exp_time = 'Expires: ' + str(datetime.datetime.fromtimestamp(e['TIMER']).strftime(time_format)) + if time.time() > e['TIMER']: + exp_time = '' + exp = ''' +
+ On
''' + exp_time + ''' +
+ ''' + ## elif time.time() > e['TIMER']: + elif not e['ACTIVE']: + change_button = '' + exp = ''' +
+ Off +
+ ''' + table_data = table_data + '' + _bridge + '' + str(int_id(e['TGID'])) + '' + exp + '' + change_button + '' + + return render_template('bridge_status.html', table_data = Markup(table_data), server = server, system = system) + else: + content = '''

Not Authorized.

+

Redirecting in 3 seconds.

+''' +## misc_add(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) + return render_template('flask_user_layout.html', markup_content = Markup(content)) @app.route('/generate_passphrase/pi-star', methods = ['GET']) @login_required @@ -1257,8 +1306,6 @@ By using this service, you agree not to do anything malicious. You agree to use svr_status = '''
Unknown Condition
''' - print(ping_list) - print(time.time()) except: svr_status = '''
Unknown @@ -1266,6 +1313,25 @@ By using this service, you agree not to do anything malicious. You agree to use if i.ip == '': pass else: + connected = Misc.query.filter_by(field_1='user_system_table_' + i.name).first() + connected_list = ast.literal_eval(connected.field_2) +## print(connected_list) + clients = 'Self-care: ' + for s in connected_list.items(): + for t in s[1]: + if str(current_user.username).upper() == t.upper(): + clients = clients + '''\n''' +## client_menu = ''' +## +##''' + tool_menu = '''
@@ -4820,10 +4888,11 @@ Name: ''' + p.name + '''  -  Port: ''' + str( cmd_lst = [] misc_add(request.args.get('server') + '_command_list', str(cmd_lst), '', '', 0, 0, 0, 0, False, False) - if request.args.get('server_command') == 'restart': - cmd_lst.append('restart') - elif request.args.get('server_command') == '2': - cmd_lst.append('2') +## if request.args.get('server_command') == 'restart': +## cmd_lst.append('restart') +## elif request.args.get('server_command') == '2': +## cmd_lst.append('2') + cmd_lst.append(request.args.get('server_command')) print(cmd_lst) content = '''

Command qued.

Redirecting in 3 seconds.

@@ -7550,28 +7619,46 @@ Name: ''' + p.name + '''  -  Port: ''' + str( @app.route('/svr', methods=['POST']) def svr_endpoint(): hblink_req = request.json - print((hblink_req)) +## print((hblink_req)) # 'd3967357e0b5788a03a1a61acefa72af8d2dbfe282d8718809f90fcc6f4aca41' = DATA_GATEWAY if hblink_req['secret'] in shared_secrets() or hblink_req['secret'] == 'd3967357e0b5788a03a1a61acefa72af8d2dbfe282d8718809f90fcc6f4aca41' and mode == 'DASH_ONLY': - try: - if hblink_req['ping']: - pl = Misc.query.filter_by(field_1='ping_list').first() - ping_list = ast.literal_eval(pl.field_2) - ping_list[hblink_req['ping']] = time.time() - misc_edit_field_1('ping_list', str(ping_list), '', '', 0, 0, 0, 0, True, True) - try: - cl = Misc.query.filter_by(field_1=hblink_req['ping'] + '_command_list').first() - cmd_lst = ast.literal_eval(cl.field_2) - delete_misc_field_1(hblink_req['ping'] + '_command_list') +## try: +## print(hblink_req) + if hblink_req['mode'] == 'ping': + print(hblink_req['user_systems']) + try: + misc_edit_field_1('bridge_table_' + hblink_req['server'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) + misc_edit_field_1('user_system_table_' + hblink_req['server'], str(hblink_req['user_systems']), '', '', 0, 0, 0, 0, False, False) + +## delete_misc_field_1('bridge_table_' + hblink_req['ping']) + +## delete_misc_field_1('user_system_table_' + hblink_req['ping']) + +## misc_add('bridge_table_' + hblink_req['ping'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) + +## misc_add('user_system_table_' + hblink_req['ping'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) +## print('responsa') + except: + misc_add('bridge_table_' + hblink_req['server'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) + misc_add('user_system_table_' + hblink_req['server'], str(hblink_req['user_systems']), '', '', 0, 0, 0, 0, False, False) + + pl = Misc.query.filter_by(field_1='ping_list').first() + ping_list = ast.literal_eval(pl.field_2) + ping_list[hblink_req['server']] = time.time() + misc_edit_field_1('ping_list', str(ping_list), '', '', 0, 0, 0, 0, True, True) + try: + cl = Misc.query.filter_by(field_1=hblink_req['server'] + '_command_list').first() + cmd_lst = ast.literal_eval(cl.field_2) + delete_misc_field_1(hblink_req['server'] + '_command_list') - except: - cmd_lst = [] - - response = jsonify( - commands=cmd_lst - ) - except: - pass + except: + cmd_lst = [] + + response = jsonify( + commands=cmd_lst + ) +## except: +## pass if 'login_id' in hblink_req and 'login_confirmed' not in hblink_req: if type(hblink_req['login_id']) == int: if authorized_peer(hblink_req['login_id'])[0]: @@ -7640,16 +7727,16 @@ Name: ''' + p.name + '''  -  Port: ''' + str( response = jsonify( logged=True ) - elif 'burn_list' in hblink_req: # ['burn_list']: # == 'burn_list': + elif hblink_req['mode'] == 'burn_list': # ['burn_list']: # == 'burn_list': response = jsonify( burn_list=get_burnlist() ) - elif 'aprs_settings' in hblink_req: # ['burn_list']: # == 'burn_list': + elif hblink_req['mode'] == 'aprs_settings': # ['burn_list']: # == 'burn_list': ## print(get_aprs_settings()) response = jsonify( aprs_settings=get_aprs_settings() ) - elif 'loc_callsign' in hblink_req: + elif hblink_req['mode'] == 'loc_callsign': if hblink_req['lat'] == '*' and hblink_req['lon'] == '*': ## del peer_locations[hblink_req['dmr_id']] del_peer_loc(hblink_req['dmr_id']) @@ -7660,21 +7747,21 @@ Name: ''' + p.name + '''  -  Port: ''' + str( peer_loc_add(hblink_req['loc_callsign'], hblink_req['lat'], hblink_req['lon'], hblink_req['description'], hblink_req['dmr_id'], '', '', hblink_req['url'], hblink_req['software'], hblink_req['loc']) print(PeerLoc.query.all()) response = '' - elif 'dashboard' in hblink_req: + elif hblink_req['mode'] == 'dashboard': if 'lat' in hblink_req: # Assuming this is a GPS loc dash_loc_add(hblink_req['call'], hblink_req['lat'], hblink_req['lon'], hblink_req['comment'], hblink_req['dmr_id'], hblink_req['dashboard']) trim_dash_loc() response = 'yes' - elif 'log_sms' in hblink_req: + elif hblink_req['mode'] == 'log_sms': sms_log_add(hblink_req['snd_call'], hblink_req['rcv_call'], hblink_req['message'], hblink_req['snd_id'], hblink_req['rcv_id'], hblink_req['log_sms'], hblink_req['system_name']) trim_sms_log() response = 'rcvd' - elif 'bb_send' in hblink_req: + elif hblink_req['mode'] == 'bb_send': bb_add(hblink_req['callsign'], hblink_req['bulletin'], hblink_req['dmr_id'], hblink_req['bb_send'], hblink_req['system_name']) trim_bb() response = 'rcvd' - elif 'mb_add' in hblink_req: + elif hblink_req['mode'] == 'mb_add': if hblink_req['dst_callsign'] == 'admins': admins = UserRoles.query.filter_by(role_id=2).all() print(admins) @@ -7692,20 +7779,21 @@ Name: ''' + p.name + '''  -  Port: ''' + str( # del_ss(hblink_req['dmr_id']) # ss_add(hblink_req['callsign'], str(hblink_req['message']), hblink_req['dmr_id']) # response = 'rcvd' - elif 'unit_table' in hblink_req: + elif hblink_req['mode'] == 'unit_table': ## del_unit_table(hblink_req['unit_table']) try: - delete_misc_field_1('unit_table_' + hblink_req['unit_table']) + delete_misc_field_1('unit_table_' + hblink_req['server']) misc_add('unit_table_' + hblink_req['unit_table'], str(hblink_req['data']), '', '', 0, 0, 0, 0, False, False) - delete_misc_field_1('bridge_table_' + hblink_req['unit_table']) - misc_add('bridge_table_' + hblink_req['unit_table'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) +## delete_misc_field_1('bridge_table_' + hblink_req['unit_table']) +## misc_add('bridge_table_' + hblink_req['unit_table'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) +## misc_edit_field_1('bridge_table_' + hblink_req['unit_table'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) except: print('entry error') - misc_add('unit_table_' + hblink_req['unit_table'], str(hblink_req['data']), '', '', 0, 0, 0, 0, False, False) - misc_add('bridge_table_' + hblink_req['unit_table'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) + misc_add('unit_table_' + hblink_req['server'], str(hblink_req['data']), '', '', 0, 0, 0, 0, False, False) +## misc_add('bridge_table_' + hblink_req['unit_table'], str(hblink_req['bridge_data']), '', '', 0, 0, 0, 0, False, False) ## unit_table_add(hblink_req['data']) response = 'rcvd' - elif 'known_services' in hblink_req: + elif hblink_req['mode'] == 'known_services': print(hblink_req) ## del_unit_table(hblink_req['unit_table']) try: @@ -7718,34 +7806,34 @@ Name: ''' + p.name + '''  -  Port: ''' + str( response = 'rcvd' - elif 'get_config' in hblink_req: - if hblink_req['get_config']: + elif hblink_req['mode'] == 'get_config': +## if hblink_req['get_config']: ## active_tgs[hblink_req['get_config']] = {} - pl = Misc.query.filter_by(field_1='ping_list').first() - ping_list = ast.literal_eval(pl.field_2) - - ping_list[hblink_req['get_config']] = time.time() - - misc_edit_field_1('ping_list', str(ping_list), '', '', 0, 0, 0, 0, True, True) + pl = Misc.query.filter_by(field_1='ping_list').first() + ping_list = ast.literal_eval(pl.field_2) + + ping_list[hblink_req['server']] = time.time() + + misc_edit_field_1('ping_list', str(ping_list), '', '', 0, 0, 0, 0, True, True) ## print(active_tgs) - ## try: +## try: ## print(get_peer_configs(hblink_req['get_config'])) ## print(masters_get(hblink_req['get_config'])) - response = jsonify( - config=server_get(hblink_req['get_config']), - peers=get_peer_configs(hblink_req['get_config']), - masters=masters_get(hblink_req['get_config']), - ## OBP=get_OBP(hblink_req['get_config']) + response = jsonify( + config=server_get(hblink_req['server']), + peers=get_peer_configs(hblink_req['server']), + masters=masters_get(hblink_req['server']), +## OBP=get_OBP(hblink_req['get_config']) - ) - ## except: - ## message = jsonify(message='Config error') - ## response = make_response(message, 401) + ) +## except: +## message = jsonify(message='Config error') +## response = make_response(message, 401) - elif 'get_sms_que' in hblink_req: + elif hblink_req['mode'] == 'get_sms_que': if hblink_req['get_sms_que']: q = sms_que(hblink_req['get_sms_que']) @@ -7753,7 +7841,7 @@ Name: ''' + p.name + '''  -  Port: ''' + str( que=q ) sms_que_purge(hblink_req['get_sms_que']) - elif 'sms_cmd' in hblink_req: + elif hblink_req['mode'] == 'sms_cmd': ## print(get_aprs_settings()) if hblink_req['sms_cmd']: split_cmd = str(hblink_req['cmd']).split(' ') @@ -7829,13 +7917,14 @@ Name: ''' + p.name + '''  -  Port: ''' + str( ## OBP=get_OBP(hblink_req['get_config']) ) - elif 'get_rules' in hblink_req: - if hblink_req['get_rules']: # == 'burn_list': + elif hblink_req['mode'] == 'get_rules': +## if hblink_req['get_rules']: # == 'burn_list': ## try: - response = jsonify( - rules=generate_rules(hblink_req['get_rules']), - ) + response = jsonify( + rules=generate_rules(hblink_req['server']), + ) + else: message = jsonify(message='Authentication error') diff --git a/web/templates/bridge_status.html b/web/templates/bridge_status.html index be97fff..445bd84 100644 --- a/web/templates/bridge_status.html +++ b/web/templates/bridge_status.html @@ -7,7 +7,7 @@

{{server}}/{{system}}



-

Updated every minute.

+

Updated every 10 seconds.

@@ -16,6 +16,7 @@ +
Name TG StatusOptions