#ifndef NAUNET_ON_WINDOWS #include #include #endif #include "socket.h" void nn_socket_set_nodelay(struct nn_socket *sock, s32 nodelay) { al_assert(sock->type == NNWT_SOCKET_TCP); setsockopt(sock->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&nodelay, sizeof(nodelay)); } u32 nn_socket_get_send_buf(struct nn_socket *sock) { u32 send_queue_size; socklen_t optlen = sizeof(send_queue_size); getsockopt(sock->fd, SOL_SOCKET, SO_SNDBUF, (char *)&send_queue_size, &optlen); return send_queue_size; } void nn_socket_set_send_buf(struct nn_socket *sock, u32 sndbuf) { u32 send_queue_size = sndbuf; setsockopt(sock->fd, SOL_SOCKET, SO_SNDBUF, (char *)&send_queue_size, sizeof(send_queue_size)); } u32 nn_socket_get_recv_buf(struct nn_socket *sock) { u32 receive_queue_size; socklen_t optlen = sizeof(receive_queue_size); getsockopt(sock->fd, SOL_SOCKET, SO_RCVBUF, (char *)&receive_queue_size, &optlen); return receive_queue_size; } void nn_socket_set_recv_buf(struct nn_socket *sock, u32 rcvbuf) { u32 receive_queue_size = rcvbuf; setsockopt(sock->fd, SOL_SOCKET, SO_RCVBUF, (char *)&receive_queue_size, sizeof(receive_queue_size)); }