41 if (socket_setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &nodelay,
sizeof(nodelay)) != 0) {
42 log_warn(
"Failed to disable Nagle's algorithm (TCP_NODELAY) on socket");
47 int send_buffer = MAX_FRAME_BUFFER_SIZE;
48 if (socket_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer,
sizeof(send_buffer)) != 0) {
49 send_buffer = 512 * 1024;
50 if (socket_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer,
sizeof(send_buffer)) != 0) {
51 send_buffer = 128 * 1024;
52 socket_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer,
sizeof(send_buffer));
58 int recv_buffer = MAX_FRAME_BUFFER_SIZE;
59 if (socket_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &recv_buffer,
sizeof(recv_buffer)) != 0) {
60 recv_buffer = 512 * 1024;
61 if (socket_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &recv_buffer,
sizeof(recv_buffer)) != 0) {
62 recv_buffer = 128 * 1024;
63 socket_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &recv_buffer,
sizeof(recv_buffer));
69 socket_setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &keepalive,
sizeof(keepalive));
85 DWORD timeout_val = (DWORD)time_ns_to_ms(timeout_ns);
86 if (socket_setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout_val,
sizeof(timeout_val)) != 0) {
89 if (socket_setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout_val,
sizeof(timeout_val)) != 0) {
95 uint64_t us = time_ns_to_us(timeout_ns);
96 tv.tv_sec = (time_t)(us / US_PER_SEC_INT);
97 tv.tv_usec = (suseconds_t)(us % US_PER_SEC_INT);
98 if (socket_setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv,
sizeof(tv)) != 0) {
101 if (socket_setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &tv,
sizeof(tv)) != 0) {