From 4d2b8f349a770955787ad1c2ed572567afe8b6bb Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 12 Dec 2022 23:44:25 +0000 Subject: [PATCH] flkflk --- FreeDMR-SAMPLE.cfg | 13 +++-------- a | 0 hblink.py | 56 +++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 54 insertions(+), 15 deletions(-) create mode 100644 a diff --git a/FreeDMR-SAMPLE.cfg b/FreeDMR-SAMPLE.cfg index c82238d..8811aa9 100755 --- a/FreeDMR-SAMPLE.cfg +++ b/FreeDMR-SAMPLE.cfg @@ -12,6 +12,7 @@ ALLOW_NULL_PASSPHRASE: True ANNOUNCEMENT_LANGUAGES: en_GB,en_US,es_ES,fr_FR,de_DE,dk_DK,it_IT,no_NO,pl_PL,se_SE,pt_PT,cy_GB,el_GR,CW SERVER_ID: 0000 DATA_GATEWAY: False +VALIDATE_SERVER_IDS: True [REPORTS] @@ -22,7 +23,7 @@ REPORT_CLIENTS: 127.0.0.1 [LOGGER] LOG_FILE: freedmr.log -LOG_HANDLERS: file-timed +LOG_HANDLERS: console-timed LOG_LEVEL: INFO LOG_NAME: FreeDMR @@ -51,15 +52,6 @@ SERVER: my.asl.server PORT: 5038 NODE: 0000 -[MYSQL] -USE_MYSQL: False -USER: hblink -PASS: mypassword -DB: hblink -SERVER: 127.0.0.1 -PORT: 3306 -TABLE: repeaters - [OBP-TEST] MODE: OPENBRIDGE ENABLED: False @@ -101,3 +93,4 @@ ANNOUNCEMENT_LANGUAGE: en_GB GENERATOR: 100 ALLOW_UNREG_ID: False PROXY_CONTROL: True +OVERRIDE_IDENT_TG: diff --git a/a b/a new file mode 100644 index 0000000..e69de29 diff --git a/hblink.py b/hblink.py index f75c0fb..6f3eacc 100755 --- a/hblink.py +++ b/hblink.py @@ -62,6 +62,7 @@ import ssl from os.path import isfile, getmtime from urllib.request import urlopen +import shutil import csv @@ -1452,14 +1453,27 @@ def mk_aliases(_config): peer_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['PEER_FILE']) except Exception as e: logger.error('(ALIAS) ID ALIAS MAPPER: problem with data in peer_ids dictionary, not updating: %s',e) + try: + peer_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['PEER_FILE'] + '.bak') + except Exception as f: + logger.error('(ALIAS) ID ALIAS MAPPER: Tried backup peer_ids file, but couldn\'t load that either: %s',f) + else: if peer_ids: logger.info('(ALIAS) ID ALIAS MAPPER: peer_ids dictionary is available') + try: + shutil.copy(_config['ALIASES']['PATH'] + _config['ALIASES']['PEER_FILE'],_config['ALIASES']['PATH'] + _config['ALIASES']['PEER_FILE'] + '.bak') + except IOError as g: + logger.info('(ALIAS) ID ALIAS MAPPER: couldn\'t make backup copy of peer_ids file %s',g) try: subscriber_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['SUBSCRIBER_FILE']) except Exception as e: logger.info('(ALIAS) ID ALIAS MAPPER: problem with data in subscriber_ids dictionary, not updating: %s',e) + try: + subscriber_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['PEER_FILE'] + '.bak') + except Exception as f: + logger.error('(ALIAS) ID ALIAS MAPPER: Tried backup subscriber_ids file, but couldn\'t load that either: %s',f) else: #Add special IDs to DB subscriber_ids[900999] = 'D-APRS' @@ -1467,26 +1481,58 @@ def mk_aliases(_config): if subscriber_ids: logger.info('(ALIAS) ID ALIAS MAPPER: subscriber_ids dictionary is available') + try: + shutil.copy(_config['ALIASES']['PATH'] + _config['ALIASES']['SUBSCRIBER_FILE'],_config['ALIASES']['PATH'] + _config['ALIASES']['SUBSCRIBER_FILE'] + '.bak') + except IOError as g: + logger.info('(ALIAS) ID ALIAS MAPPER: couldn\'t make backup copy of subscriber_ids file %s',g) + try: talkgroup_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['TGID_FILE']) except Exception as e: logger.info('(ALIAS) ID ALIAS MAPPER: problem with data in talkgroup_ids dictionary, not updating: %s',e) + try: + talkgroup_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['PEER_FILE'] + '.bak') + except Exception as f: + logger.error('(ALIAS) ID ALIAS MAPPER: Tried backup talkgroup_ids file, but couldn\'t load that either: %s',f) else: if talkgroup_ids: logger.info('(ALIAS) ID ALIAS MAPPER: talkgroup_ids dictionary is available') - try: + try: + shutil.copy(_config['ALIASES']['PATH'] + _config['ALIASES']['TGID_FILE'],_config['ALIASES']['PATH'] + _config['ALIASES']['TGID_FILE'] + '.bak') + except IOError as g: + logger.info('(ALIAS) ID ALIAS MAPPER: couldn\'t make backup copy of talkgroup_ids file %s',g) + + try: local_subscriber_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['LOCAL_SUBSCRIBER_FILE']) except Exception as e: logger.info('(ALIAS) ID ALIAS MAPPER: problem with data in local_subscriber_ids dictionary, not updating: %s',e) + try: + local_subscriber_ids = mk_id_dict(_config['ALIASES']['PATH'], _config['ALIASES']['PEER_FILE'] + '.bak') + except Exception as f: + logger.error('(ALIAS) ID ALIAS MAPPER: Tried backup local_subscriber_ids file, but couldn\'t load that either: %s',f) else: - if subscriber_ids: + if local_subscriber_ids: logger.info('(ALIAS) ID ALIAS MAPPER: local_subscriber_ids dictionary is available') - try: + try: + shutil.copy(_config['ALIASES']['PATH'] + _config['ALIASES']['LOCAL_SUBSCRIBER_FILE'],_config['ALIASES']['PATH'] + _config['ALIASES']['LOCAL_SUBSCRIBER_FILE'] + '.bak') + except IOError as g: + logger.info('(ALIAS) ID ALIAS MAPPER: couldn\'t make backup copy of local_subscriber_ids file %s',g) + + try: server_ids = mk_server_dict(_config['ALIASES']['PATH'], _config['ALIASES']['SERVER_ID_FILE']) except Exception as e: logger.info('(ALIAS) ID ALIAS MAPPER: problem with data in server_ids dictionary, not updating: %s',e) - if server_ids: - logger.info('(ALIAS) ID ALIAS MAPPER: server_ids dictionary is available') + try: + server_ids = mk_server_dict(_config['ALIASES']['PATH'], _config['ALIASES']['SERVER_ID_FILE'] + '.bak') + except Exception as f: + logger.error('(ALIAS) ID ALIAS MAPPER: Tried backup server_ids file, but couldn\'t load that either: %s',f) + else: + if server_ids: + logger.info('(ALIAS) ID ALIAS MAPPER: server_ids dictionary is available') + try: + shutil.copy(_config['ALIASES']['PATH'] + _config['ALIASES']['SERVER_ID_FILE'],_config['ALIASES']['PATH'] + _config['ALIASES']['SERVER_ID_FILE'] + '.bak') + except IOError as g: + logger.info('(ALIAS) ID ALIAS MAPPER: couldn\'t make backup copy of server_ids file %s',g) return peer_ids, subscriber_ids, talkgroup_ids, local_subscriber_ids, server_ids