fix(tui): ChatGPT OAuth callback stream reads blocking on BSD sockets

Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Hunter Bown <hmbown@gmail.com>
This commit is contained in:
Devin AI
2026-09-02 05:05:09 +00:00
parent e68dfce14a
commit a902f56f40

View File

@@ -495,6 +495,11 @@ fn wait_for_callback(listeners: &[TcpListener], expected_state: &str) -> Result<
}
fn handle_callback_stream(mut stream: TcpStream, expected_state: &str) -> Result<String> {
// BSD sockets (macOS) hand the accepted stream the listener's O_NONBLOCK;
// the bounded read below needs a blocking socket with a timeout.
stream
.set_nonblocking(false)
.context("ChatGPT OAuth callback stream could not be set blocking")?;
stream.set_read_timeout(Some(Duration::from_secs(5))).ok();
// One read is not one request: TCP may deliver the callback in
// fragments, and a truncated query parses as a missing parameter.