?? ngx_socket.c
字號:
/* * Copyright (C) Igor Sysoev */#include <ngx_config.h>#include <ngx_core.h>/* * ioctl(FIONBIO) sets a non-blocking mode with the single syscall * while fcntl(F_SETFL, O_NONBLOCK) needs to learn the current state * using fcntl(F_GETFL). * * ioctl() and fcntl() are syscalls at least in FreeBSD 2.x, Linux 2.2 * and Solaris 7. * * ioctl() in Linux 2.4 and 2.6 uses BKL, however, fcntl(F_SETFL) uses it too. */#if (NGX_HAVE_FIONBIO)intngx_nonblocking(ngx_socket_t s){ int nb; nb = 1; return ioctl(s, FIONBIO, &nb);}intngx_blocking(ngx_socket_t s){ int nb; nb = 0; return ioctl(s, FIONBIO, &nb);}#endif#if (NGX_FREEBSD)intngx_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));}intngx_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));}#elif (NGX_LINUX)intngx_tcp_nopush(ngx_socket_t s){ int cork; cork = 1; return setsockopt(s, IPPROTO_TCP, TCP_CORK, (const void *) &cork, sizeof(int));}intngx_tcp_push(ngx_socket_t s){ int cork; cork = 0; return setsockopt(s, IPPROTO_TCP, TCP_CORK, (const void *) &cork, sizeof(int));}#elseintngx_tcp_nopush(ngx_socket_t s){ return 0;}intngx_tcp_push(ngx_socket_t s){ return 0;}#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -