| ioctl(FIONBIO) set blocking mode with one syscall only while |
| fcntl(F_SETFL, ~O_NONBLOCK) need to know previous state |
| ioctl() and fcntl() are syscalls on FreeBSD, Solaris 7/8 and Linux |
| int ngx_nonblocking(ngx_socket_t s) |
| return ioctl(s, FIONBIO, &nb); |
| int ngx_blocking(ngx_socket_t s) |
| return ioctl(s, FIONBIO, &nb); |
| int ngx_tcp_nopush(ngx_socket_t s) |
| return setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, |
| (const void *) &tcp_nopush, sizeof(int)); |
| int ngx_tcp_push(ngx_socket_t s) |
| return setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, |
| (const void *) &tcp_nopush, sizeof(int)); |
| int ngx_tcp_nopush(ngx_socket_t s) |
| int ngx_tcp_push(ngx_socket_t s) |