mirror of
https://github.com/openai/codex.git
synced 2026-09-06 15:29:32 +00:00
## What changed - Accept only `http://` and `https://` gRPC endpoints for app server `--code-mode-host` connections. - Limit the standalone code-mode host to stdio and gRPC listeners. - Remove the WebSocket session provider, dual-WebSocket negotiation, transport lanes, and related dependencies and tests. - Keep coverage for shared and prewarmed gRPC hosts and reject WebSocket host URLs in CLI parsing tests. GitOrigin-RevId: 8792604e79ffd54ce776074a4dc3f7d55e63752a
60 lines
1.8 KiB
Rust
60 lines
1.8 KiB
Rust
use futures::StreamExt;
|
|
use pretty_assertions::assert_eq;
|
|
use tokio::net::TcpStream;
|
|
|
|
use super::ListenTransport;
|
|
use super::parse_listen_url;
|
|
use crate::grpc_transport::bind_tcp_listener;
|
|
|
|
#[tokio::test]
|
|
async fn grpc_listener_disables_nagle() {
|
|
let bind_address = "127.0.0.1:0"
|
|
.parse()
|
|
.expect("gRPC test listener should have a valid bind address");
|
|
let mut listener = bind_tcp_listener(bind_address)
|
|
.await
|
|
.expect("gRPC test listener should bind");
|
|
let local_addr = listener
|
|
.local_addr()
|
|
.expect("gRPC test listener should have a local address");
|
|
let _client = TcpStream::connect(local_addr)
|
|
.await
|
|
.expect("gRPC test client should connect");
|
|
let nodelay = listener
|
|
.next()
|
|
.await
|
|
.expect("gRPC test listener should accept a connection")
|
|
.expect("gRPC test listener should return a valid socket")
|
|
.nodelay()
|
|
.expect("accepted gRPC socket should expose TCP_NODELAY");
|
|
|
|
assert!(nodelay);
|
|
}
|
|
|
|
#[test]
|
|
fn parse_listen_url_accepts_stdio_transports() {
|
|
assert_eq!(
|
|
parse_listen_url("stdio").expect("stdio listen URL should parse"),
|
|
ListenTransport::Stdio
|
|
);
|
|
assert_eq!(
|
|
parse_listen_url("stdio://").expect("stdio URL should parse"),
|
|
ListenTransport::Stdio
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn parse_listen_url_rejects_invalid_transports() {
|
|
let invalid_address = parse_listen_url("grpc://localhost:9000")
|
|
.expect_err("gRPC listener requires an IP address");
|
|
assert!(
|
|
invalid_address
|
|
.to_string()
|
|
.contains("expected `grpc://IP:PORT`")
|
|
);
|
|
|
|
let unsupported =
|
|
parse_listen_url("http://127.0.0.1:9000").expect_err("HTTP is not a listen transport");
|
|
assert!(unsupported.to_string().contains("unsupported --listen URL"));
|
|
}
|