40 if (
socket_setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &nodelay,
sizeof(nodelay)) != 0) {
41 log_warn(
"Failed to disable Nagle's algorithm (TCP_NODELAY) on socket");
46 int send_buffer = 2 * 1024 * 1024;
47 if (
socket_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer,
sizeof(send_buffer)) != 0) {
48 send_buffer = 512 * 1024;
49 if (
socket_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer,
sizeof(send_buffer)) != 0) {
50 send_buffer = 128 * 1024;
51 socket_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer,
sizeof(send_buffer));
57 int recv_buffer = 2 * 1024 * 1024;
58 if (
socket_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &recv_buffer,
sizeof(recv_buffer)) != 0) {
59 recv_buffer = 512 * 1024;
60 if (
socket_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &recv_buffer,
sizeof(recv_buffer)) != 0) {
61 recv_buffer = 128 * 1024;
62 socket_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &recv_buffer,
sizeof(recv_buffer));
84 DWORD timeout_val = (DWORD)timeout_ms;
85 if (
socket_setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout_val,
sizeof(timeout_val)) != 0) {
88 if (
socket_setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout_val,
sizeof(timeout_val)) != 0) {
94 tv.tv_sec = timeout_ms / 1000;
95 tv.tv_usec = (timeout_ms % 1000) * 1000;