staticngx_int_tngx_http_optimize_servers(ngx_conf_t*cf,ngx_http_core_main_conf_t*cmcf,ngx_array_t*ports){ngx_uint_tp,a;ngx_http_conf_port_t*port;ngx_http_conf_addr_t*addr;if(ports==NULL){returnNGX_OK;}port=ports->elts;for(p=0;p<ports->nelts;p++){ngx_sort(port[p].addrs.elts,(size_t)port[p].addrs.nelts,sizeof(ngx_http_conf_addr_t),ngx_http_cmp_conf_addrs);/* * check whether all name-based servers have the same * configuration as a default server for given address:port */addr=port[p].addrs.elts;for(a=0;a<port[p].addrs.nelts;a++){if(addr[a].servers.nelts>1#if(NGX_PCRE)||addr[a].default_server->captures#endif){if(ngx_http_server_names(cf,cmcf,&addr[a])!=NGX_OK){returnNGX_ERROR;}}}if(ngx_http_init_listening(cf,&port[p])!=NGX_OK){returnNGX_ERROR;}}returnNGX_OK;}
port=ports->elts;for(p=0;p<ports->nelts;p++){ngx_sort(port[p].addrs.elts,(size_t)port[p].addrs.nelts,sizeof(ngx_http_conf_addr_t),ngx_http_cmp_conf_addrs);/* * check whether all name-based servers have the same * configuration as a default server for given address:port */addr=port[p].addrs.elts;for(a=0;a<port[p].addrs.nelts;a++){if(addr[a].servers.nelts>1#if(NGX_PCRE)||addr[a].default_server->captures#endif){if(ngx_http_server_names(cf,cmcf,&addr[a])!=NGX_OK){returnNGX_ERROR;}}}if(ngx_http_init_listening(cf,&port[p])!=NGX_OK){returnNGX_ERROR;}}