Mercurial > hg > nginx
diff src/core/ngx_connection.c @ 219:f57597ec5249
nginx-0.0.1-2004-01-06-19:49:34 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 06 Jan 2004 16:49:34 +0000 |
parents | 05592fd7a436 |
children | 86e473b5641e |
line wrap: on
line diff
--- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -2,96 +2,61 @@ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_event.h> -/* STUB */ -#include <nginx.h> ngx_os_io_t ngx_io; -ngx_int_t ngx_set_inherited_sockets(ngx_cycle_t *cycle, char **envp) +ngx_int_t ngx_set_inherited_sockets(ngx_cycle_t *cycle) { - char *p, *v; - ngx_socket_t s; + ngx_int_t i; ngx_listening_t *ls; struct sockaddr_in *addr_in; - for ( /* void */ ; *envp; envp++) { - if (ngx_strncmp(*envp, NGINX_VAR, NGINX_VAR_LEN) != 0) { + ls = cycle->listening.elts; + for (i = 0; i < cycle->listening.nelts; i++) { + + /* AF_INET only */ + + ls[i].sockaddr = ngx_palloc(cycle->pool, sizeof(struct sockaddr_in)); + if (ls[i].sockaddr == NULL) { + return NGX_ERROR; + } + + ls[i].socklen = sizeof(struct sockaddr_in); + if (getsockname(ls[i].fd, ls[i].sockaddr, &ls[i].socklen) == -1) { + ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno, + "getsockname() of the inherited " + "socket #%d failed", ls[i].fd); + ls[i].ignore = 1; continue; } - ngx_log_error(NGX_LOG_INFO, cycle->log, 0, - "using inherited sockets from \"%s\"", *envp); - - ngx_init_array(cycle->listening, cycle->pool, - 10, sizeof(ngx_listening_t), NGX_ERROR); - - for (p = *envp + NGINX_VAR_LEN, v = p; *p; p++) { - if (*p == ':' || *p == ';') { - s = ngx_atoi(v, p - v); - if (s == NGX_ERROR) { - ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, - "invalid socket number \"%s\" " - "in NGINX enviroment variable, " - "ignoring the rest of the variable", v); - break; - } - v = p + 1; - - if (!(ls = ngx_push_array(&cycle->listening))) { - return NGX_ERROR; - } - - ls->fd = s; - - /* AF_INET only */ - - ls->sockaddr = ngx_palloc(cycle->pool, - sizeof(struct sockaddr_in)); - if (ls->sockaddr == NULL) { - return NGX_ERROR; - } + addr_in = (struct sockaddr_in *) ls[i].sockaddr; - ls->socklen = sizeof(struct sockaddr_in); - if (getsockname(s, ls->sockaddr, &ls->socklen) == -1) { - ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno, - "getsockname() of the inherited " - "socket #%d failed", s); - ls->ignore = 1; - continue; - } - - addr_in = (struct sockaddr_in *) ls->sockaddr; + if (addr_in->sin_family != AF_INET) { + ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno, + "the inherited socket #%d has " + "unsupported family", ls[i].fd); + ls[i].ignore = 1; + continue; + } + ls[i].addr_text_max_len = INET_ADDRSTRLEN; - if (addr_in->sin_family != AF_INET) { - ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno, - "the inherited socket #%d has " - "unsupported family", s); - ls->ignore = 1; - continue; - } - ls->addr_text_max_len = INET_ADDRSTRLEN; - - ls->addr_text.data = ngx_palloc(cycle->pool, - ls->addr_text_max_len); - if (ls->addr_text.data == NULL) { - return NGX_ERROR; - } - - addr_in->sin_len = 0; - - ls->family = addr_in->sin_family; - ls->addr_text.len = ngx_sock_ntop(ls->family, ls->sockaddr, - ls->addr_text.data, - ls->addr_text_max_len); - if (ls->addr_text.len == 0) { - return NGX_ERROR; - } - } + ls[i].addr_text.data = ngx_palloc(cycle->pool, ls[i].addr_text_max_len); + if (ls[i].addr_text.data == NULL) { + return NGX_ERROR; } - break; + addr_in->sin_len = 0; + + ls[i].family = addr_in->sin_family; + ls[i].addr_text.len = ngx_sock_ntop(ls[i].family, ls[i].sockaddr, + ls[i].addr_text.data, + ls[i].addr_text_max_len); + if (ls[i].addr_text.len == 0) { + return NGX_ERROR; + } } return NGX_OK;