You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How it currently works: There is 1 segmentation array per instance of this library. If a segment is missed, _lastSequenceNumber can get stuck at a non-zero value and subsequent segment ACKs will NACK due to a mis-match in state. Also, if multiple segments are being received at the same time, the library can get confused
Minor fix: Reset _lastSequenceNumber based upon APDU timeout expiring on the last received segment. This avoids the library getting stuck in a bad state
Proper fix: Each segmented/fragmented response should be stored in a temporary array indexed on the following :
per device address (ideally w/ routing support)
per device invoke id / sequence number
Array should be cleaned up either on successful reassembly or APDU timeout of the first request and/or of the last valid segment
The text was updated successfully, but these errors were encountered:
Node BACstack Version: xxx.13 / PR131
Issue: Segmentation handling could use some TLC
How it currently works: There is 1 segmentation array per instance of this library. If a segment is missed,
_lastSequenceNumber
can get stuck at a non-zero value and subsequent segment ACKs will NACK due to a mis-match in state. Also, if multiple segments are being received at the same time, the library can get confusedMinor fix: Reset
_lastSequenceNumber
based upon APDU timeout expiring on the last received segment. This avoids the library getting stuck in a bad stateProper fix: Each segmented/fragmented response should be stored in a temporary array indexed on the following :
Array should be cleaned up either on successful reassembly or APDU timeout of the first request and/or of the last valid segment
The text was updated successfully, but these errors were encountered: