handle SET_ERROR_INFO_PDU and add timeout in capability exchange#44
Open
Marshall-Hallenbeck wants to merge 1 commit into
Open
handle SET_ERROR_INFO_PDU and add timeout in capability exchange#44Marshall-Hallenbeck wants to merge 1 commit into
Marshall-Hallenbeck wants to merge 1 commit into
Conversation
Some misconfigured RDS Session Hosts (expired licensing grace period, Connection Broker rejection) never send DEMANDACTIVEPDU during the capability exchange. They either respond with SET_ERROR_INFO_PDU (e.g. ERRINFO_CB_CONNECTION_CANCELLED) or nothing at all. Without a sub-timeout on the MCS queue read, connect() hangs until the caller's outer timeout fires, masking the server's actual error. Adds: - A sub-timeout on the MCS queue read (half of target.timeout, minimum 1s) so a useful error is surfaced before any outer wait_for can mask it. - Detection of SET_ERROR_INFO_PDU at the capability exchange stage, matching the existing handling in __confirm_active_pdu so the server's error code and name are surfaced to the caller. Resolves skelsec#43.
14 tasks
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.
Some misconfigured RDS Session Hosts (expired licensing grace period, Connection Broker rejection) never send DEMANDACTIVEPDU during the capability exchange. They either respond with SET_ERROR_INFO_PDU (e.g. ERRINFO_CB_CONNECTION_CANCELLED) or nothing at all. Without a sub-timeout on the MCS queue read, connect() hangs until the caller's outer timeout fires, masking the server's actual error.
Adds:
Resolves #43.
DISCLAIMER: I used Claude Opus 4.7 to help with developing this, as you can probably tell because of the comments it put, but I actually think they're useful this time (usually they're garbage).