Mercurial > hg > nginx-quic
comparison src/http/ngx_http_variables.c @ 982:664afe2c1480
$binary_remote_addr
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 07 Jan 2007 13:35:08 +0000 |
parents | a6fe6bedb9e3 |
children | 7a8ca436d611 |
comparison
equal
deleted
inserted
replaced
981:6fe76f377a62 | 982:664afe2c1480 |
---|---|
113 { ngx_string("content_type"), NULL, ngx_http_variable_header, | 113 { ngx_string("content_type"), NULL, ngx_http_variable_header, |
114 offsetof(ngx_http_request_t, headers_in.content_type), 0, 0 }, | 114 offsetof(ngx_http_request_t, headers_in.content_type), 0, 0 }, |
115 | 115 |
116 { ngx_string("host"), NULL, ngx_http_variable_host, 0, 0, 0 }, | 116 { ngx_string("host"), NULL, ngx_http_variable_host, 0, 0, 0 }, |
117 | 117 |
118 { ngx_string("binary_remote_addr"), NULL, | |
119 ngx_http_variable_remote_addr, 1, 0, 0 }, | |
120 | |
118 { ngx_string("remote_addr"), NULL, ngx_http_variable_remote_addr, 0, 0, 0 }, | 121 { ngx_string("remote_addr"), NULL, ngx_http_variable_remote_addr, 0, 0, 0 }, |
119 | 122 |
120 { ngx_string("remote_port"), NULL, ngx_http_variable_remote_port, 0, 0, 0 }, | 123 { ngx_string("remote_port"), NULL, ngx_http_variable_remote_port, 0, 0, 0 }, |
121 | 124 |
122 { ngx_string("server_addr"), NULL, ngx_http_variable_server_addr, 0, 0, 0 }, | 125 { ngx_string("server_addr"), NULL, ngx_http_variable_server_addr, 0, 0, 0 }, |
697 | 700 |
698 static ngx_int_t | 701 static ngx_int_t |
699 ngx_http_variable_remote_addr(ngx_http_request_t *r, | 702 ngx_http_variable_remote_addr(ngx_http_request_t *r, |
700 ngx_http_variable_value_t *v, uintptr_t data) | 703 ngx_http_variable_value_t *v, uintptr_t data) |
701 { | 704 { |
702 v->len = r->connection->addr_text.len; | 705 struct sockaddr_in *sin; |
703 v->valid = 1; | 706 |
704 v->no_cachable = 0; | 707 if (data == 0) { |
705 v->not_found = 0; | 708 v->len = r->connection->addr_text.len; |
706 v->data = r->connection->addr_text.data; | 709 v->valid = 1; |
710 v->no_cachable = 0; | |
711 v->not_found = 0; | |
712 v->data = r->connection->addr_text.data; | |
713 | |
714 } else { | |
715 | |
716 /* AF_INET only */ | |
717 | |
718 sin = (struct sockaddr_in *) r->connection->sockaddr; | |
719 | |
720 v->len = sizeof(in_addr_t); | |
721 v->valid = 1; | |
722 v->no_cachable = 0; | |
723 v->not_found = 0; | |
724 v->data = (u_char *) &sin->sin_addr.s_addr; | |
725 } | |
707 | 726 |
708 return NGX_OK; | 727 return NGX_OK; |
709 } | 728 } |
710 | 729 |
711 | 730 |