mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
Route exec-server HTTP through configured proxy policy (#35023)
## Why Delegated HTTP requests need to honor the same outbound proxy policy as the Codex process that starts the exec server. ## What changed - Pass the configured `HttpClientFactory` through local and remote exec-server startup and use route-aware client pools for delegated HTTP and local MCP requests. - Preserve per-request timeouts and follow-or-stop redirect behavior while keeping request URLs and sensitive response headers out of diagnostics. ## Testing - Cover configured system-proxy routing across the exec-server transport. - Cover both redirect policies and verify that success and failure logs do not expose request or response secrets. GitOrigin-RevId: 4af6aec1d265c4db62dfcb6e1fb076fb31736137
This commit is contained in:
@@ -45,8 +45,6 @@ use codex_config::types::OAuthCredentialsStoreMode;
|
||||
use codex_connectors::ConnectorRuntimeContext;
|
||||
use codex_connectors::ConnectorRuntimeFetchSource;
|
||||
use codex_exec_server::Environment;
|
||||
use codex_exec_server::HttpClient;
|
||||
use codex_exec_server::ReqwestHttpClient;
|
||||
use codex_protocol::mcp::McpServerInfo;
|
||||
use codex_protocol::protocol::Event;
|
||||
use codex_protocol::protocol::EventMsg;
|
||||
@@ -1023,7 +1021,7 @@ async fn make_rmcp_client(
|
||||
bearer_token_env_var,
|
||||
} => {
|
||||
let http_client = resolved_environment.as_ref().map_or_else(
|
||||
|| Arc::new(ReqwestHttpClient) as Arc<dyn HttpClient>,
|
||||
|| runtime_context.local_http_client(),
|
||||
|environment| environment.get_http_client(),
|
||||
);
|
||||
let http_client = maybe_with_openai_docs_source_attribution(&url, http_client);
|
||||
|
||||
@@ -295,6 +295,12 @@ impl McpRuntimeContext {
|
||||
self.local_stdio_fallback_cwd.clone()
|
||||
}
|
||||
|
||||
pub(crate) fn local_http_client(&self) -> Arc<dyn HttpClient> {
|
||||
Arc::new(ReqwestHttpClient::new(
|
||||
self.environment_manager.http_client_factory().clone(),
|
||||
))
|
||||
}
|
||||
|
||||
pub(crate) fn resolve_server_environment(
|
||||
&self,
|
||||
server_name: &str,
|
||||
@@ -334,7 +340,7 @@ impl McpRuntimeContext {
|
||||
Ok(self
|
||||
.resolve_server_environment(server_name, config)?
|
||||
.map_or_else(
|
||||
|| Arc::new(ReqwestHttpClient) as Arc<dyn HttpClient>,
|
||||
|| self.local_http_client(),
|
||||
|environment| environment.get_http_client(),
|
||||
))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user