diff --git a/src/codegate/providers/copilot/provider.py b/src/codegate/providers/copilot/provider.py index 0f7e1e20..8c58bed7 100644 --- a/src/codegate/providers/copilot/provider.py +++ b/src/codegate/providers/copilot/provider.py @@ -180,7 +180,7 @@ async def _request_to_target(self, headers: list[str], body: bytes): logger.debug("=" * 40) for i in range(0, len(body), CHUNK_SIZE): - chunk = body[i : i + CHUNK_SIZE] + chunk = body[i: i + CHUNK_SIZE] self.target_transport.write(chunk) def connection_made(self, transport: asyncio.Transport) -> None: @@ -343,9 +343,13 @@ async def handle_http_request(self) -> None: new_headers.append(f"Host: {self.target_host}") if self.target_transport: - body_start = self.buffer.index(b"\r\n\r\n") + 4 - body = self.buffer[body_start:] - await self._request_to_target(new_headers, body) + if self.buffer: + body_start = self.buffer.index(b"\r\n\r\n") + 4 + body = self.buffer[body_start:] + await self._request_to_target(new_headers, body) + else: + # just skip it + logger.info("No buffer content arrived, skipping") else: logger.error("Target transport not available") self.send_error_response(502, b"Failed to establish target connection")