Mercurial > hg > nginx
diff src/core/nginx.c @ 103:6dfda4cf5200
nginx-0.0.1-2003-06-11-19:28:34 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 11 Jun 2003 15:28:34 +0000 |
parents | 7ebc8b7fb816 |
children | 00bee6e7b485 |
line wrap: on
line diff
--- a/src/core/nginx.c Fri Jun 06 14:59:20 2003 +0000 +++ b/src/core/nginx.c Wed Jun 11 15:28:34 2003 +0000 @@ -2,9 +2,7 @@ #include <ngx_config.h> #include <ngx_core.h> - -#include <ngx_listen.h> - +#include <ngx_event.h> #include <nginx.h> @@ -61,7 +59,7 @@ { ngx_init_array(ngx_listening_sockets, - ngx_pool, 10, sizeof(ngx_listen_t), + ngx_pool, 10, sizeof(ngx_listening_t), 1); ngx_memzero(&conf, sizeof(ngx_conf_t)); @@ -126,10 +124,10 @@ static int ngx_open_listening_sockets(ngx_log_t *log) { - int times, failed, reuseaddr, i; - ngx_err_t err; - ngx_socket_t s; - ngx_listen_t *ls; + int times, failed, reuseaddr, i; + ngx_err_t err; + ngx_socket_t s; + ngx_listening_t *ls; reuseaddr = 1; @@ -137,7 +135,8 @@ failed = 0; /* for each listening socket */ - ls = (ngx_listen_t *) ngx_listening_sockets.elts; + + ls = ngx_listening_sockets.elts; for (i = 0; i < ngx_listening_sockets.nelts; i++) { if (ls[i].bound) @@ -161,6 +160,19 @@ return NGX_ERROR; } +#if (WIN32) + /* + * Winsock assignes a socket number divisible by 4 + * so to find a connection we divide a socket number by 4. + */ + + if (s % 4) { + ngx_log_error(NGX_LOG_EMERG, ls->log, 0, + ngx_socket_n " created socket %d", s); + return NGX_ERROR; + } +#endif + if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const void *) &reuseaddr, sizeof(int)) == -1) { ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,