libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit a507eb93ee1223e29553bffe6822e395297d0d3f
parent 2c86e6b25f630c84934cead2bb06abd575c2780d
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Sat,  6 Nov 2021 15:08:35 +0300

W32 socket pair: set TCP_NODELAY

Set TCP_NODELAY on both ends of socket pair on W32 to disable
unwanted buffering

Diffstat:
Msrc/microhttpd/mhd_sockets.c | 14++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/microhttpd/mhd_sockets.c b/src/microhttpd/mhd_sockets.c @@ -323,17 +323,27 @@ MHD_W32_socket_pair_ (SOCKET sockets_pair[2], int non_blk) if ( (0 == getsockname (client_s, (struct sockaddr*) &client_addr, &addr_len)) && - (accepted_from_addr.sin_family == client_addr.sin_family) && (accepted_from_addr.sin_port == client_addr.sin_port) && (accepted_from_addr.sin_addr.s_addr == client_addr.sin_addr.s_addr) && + (accepted_from_addr.sin_family == client_addr.sin_family) && ( (0 != non_blk) ? (0 == ioctlsocket (server_s, (int) FIONBIO, &on_val)) : (0 == ioctlsocket (client_s, (int) FIONBIO, - &off_val)) ) ) + &off_val)) ) && + (0 == setsockopt (server_s, + IPPROTO_TCP, + TCP_NODELAY, + (const void *) (&on_val), + sizeof (on_val))) && + (0 == setsockopt (client_s, + IPPROTO_TCP, + TCP_NODELAY, + (const void *) (&on_val), + sizeof (on_val))) ) { closesocket (listen_s); sockets_pair[0] = server_s;