From 958bfd7335ee114fc0aae266adc297a6c3635979 Mon Sep 17 00:00:00 2001 From: n0mjs710 Date: Wed, 9 Jan 2019 09:51:04 -0600 Subject: [PATCH] use constsants instead of individual bytes objects for DMRD --- bridge.py | 1 - hblink.py | 19 +++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/bridge.py b/bridge.py index d0656fe..9045332 100755 --- a/bridge.py +++ b/bridge.py @@ -720,7 +720,6 @@ class bridgeReportFactory(reportFactory): def send_bridgeEvent(self, _data): if isinstance(_data, str): - print('bridge event was a string') #_data = _data.decode('utf-8', error='ignore') self.send_clients(REPORT_OPCODES['BRDG_EVENT']+_data) diff --git a/hblink.py b/hblink.py index 92e2669..f2efbba 100755 --- a/hblink.py +++ b/hblink.py @@ -117,7 +117,7 @@ class OPENBRIDGE(DatagramProtocol): logger.info('(%s) is mode OPENBRIDGE. No De-Registration required, continuing shutdown', self._system) def send_system(self, _packet): - if _packet[:4] == 'DMRD': + if _packet[:4] == DMRD: #_packet = _packet[:11] + self._config['NETWORK_ID'] + _packet[15:] _packet = b''.join([_packet[:11], self._config['NETWORK_ID'], _packet[15:]]) #_packet += hmac_new(self._config['PASSPHRASE'],_packet,sha1).digest() @@ -126,7 +126,7 @@ class OPENBRIDGE(DatagramProtocol): # KEEP THE FOLLOWING COMMENTED OUT UNLESS YOU'RE DEBUGGING DEEPLY!!!! # logger.debug('(%s) TX Packet to OpenBridge %s:%s -- %s', self._system, self._config['TARGET_IP'], self._config['TARGET_PORT'], ahex(_packet)) else: - logger.error('(%s) OpenBridge system was asked to send non DMRD packet', self._system) + logger.error('(%s) OpenBridge system was asked to send non DMRD packet: %s', self._system, _packet) def dmrd_received(self, _peer_id, _rf_src, _dst_id, _seq, _slot, _call_type, _frame_type, _dtype_vseq, _stream_id, _data): pass @@ -136,7 +136,7 @@ class OPENBRIDGE(DatagramProtocol): # Keep This Line Commented Unless HEAVILY Debugging! #logger.debug('(%s) RX packet from %s -- %s', self._system, _sockaddr, ahex(_packet)) - if _packet[:4] == b'DMRD': # DMRData -- encapsulated DMR data frame + if _packet[:4] == DMRD: # DMRData -- encapsulated DMR data frame _data = _packet[:53] _hash = _packet[53:] _ckhs = hmac_new(self._config['PASSPHRASE'],_data,sha1).digest() @@ -270,14 +270,14 @@ class HBSYSTEM(DatagramProtocol): #logger.debug('(%s) Packet sent to peer %s', self._system, self._peers[_peer]['RADIO_ID']) def send_peer(self, _peer, _packet): - if _packet[:4] == 'DMRD': + if _packet[:4] == DMRD: _packet = b''.join([_packet[:11], _peer, _packet[15:]]) self.transport.write(_packet, self._peers[_peer]['SOCKADDR']) # KEEP THE FOLLOWING COMMENTED OUT UNLESS YOU'RE DEBUGGING DEEPLY!!!! #logger.debug('(%s) TX Packet to %s on port %s: %s', self._peers[_peer]['RADIO_ID'], self._peers[_peer]['IP'], self._peers[_peer]['PORT'], ahex(_packet)) def send_master(self, _packet): - if _packet[:4] == b'DMRD': + if _packet[:4] == DMRD: _packet = b''.join([_packet[:11], self._config['RADIO_ID'], _packet[15:]]) self.transport.write(_packet, self._config['MASTER_SOCKADDR']) # KEEP THE FOLLOWING COMMENTED OUT UNLESS YOU'RE DEBUGGING DEEPLY!!!! @@ -303,7 +303,7 @@ class HBSYSTEM(DatagramProtocol): # Extract the command, which is various length, all but one 4 significant characters -- RPTCL _command = _data[:4] - if _command == b'DMRD': # DMRData -- encapsulated DMR data frame + if _command == DMRD: # DMRData -- encapsulated DMR data frame _peer_id = _data[11:15] if _peer_id in self._peers \ and self._peers[_peer_id]['CONNECTION'] == 'YES' \ @@ -508,8 +508,8 @@ class HBSYSTEM(DatagramProtocol): if self._config['MASTER_SOCKADDR'] == _sockaddr: # Extract the command, which is various length, but only 4 significant characters _command = _data[:4] - if _command == b'DMRD': # DMRData -- encapsulated DMR data frame - + if _command == DMRD: # DMRData -- encapsulated DMR data frame + _peer_id = _data[11:15] if self._config['LOOSE'] or _peer_id == self._config['RADIO_ID']: # Validate the Radio_ID unless using loose validation _seq = _data[4:5] @@ -528,7 +528,7 @@ class HBSYSTEM(DatagramProtocol): _dtype_vseq = (_bits & 0xF) # data, 1=voice header, 2=voice terminator; voice, 0=burst A ... 5=burst F _stream_id = _data[16:20] #logger.debug('(%s) DMRD - Sequence: %s, RF Source: %s, Destination ID: %s', self._system, int_id(_seq), int_id(_rf_src), int_id(_dst_id)) - + # ACL Processing if self._CONFIG['GLOBAL']['USE_ACL']: if not acl_check(_rf_src, self._CONFIG['GLOBAL']['SUB_ACL']): @@ -747,7 +747,6 @@ if __name__ == '__main__': import os import signal - # Change the current directory to the location of the application os.chdir(os.path.dirname(os.path.realpath(sys.argv[0])))