Mercurial > hg > nginx-quic
view src/os/unix/ngx_socket.c @ 173:4fb2a2cff023
nginx-0.0.1-2003-11-04-20:09:19 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 04 Nov 2003 17:09:19 +0000 |
parents | 6dfda4cf5200 |
children | 8dee38ea9117 |
line wrap: on
line source
#include <ngx_config.h> #include <ngx_core.h> /* ioctl(FIONBIO) set blocking mode with one syscall only while fcntl(F_SETFL, ~O_NONBLOCK) need to know previous state using fcntl(F_GETFL). ioctl() and fcntl() are syscalls on FreeBSD, Solaris 7/8 and Linux */ #if (HAVE_FIONBIO) int ngx_nonblocking(ngx_socket_t s) { unsigned long nb = 1; return ioctl(s, FIONBIO, &nb); } int ngx_blocking(ngx_socket_t s) { unsigned long nb = 0; return ioctl(s, FIONBIO, &nb); } #endif #ifdef __FreeBSD__ int ngx_tcp_nopush(ngx_socket_t s) { int tcp_nopush; tcp_nopush = 1; return setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, (const void *) &tcp_nopush, sizeof(int)); } int ngx_tcp_push(ngx_socket_t s) { int tcp_nopush; tcp_nopush = 0; return setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, (const void *) &tcp_nopush, sizeof(int)); } #else int ngx_tcp_nopush(ngx_socket_t s) { return NGX_OK; } int ngx_tcp_push(ngx_socket_t s) { return NGX_OK; } #endif