Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions server/src/api/lifecycle.py
Original file line number Diff line number Diff line change
Expand Up @@ -440,12 +440,20 @@ async def proxy_sandbox_endpoint_request(request: Request, sandbox_id: str, port

try:
# Filter headers
hop_by_hop = set(HOP_BY_HOP_HEADERS)
connection_header = request.headers.get("connection")
if connection_header:
hop_by_hop.update(
header.strip().lower()
for header in connection_header.split(",")
if header.strip()
)
headers = {}
for key, value in request.headers.items():
key_lower = key.lower()
if (
key_lower != "host"
and key_lower not in HOP_BY_HOP_HEADERS
and key_lower not in hop_by_hop
and key_lower not in SENSITIVE_HEADERS
):
headers[key] = value
Expand All @@ -466,10 +474,24 @@ async def proxy_sandbox_endpoint_request(request: Request, sandbox_id: str, port

resp = await client.send(req, stream=True)

hop_by_hop = set(HOP_BY_HOP_HEADERS)
connection_header = resp.headers.get("connection")
if connection_header:
hop_by_hop.update(
header.strip().lower()
for header in connection_header.split(",")
if header.strip()
)
response_headers = {
key: value
for key, value in resp.headers.items()
if key.lower() not in hop_by_hop
}

return StreamingResponse(
content=resp.aiter_bytes(),
status_code=resp.status_code,
headers=resp.headers,
headers=response_headers,
)
except httpx.ConnectError as e:
raise HTTPException(
Expand Down