Fix embedded protocol version handling

master
Simon 1 month ago
parent c2c7e654cb
commit af0e1faf4d

@ -390,7 +390,6 @@ class OPENBRIDGE(DatagramProtocol):
_ber = _packet[53:54] _ber = _packet[53:54]
_rssi = _packet[54:55] _rssi = _packet[54:55]
_embedded_version = _packet[55] _embedded_version = _packet[55]
self._config['VER'] = _embedded_version
_timestamp = _packet[56:64] _timestamp = _packet[56:64]
_source_server = _packet[64:68] _source_server = _packet[64:68]
_source_rptr = _packet[68:72] _source_rptr = _packet[68:72]
@ -408,7 +407,6 @@ class OPENBRIDGE(DatagramProtocol):
_ber = _packet[53:54] _ber = _packet[53:54]
_rssi = _packet[54:55] _rssi = _packet[54:55]
_embedded_version = _packet[55] _embedded_version = _packet[55]
self._config['VER'] = _embedded_version
_timestamp = _packet[56:64] _timestamp = _packet[56:64]
_source_server = _packet[64:68] _source_server = _packet[64:68]
_source_rptr = b'\x00\x00\x00\x00' _source_rptr = b'\x00\x00\x00\x00'
@ -423,6 +421,13 @@ class OPENBRIDGE(DatagramProtocol):
_stream_id = _data[16:20] _stream_id = _data[16:20]
if compare_digest(_hash, _ckhs) and (_sockaddr == self._config['TARGET_SOCK'] or self._config['RELAX_CHECKS']): if compare_digest(_hash, _ckhs) and (_sockaddr == self._config['TARGET_SOCK'] or self._config['RELAX_CHECKS']):
if _embedded_version == 2 or _embedded_version == 3 or _embedded_version > 5:
logger.info('(%s) FreeBridge embedded packet version not supported, Ver: %s', self._system, _embedded_version)
return
elif _embedded_version > self._config['VER']:
logger.info('(%s) FreeBridge embedded packet version upgrade, Ver: %s', self._system, _embedded_version)
self._config['VER'] = _embedded_version
_peer_id = _data[11:15] _peer_id = _data[11:15]
if self._config['NETWORK_ID'] != _peer_id: if self._config['NETWORK_ID'] != _peer_id:
if _stream_id not in self._laststrid: if _stream_id not in self._laststrid:

Loading…
Cancel
Save

Powered by TurnKey Linux.