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