Fix Windows networking bugs and connection metadata mismatch
- Use closesocket() instead of close() for sockets on Windows (lib/tcp.c) - Call WSAStartup in tcp_init so outbound connections work (lib/tcp.c) - Check WSAGetLastError() instead of errno for recv/send on Windows (lib/tcp.c) - Use WSAEWOULDBLOCK instead of EINPROGRESS for non-blocking connect (lib/tcp.c) - Add NULL guard in tcp_write for stale connection handles (lib/tcp.c) - Fix ConnMetadata/TCP_Conn index mismatch in get_next_message: use event.handle.idx directly instead of searching for a free metadata slot, which could diverge when stale entries remain from failed outbound connections (lib/message.c) - Initialize num_senders to 0 and skip unused metadata in find_conn_by_target (lib/message.c) - Clear ready flag in http_server_next_request to prevent infinite loop (lib/http_server.c) - Add CRT invalid parameter handler for the HTTP proxy (src/main.c) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -245,6 +245,7 @@ bool http_server_next_request(HTTP_Server *server,
|
||||
continue;
|
||||
|
||||
if (server->conns[i].ready) {
|
||||
server->conns[i].ready = false;
|
||||
*request = &server->conns[i].request;
|
||||
*builder = (HTTP_ResponseBuilder) {
|
||||
.server = server,
|
||||
|
||||
Reference in New Issue
Block a user