# HG changeset patch # User Igor Sysoev # Date 1285588092 0 # Node ID d1983670b5865a262942dba32eb6c406c0c84ff7 # Parent beca53d6ab3c5239129444dc846c843a7cfd6c34 allow duplicate listen ssl options diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c --- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c @@ -1221,6 +1221,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, n #if (NGX_HAVE_UNIX_DOMAIN) struct sockaddr_un *saun; #endif +#if (NGX_HTTP_SSL) + ngx_uint_t ssl; +#endif /* * we can not compare whole sockaddr struct's as kernel @@ -1270,6 +1273,10 @@ ngx_http_add_addresses(ngx_conf_t *cf, n /* preserve default_server bit during listen options overwriting */ default_server = addr[i].opt.default_server; +#if (NGX_HTTP_SSL) + ssl = lsopt->ssl || addr[i].opt.set; +#endif + if (lsopt->set) { if (addr[i].opt.set) { @@ -1296,6 +1303,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, n } addr[i].opt.default_server = default_server; +#if (NGX_HTTP_SSL) + addr[i].opt.ssl = ssl; +#endif return NGX_OK; } diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -3569,7 +3569,6 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx if (ngx_strcmp(value[n].data, "ssl") == 0) { #if (NGX_HTTP_SSL) - lsopt.set = 1; lsopt.ssl = 1; continue; #else