Mercurial > hg > nginx-ranges
comparison src/http/ngx_http_variables.c @ 272:29a6403156b0 NGINX_0_5_6
nginx 0.5.6
*) Change: now the ngx_http_index_module ignores all methods except the
GET, HEAD, and POST methods.
*) Feature: the ngx_http_limit_zone_module.
*) Feature: the $binary_remote_addr variable.
*) Feature: the "ssl_session_cache" directives of the
ngx_http_ssl_module and ngx_imap_ssl_module.
*) Feature: the DELETE method supports recursive removal.
*) Bugfix: the byte-ranges were transferred incorrectly if the
$r->sendfile() was used.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 09 Jan 2007 00:00:00 +0300 |
parents | 6eb1e38f0f1f |
children | 5bef04fc3fd5 |
comparison
equal
deleted
inserted
replaced
271:fcbee7dacf2b | 272:29a6403156b0 |
---|---|
25 ngx_http_variable_value_t *v, uintptr_t data); | 25 ngx_http_variable_value_t *v, uintptr_t data); |
26 static ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v, | 26 static ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v, |
27 ngx_str_t *var, ngx_list_part_t *part, size_t prefix); | 27 ngx_str_t *var, ngx_list_part_t *part, size_t prefix); |
28 | 28 |
29 static ngx_int_t ngx_http_variable_host(ngx_http_request_t *r, | 29 static ngx_int_t ngx_http_variable_host(ngx_http_request_t *r, |
30 ngx_http_variable_value_t *v, uintptr_t data); | |
31 static ngx_int_t ngx_http_variable_binary_remote_addr(ngx_http_request_t *r, | |
30 ngx_http_variable_value_t *v, uintptr_t data); | 32 ngx_http_variable_value_t *v, uintptr_t data); |
31 static ngx_int_t ngx_http_variable_remote_addr(ngx_http_request_t *r, | 33 static ngx_int_t ngx_http_variable_remote_addr(ngx_http_request_t *r, |
32 ngx_http_variable_value_t *v, uintptr_t data); | 34 ngx_http_variable_value_t *v, uintptr_t data); |
33 static ngx_int_t ngx_http_variable_remote_port(ngx_http_request_t *r, | 35 static ngx_int_t ngx_http_variable_remote_port(ngx_http_request_t *r, |
34 ngx_http_variable_value_t *v, uintptr_t data); | 36 ngx_http_variable_value_t *v, uintptr_t data); |
113 { ngx_string("content_type"), NULL, ngx_http_variable_header, | 115 { ngx_string("content_type"), NULL, ngx_http_variable_header, |
114 offsetof(ngx_http_request_t, headers_in.content_type), 0, 0 }, | 116 offsetof(ngx_http_request_t, headers_in.content_type), 0, 0 }, |
115 | 117 |
116 { ngx_string("host"), NULL, ngx_http_variable_host, 0, 0, 0 }, | 118 { ngx_string("host"), NULL, ngx_http_variable_host, 0, 0, 0 }, |
117 | 119 |
120 { ngx_string("binary_remote_addr"), NULL, | |
121 ngx_http_variable_binary_remote_addr, 0, 0, 0 }, | |
122 | |
118 { ngx_string("remote_addr"), NULL, ngx_http_variable_remote_addr, 0, 0, 0 }, | 123 { ngx_string("remote_addr"), NULL, ngx_http_variable_remote_addr, 0, 0, 0 }, |
119 | 124 |
120 { ngx_string("remote_port"), NULL, ngx_http_variable_remote_port, 0, 0, 0 }, | 125 { ngx_string("remote_port"), NULL, ngx_http_variable_remote_port, 0, 0, 0 }, |
121 | 126 |
122 { ngx_string("server_addr"), NULL, ngx_http_variable_server_addr, 0, 0, 0 }, | 127 { ngx_string("server_addr"), NULL, ngx_http_variable_server_addr, 0, 0, 0 }, |
694 return NGX_OK; | 699 return NGX_OK; |
695 } | 700 } |
696 | 701 |
697 | 702 |
698 static ngx_int_t | 703 static ngx_int_t |
704 ngx_http_variable_binary_remote_addr(ngx_http_request_t *r, | |
705 ngx_http_variable_value_t *v, uintptr_t data) | |
706 { | |
707 struct sockaddr_in *sin; | |
708 | |
709 /* AF_INET only */ | |
710 | |
711 sin = (struct sockaddr_in *) r->connection->sockaddr; | |
712 | |
713 v->len = sizeof(in_addr_t); | |
714 v->valid = 1; | |
715 v->no_cachable = 0; | |
716 v->not_found = 0; | |
717 v->data = (u_char *) &sin->sin_addr.s_addr; | |
718 | |
719 return NGX_OK; | |
720 } | |
721 | |
722 | |
723 static ngx_int_t | |
699 ngx_http_variable_remote_addr(ngx_http_request_t *r, | 724 ngx_http_variable_remote_addr(ngx_http_request_t *r, |
700 ngx_http_variable_value_t *v, uintptr_t data) | 725 ngx_http_variable_value_t *v, uintptr_t data) |
701 { | 726 { |
702 v->len = r->connection->addr_text.len; | 727 v->len = r->connection->addr_text.len; |
703 v->valid = 1; | 728 v->valid = 1; |