Mercurial > hg > nginx
diff src/http/ngx_http.c @ 2806:a445bd4eb571
ngx_create_listening()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 05 May 2009 17:33:26 +0000 |
parents | d478379e51ac |
children | d791586bb149 |
line wrap: on
line diff
--- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c @@ -1688,54 +1688,14 @@ static ngx_listening_t * ngx_http_add_listening(ngx_conf_t *cf, ngx_http_conf_addr_t *addr) { ngx_listening_t *ls; - struct sockaddr *sa; ngx_http_core_loc_conf_t *clcf; ngx_http_core_srv_conf_t *cscf; - u_char text[NGX_SOCKADDR_STRLEN]; - ls = ngx_array_push(&cf->cycle->listening); + ls = ngx_create_listening(cf, addr->sockaddr, addr->socklen); if (ls == NULL) { return NULL; } - ngx_memzero(ls, sizeof(ngx_listening_t)); - - sa = ngx_palloc(cf->pool, addr->socklen); - if (sa == NULL) { - return NULL; - } - - ngx_memcpy(sa, addr->sockaddr, addr->socklen); - - ls->sockaddr = sa; - ls->socklen = addr->socklen; - - ls->addr_text.len = ngx_sock_ntop(sa, text, NGX_SOCKADDR_STRLEN, 1); - - ls->addr_text.data = ngx_pnalloc(cf->pool, ls->addr_text.len); - if (ls->addr_text.data == NULL) { - return NULL; - } - - ngx_memcpy(ls->addr_text.data, text, ls->addr_text.len); - - ls->fd = (ngx_socket_t) -1; - ls->type = SOCK_STREAM; - - switch (ls->sockaddr->sa_family) { -#if (NGX_HAVE_INET6) - case AF_INET6: - ls->addr_text_max_len = NGX_INET6_ADDRSTRLEN; - break; -#endif - case AF_INET: - ls->addr_text_max_len = NGX_INET_ADDRSTRLEN; - break; - default: - ls->addr_text_max_len = NGX_SOCKADDR_STRLEN; - break; - } - ls->addr_ntop = 1; ls->handler = ngx_http_init_connection;