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
send_request() decodes the response opcode, function code and sequence number only for logging. It does not verify that the frame matches the outstanding request.
Notifications, SystemEvents, delayed responses or otherwise unexpected frames can consequently be consumed as an ordinary request response. This also blocks a correct subscription API. SystemEvent payload parsing has a related report in #827.
Scope
Require response opcode/function/sequence to match the outstanding request.
Recognize and route Notification and SystemEvent frames without treating them as responses.
Reject unexpected or duplicate response frames with a protocol-specific error.
Serialize sync requests per connection or otherwise guarantee unambiguous correlation.
Use the same dispatcher model as the foundation for sync and async clients.
Acceptance criteria
A mismatched sequence or function never satisfies a request.
A notification arriving before the response is preserved and dispatched.
Problem
send_request()decodes the response opcode, function code and sequence number only for logging. It does not verify that the frame matches the outstanding request.Notifications, SystemEvents, delayed responses or otherwise unexpected frames can consequently be consumed as an ordinary request response. This also blocks a correct subscription API. SystemEvent payload parsing has a related report in #827.
Scope
Acceptance criteria
Out of scope