Mercurial > hg > nginx
comparison src/mail/ngx_mail.c @ 6593:b3b7e33083ac
Introduced ngx_inet_get_port() and ngx_inet_set_port() functions.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 20 Jun 2016 11:50:39 +0300 |
parents | c90cf79d0e1d |
children | cebf5fed00bf |
comparison
equal
deleted
inserted
replaced
6592:2c7b488a61fb | 6593:b3b7e33083ac |
---|---|
226 ngx_mail_listen_t *listen) | 226 ngx_mail_listen_t *listen) |
227 { | 227 { |
228 in_port_t p; | 228 in_port_t p; |
229 ngx_uint_t i; | 229 ngx_uint_t i; |
230 struct sockaddr *sa; | 230 struct sockaddr *sa; |
231 struct sockaddr_in *sin; | |
232 ngx_mail_conf_port_t *port; | 231 ngx_mail_conf_port_t *port; |
233 ngx_mail_conf_addr_t *addr; | 232 ngx_mail_conf_addr_t *addr; |
234 #if (NGX_HAVE_INET6) | |
235 struct sockaddr_in6 *sin6; | |
236 #endif | |
237 | 233 |
238 sa = &listen->sockaddr.sockaddr; | 234 sa = &listen->sockaddr.sockaddr; |
239 | 235 p = ngx_inet_get_port(sa); |
240 switch (sa->sa_family) { | |
241 | |
242 #if (NGX_HAVE_INET6) | |
243 case AF_INET6: | |
244 sin6 = &listen->sockaddr.sockaddr_in6; | |
245 p = sin6->sin6_port; | |
246 break; | |
247 #endif | |
248 | |
249 #if (NGX_HAVE_UNIX_DOMAIN) | |
250 case AF_UNIX: | |
251 p = 0; | |
252 break; | |
253 #endif | |
254 | |
255 default: /* AF_INET */ | |
256 sin = &listen->sockaddr.sockaddr_in; | |
257 p = sin->sin_port; | |
258 break; | |
259 } | |
260 | 236 |
261 port = ports->elts; | 237 port = ports->elts; |
262 for (i = 0; i < ports->nelts; i++) { | 238 for (i = 0; i < ports->nelts; i++) { |
263 if (p == port[i].port && sa->sa_family == port[i].family) { | 239 if (p == port[i].port && sa->sa_family == port[i].family) { |
264 | 240 |