Mercurial > hg > nginx
view src/core/ngx_listen.c @ 0:4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
The first code that uses "ngx_" prefix, the previous one used "gx_" prefix.
At that point the code is not yet usable. The first draft ideas are dated
back to 23.10.2001.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 06 Aug 2002 16:39:45 +0000 |
parents | |
children |
line wrap: on
line source
#include <ngx_config.h> #include <ngx_types.h> #include <ngx_errno.h> #include <ngx_log.h> #include <ngx_listen.h> ngx_socket_t ngx_listen(struct sockaddr *addr, int backlog, ngx_log_t *log, char *addr_text) { ngx_socket_t s; int reuseaddr = 1; #if (WIN32) unsigned long nb = 1; #endif if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, "socket failed"); if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const void *) &reuseaddr, sizeof(int)) == -1) ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, "ngx_listen: setsockopt (SO_REUSEADDR) failed"); #if (WIN32) if (ioctlsocket(s, FIONBIO, &nb) == -1) ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, "ngx_listen: ioctlsocket (FIONBIO) failed"); #else if (fcntl(s, F_SETFL, O_NONBLOCK) == -1) ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, "ngx_listen: fcntl (O_NONBLOCK) failed"); #endif if (bind(s, (struct sockaddr *) addr, sizeof(struct sockaddr_in)) == -1) ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, "ngx_listen: bind to %s failed", addr_text); if (listen(s, backlog) == -1) ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, "ngx_listen: listen to %s failed", addr_text); return s; }