Re-add needed code removed when diffing to restore XLX
This commit is contained in:
parent
4b9864671e
commit
951f39f3db
@ -182,8 +182,8 @@ def build_config(_config_file):
|
|||||||
'SOFTWARE_ID': bytes(config.get(section, 'SOFTWARE_ID').ljust(40)[:40], 'utf-8'),
|
'SOFTWARE_ID': bytes(config.get(section, 'SOFTWARE_ID').ljust(40)[:40], 'utf-8'),
|
||||||
'PACKAGE_ID': bytes(config.get(section, 'PACKAGE_ID').ljust(40)[:40], 'utf-8'),
|
'PACKAGE_ID': bytes(config.get(section, 'PACKAGE_ID').ljust(40)[:40], 'utf-8'),
|
||||||
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
'GROUP_HANGTIME': config.getint(section, 'GROUP_HANGTIME'),
|
||||||
'OPTIONS': bytes(config.get(section, 'OPTIONS'), 'utf-8'),
|
'OPTIONS': b''.join([b'Type=HBlink;', bytes(config.get(section, 'OPTIONS'), 'utf-8')]),
|
||||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||||
'TG1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
'TG1_ACL': config.get(section, 'TGID_TS1_ACL'),
|
||||||
'TG2_ACL': config.get(section, 'TGID_TS2_ACL')
|
'TG2_ACL': config.get(section, 'TGID_TS2_ACL')
|
||||||
@ -274,6 +274,7 @@ def build_config(_config_file):
|
|||||||
'TARGET_SOCK': (gethostbyname(config.get(section, 'TARGET_IP')), config.getint(section, 'TARGET_PORT')),
|
'TARGET_SOCK': (gethostbyname(config.get(section, 'TARGET_IP')), config.getint(section, 'TARGET_PORT')),
|
||||||
'TARGET_IP': gethostbyname(config.get(section, 'TARGET_IP')),
|
'TARGET_IP': gethostbyname(config.get(section, 'TARGET_IP')),
|
||||||
'TARGET_PORT': config.getint(section, 'TARGET_PORT'),
|
'TARGET_PORT': config.getint(section, 'TARGET_PORT'),
|
||||||
|
'BOTH_SLOTS': config.getboolean(section, 'BOTH_SLOTS'),
|
||||||
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
'USE_ACL': config.getboolean(section, 'USE_ACL'),
|
||||||
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
'SUB_ACL': config.get(section, 'SUB_ACL'),
|
||||||
'TG1_ACL': config.get(section, 'TGID_ACL'),
|
'TG1_ACL': config.get(section, 'TGID_ACL'),
|
||||||
|
@ -120,7 +120,9 @@ STALE_DAYS: 7
|
|||||||
#
|
#
|
||||||
# ACLs:
|
# ACLs:
|
||||||
# OpenBridge does not 'register', so registration ACL is meaningless.
|
# OpenBridge does not 'register', so registration ACL is meaningless.
|
||||||
# OpenBridge passes all traffic on TS1, so there is only 1 TGID ACL.
|
# Proper OpenBridge passes all traffic on TS1.
|
||||||
|
# HBlink can extend OPB to use both slots for unit calls only.
|
||||||
|
# Setting "BOTH_SLOTS" True ONLY affects unit traffic!
|
||||||
# Otherwise ACLs work as described in the global stanza
|
# Otherwise ACLs work as described in the global stanza
|
||||||
[OBP-1]
|
[OBP-1]
|
||||||
MODE: OPENBRIDGE
|
MODE: OPENBRIDGE
|
||||||
@ -131,6 +133,7 @@ NETWORK_ID: 3129100
|
|||||||
PASSPHRASE: password
|
PASSPHRASE: password
|
||||||
TARGET_IP: 1.2.3.4
|
TARGET_IP: 1.2.3.4
|
||||||
TARGET_PORT: 62035
|
TARGET_PORT: 62035
|
||||||
|
BOTH_SLOTS: True
|
||||||
USE_ACL: True
|
USE_ACL: True
|
||||||
SUB_ACL: DENY:1
|
SUB_ACL: DENY:1
|
||||||
TGID_ACL: PERMIT:ALL
|
TGID_ACL: PERMIT:ALL
|
||||||
|
13
hblink.py
13
hblink.py
@ -519,6 +519,18 @@ class HBSYSTEM(DatagramProtocol):
|
|||||||
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
|
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
|
||||||
logger.warning('(%s) Ping from Radio ID that is not logged in: %s', self._system, int_id(_peer_id))
|
logger.warning('(%s) Ping from Radio ID that is not logged in: %s', self._system, int_id(_peer_id))
|
||||||
|
|
||||||
|
elif _command == RPTO:
|
||||||
|
_peer_id = _data[4:8]
|
||||||
|
if _peer_id in self._peers \
|
||||||
|
and self._peers[_peer_id]['CONNECTION'] == 'YES' \
|
||||||
|
and self._peers[_peer_id]['SOCKADDR'] == _sockaddr:
|
||||||
|
logger.info('(%s) Peer %s (%s) has send options: %s', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_peer_id), _data[8:])
|
||||||
|
self.transport.write(b''.join([RPTACK, _peer_id]), _sockaddr)
|
||||||
|
|
||||||
|
elif _command == DMRA:
|
||||||
|
_peer_id = _data[4:8]
|
||||||
|
logger.info('(%s) Recieved DMR Talker Alias from peer %s, subscriber %s', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_rf_src))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logger.error('(%s) Unrecognized command. Raw HBP PDU: %s', self._system, ahex(_data))
|
logger.error('(%s) Unrecognized command. Raw HBP PDU: %s', self._system, ahex(_data))
|
||||||
|
|
||||||
@ -648,6 +660,7 @@ class HBSYSTEM(DatagramProtocol):
|
|||||||
self._stats['CONNECTION'] = 'YES'
|
self._stats['CONNECTION'] = 'YES'
|
||||||
self._stats['CONNECTED'] = time()
|
self._stats['CONNECTED'] = time()
|
||||||
logger.info('(%s) Connection to Master Completed', self._system)
|
logger.info('(%s) Connection to Master Completed', self._system)
|
||||||
|
|
||||||
# If we are an XLX, send the XLX module request here.
|
# If we are an XLX, send the XLX module request here.
|
||||||
if self._config['MODE'] == 'XLXPEER':
|
if self._config['MODE'] == 'XLXPEER':
|
||||||
self.send_xlxmaster(self._config['RADIO_ID'], int(4000), self._config['MASTER_SOCKADDR'])
|
self.send_xlxmaster(self._config['RADIO_ID'], int(4000), self._config['MASTER_SOCKADDR'])
|
||||||
|
Loading…
Reference in New Issue
Block a user