24 static ngx_int_t ngx_mail_cmp_conf_addrs(
const void *one,
const void *two);
88 "the \"imap\" directive is deprecated, "
89 "use the \"mail\" directive instead");
232 if (ngx_mail_add_ports(cf, &ports, &listen[i]) !=
NGX_OK) {
237 return ngx_mail_optimize_servers(cf, &ports);
248 struct sockaddr_in *sin;
252 struct sockaddr_in6 *sin6;
255 sa = (
struct sockaddr *) &listen->
sockaddr;
257 switch (sa->sa_family) {
261 sin6 = (
struct sockaddr_in6 *) sa;
266 #if (NGX_HAVE_UNIX_DOMAIN)
273 sin = (
struct sockaddr_in *) sa;
279 for (i = 0; i < ports->
nelts; i++) {
280 if (p == port[i].port && sa->sa_family == port[i].
family) {
296 port->
family = sa->sa_family;
320 addr->tcp_keepidle = listen->tcp_keepidle;
321 addr->tcp_keepintvl = listen->tcp_keepintvl;
322 addr->tcp_keepcnt = listen->tcp_keepcnt;
325 addr->ssl = listen->ssl;
327 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
328 addr->ipv6only = listen->ipv6only;
345 for (p = 0; p < ports->
nelts; p++) {
358 if (addr[last - 1].wildcard) {
359 addr[last - 1].
bind = 1;
370 if (bind_wildcard && !addr[i].bind) {
390 #if (NGX_HAVE_KEEPALIVE_TUNABLE)
391 ls->keepidle = addr[
i].tcp_keepidle;
392 ls->keepintvl = addr[
i].tcp_keepintvl;
393 ls->keepcnt = addr[
i].tcp_keepcnt;
396 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
397 ls->ipv6only = addr[
i].ipv6only;
418 if (ngx_mail_add_addrs6(cf, mport, addr) !=
NGX_OK) {
424 if (ngx_mail_add_addrs(cf, mport, addr) !=
NGX_OK) {
447 struct sockaddr_in *sin;
452 if (mport->
addrs == NULL) {
456 addrs = mport->
addrs;
458 for (i = 0; i < mport->
naddrs; i++) {
460 sin = (
struct sockaddr_in *) addr[i].sockaddr;
461 addrs[
i].
addr = sin->sin_addr.s_addr;
465 addrs[
i].
conf.ssl = addr[
i].ssl;
494 ngx_mail_in6_addr_t *addrs6;
495 struct sockaddr_in6 *sin6;
499 mport->
naddrs *
sizeof(ngx_mail_in6_addr_t));
500 if (mport->
addrs == NULL) {
504 addrs6 = mport->
addrs;
506 for (i = 0; i < mport->
naddrs; i++) {
508 sin6 = (
struct sockaddr_in6 *) addr[i].sockaddr;
509 addrs6[
i].addr6 = sin6->sin6_addr;
513 addrs6[
i].conf.ssl = addr[
i].ssl;
525 addrs6[
i].conf.addr_text.len = len;
526 addrs6[
i].conf.addr_text.data = p;
536 ngx_mail_cmp_conf_addrs(
const void *one,
const void *two)