diff options
author | Igor Sysoev <igor@sysoev.ru> | 2008-08-21 12:56:10 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2008-08-21 12:56:10 +0000 |
commit | b29426deb80b1338b3851e748468659edb1e3dd1 (patch) | |
tree | 2783e2cf5cb03ecdd5c75580dba347456d78dccd /src/http/ngx_http_request.c | |
parent | 027095a77e9265a366e87d87927835a97e71d447 (diff) | |
download | nginx-b29426deb80b1338b3851e748468659edb1e3dd1.tar.gz nginx-b29426deb80b1338b3851e748468659edb1e3dd1.zip |
server_name "" support
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r-- | src/http/ngx_http_request.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 06320470b..6ae0be389 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -571,6 +571,7 @@ ngx_http_ssl_handshake_handler(ngx_connection_t *c) int ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) { + size_t len; const char *servername; ngx_connection_t *c; ngx_http_request_t *r; @@ -587,12 +588,15 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0, "SSL server name: \"%s\"", servername); + len = ngx_strlen(servername); + + if (len == 0) { + return SSL_TLSEXT_ERR_NOACK; + } + r = c->data; - if (ngx_http_find_virtual_server(r, (u_char *) servername, - ngx_strlen(servername)) - != NGX_OK) - { + if (ngx_http_find_virtual_server(r, (u_char *) servername, len) != NGX_OK) { return SSL_TLSEXT_ERR_NOACK; } @@ -1559,7 +1563,7 @@ ngx_http_find_virtual_server(ngx_http_request_t *r, u_char *host, size_t len) ngx_http_core_srv_conf_t *cscf; u_char buf[32]; - if (len == 0 || r->virtual_names == NULL) { + if (r->virtual_names == NULL) { return NGX_DECLINED; } |