aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-11-06 15:08:35 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-11-06 15:08:35 +0300
commita507eb93ee1223e29553bffe6822e395297d0d3f (patch)
tree18845b6eacb8dd6d46dcf05bce5f6c194d859a45
parent2c86e6b25f630c84934cead2bb06abd575c2780d (diff)
downloadlibmicrohttpd-a507eb93ee1223e29553bffe6822e395297d0d3f.tar.gz
libmicrohttpd-a507eb93ee1223e29553bffe6822e395297d0d3f.zip
W32 socket pair: set TCP_NODELAY
Set TCP_NODELAY on both ends of socket pair on W32 to disable unwanted buffering
-rw-r--r--src/microhttpd/mhd_sockets.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/microhttpd/mhd_sockets.c b/src/microhttpd/mhd_sockets.c
index 0d9826a4..2b8a7f11 100644
--- 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)
323 if ( (0 == getsockname (client_s, 323 if ( (0 == getsockname (client_s,
324 (struct sockaddr*) &client_addr, 324 (struct sockaddr*) &client_addr,
325 &addr_len)) && 325 &addr_len)) &&
326 (accepted_from_addr.sin_family == client_addr.sin_family) &&
327 (accepted_from_addr.sin_port == client_addr.sin_port) && 326 (accepted_from_addr.sin_port == client_addr.sin_port) &&
328 (accepted_from_addr.sin_addr.s_addr == 327 (accepted_from_addr.sin_addr.s_addr ==
329 client_addr.sin_addr.s_addr) && 328 client_addr.sin_addr.s_addr) &&
329 (accepted_from_addr.sin_family == client_addr.sin_family) &&
330 ( (0 != non_blk) ? 330 ( (0 != non_blk) ?
331 (0 == ioctlsocket (server_s, 331 (0 == ioctlsocket (server_s,
332 (int) FIONBIO, 332 (int) FIONBIO,
333 &on_val)) : 333 &on_val)) :
334 (0 == ioctlsocket (client_s, 334 (0 == ioctlsocket (client_s,
335 (int) FIONBIO, 335 (int) FIONBIO,
336 &off_val)) ) ) 336 &off_val)) ) &&
337 (0 == setsockopt (server_s,
338 IPPROTO_TCP,
339 TCP_NODELAY,
340 (const void *) (&on_val),
341 sizeof (on_val))) &&
342 (0 == setsockopt (client_s,
343 IPPROTO_TCP,
344 TCP_NODELAY,
345 (const void *) (&on_val),
346 sizeof (on_val))) )
337 { 347 {
338 closesocket (listen_s); 348 closesocket (listen_s);
339 sockets_pair[0] = server_s; 349 sockets_pair[0] = server_s;