fix(connector): answer connect-time Bandwidth Measure to unblock FreeRDP servers#1465
Open
Greg Lamberson (glamberson) wants to merge 1 commit into
Conversation
…RDP servers The connector answered only the RTT auto-detect request at connect time and returned nothing for the Bandwidth Measure Stop, on the assumption that skipping it does not stall the sequence. That assumption does not hold for FreeRDP-based servers: GNOME Remote Desktop blocks in its AWAIT_BW_RESULT state until it receives a Bandwidth Measure Results reply and never proceeds to licensing, so the connection hangs after the Client Info PDU. Windows servers tolerate the omission, which hid the problem. Reply to a connect-time Bandwidth Measure Stop with a Bandwidth Measure Results PDU. The connector does not run a stateful measurement, so it reports the payload the server sent over a nominal interval; the figure is an informational QoS hint and the server proceeds on receipt. Adds a regression test that a connect-time Bandwidth Measure Stop produces a response frame and the auto-detect phase continues.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
AWAIT_BW_RESULTstate until it receives a Bandwidth Measure Results reply and never proceeds to licensing, so the connection hangs right after the Client Info PDU. Windows servers tolerate the omission, which hid it.BandwidthMeasureStopwith aBandwidthMeasureResultsPDU. The connector does not run a stateful measurement, so it reports the payload the server sent over a nominal interval; the value is an informational QoS hint and the server proceeds on receipt.Validation
cargo xtask check fmt/lints/tests/typos/locksall pass.AWAIT_BW_RESULT; after, grd proceeds through licensing and DEMAND_ACTIVE to an active session.Notes