Mercurial > hg > nginx
comparison src/core/ngx_connection.c @ 2806:a445bd4eb571
ngx_create_listening()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 05 May 2009 17:33:26 +0000 |
parents | 60758ab4e5f4 |
children | d788477f5a67 |
comparison
equal
deleted
inserted
replaced
2805:60551422e150 | 2806:a445bd4eb571 |
---|---|
8 #include <ngx_core.h> | 8 #include <ngx_core.h> |
9 #include <ngx_event.h> | 9 #include <ngx_event.h> |
10 | 10 |
11 | 11 |
12 ngx_os_io_t ngx_io; | 12 ngx_os_io_t ngx_io; |
13 | |
14 | |
15 ngx_listening_t * | |
16 ngx_create_listening(ngx_conf_t *cf, void *sockaddr, socklen_t socklen) | |
17 { | |
18 ngx_listening_t *ls; | |
19 struct sockaddr *sa; | |
20 u_char text[NGX_SOCKADDR_STRLEN]; | |
21 | |
22 ls = ngx_array_push(&cf->cycle->listening); | |
23 if (ls == NULL) { | |
24 return NULL; | |
25 } | |
26 | |
27 ngx_memzero(ls, sizeof(ngx_listening_t)); | |
28 | |
29 sa = ngx_palloc(cf->pool, socklen); | |
30 if (sa == NULL) { | |
31 return NULL; | |
32 } | |
33 | |
34 ngx_memcpy(sa, sockaddr, socklen); | |
35 | |
36 ls->sockaddr = sa; | |
37 ls->socklen = socklen; | |
38 | |
39 ls->addr_text.len = ngx_sock_ntop(sa, text, NGX_SOCKADDR_STRLEN, 1); | |
40 | |
41 ls->addr_text.data = ngx_pnalloc(cf->pool, ls->addr_text.len); | |
42 if (ls->addr_text.data == NULL) { | |
43 return NULL; | |
44 } | |
45 | |
46 ngx_memcpy(ls->addr_text.data, text, ls->addr_text.len); | |
47 | |
48 ls->fd = (ngx_socket_t) -1; | |
49 ls->type = SOCK_STREAM; | |
50 | |
51 switch (ls->sockaddr->sa_family) { | |
52 #if (NGX_HAVE_INET6) | |
53 case AF_INET6: | |
54 ls->addr_text_max_len = NGX_INET6_ADDRSTRLEN; | |
55 break; | |
56 #endif | |
57 case AF_INET: | |
58 ls->addr_text_max_len = NGX_INET_ADDRSTRLEN; | |
59 break; | |
60 default: | |
61 ls->addr_text_max_len = NGX_SOCKADDR_STRLEN; | |
62 break; | |
63 } | |
64 | |
65 ls->backlog = NGX_LISTEN_BACKLOG; | |
66 ls->rcvbuf = -1; | |
67 ls->sndbuf = -1; | |
68 | |
69 return ls; | |
70 } | |
13 | 71 |
14 | 72 |
15 ngx_int_t | 73 ngx_int_t |
16 ngx_set_inherited_sockets(ngx_cycle_t *cycle) | 74 ngx_set_inherited_sockets(ngx_cycle_t *cycle) |
17 { | 75 { |