diff src/http/ngx_http_variables.c @ 258:6ae1357b7b7c NGINX_0_4_14

nginx 0.4.14 *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy. *) Feature: now configure detects system PCRE library on FreeBSD, Linux, and NetBSD. *) Bugfix: ngx_http_perl_module did not work with perl built with the threads support; bug appeared in 0.3.38. *) Bugfix: ngx_http_perl_module did not work if perl was called recursively. *) Bugfix: nginx ignored a host name in an request line. *) Bugfix: a worker process may got caught in an endless loop, if a FastCGI server sent too many data to the stderr. *) Bugfix: the $upstream_response_time variable may be negative if the system time was changed backward. *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3 proxy authentication server when POP3 was used. *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3 proxy authentication server failed.
author Igor Sysoev <http://sysoev.ru>
date Mon, 27 Nov 2006 00:00:00 +0300
parents fbf2b2f66c9f
children 6eb1e38f0f1f
line wrap: on
line diff
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -667,13 +667,20 @@ static ngx_int_t
 ngx_http_variable_host(ngx_http_request_t *r, ngx_http_variable_value_t *v,
     uintptr_t data)
 {
-    if (r->headers_in.host) {
-        v->len = r->headers_in.host_name_len;
-        v->data = r->headers_in.host->value.data;
+    if (r->host_start == NULL) {
+
+        if (r->headers_in.host) {
+            v->len = r->headers_in.host_name_len;
+            v->data = r->headers_in.host->value.data;
+
+        } else {
+            v->len = r->server_name.len;
+            v->data = r->server_name.data;
+        }
 
     } else {
-        v->len = r->server_name.len;
-        v->data = r->server_name.data;
+        v->len = r->host_end - r->host_start;
+        v->data = r->host_start;
     }
 
     v->valid = 1;