Mercurial > hg > nginx-quic
comparison src/http/ngx_http_variables.c @ 983:7a8ca436d611
ngx_http_variable_binary_remote_addr()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 07 Jan 2007 13:36:56 +0000 |
parents | 664afe2c1480 |
children | f1d7cf0f68e3 |
comparison
equal
deleted
inserted
replaced
982:664afe2c1480 | 983:7a8ca436d611 |
---|---|
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); |
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 |
118 { ngx_string("binary_remote_addr"), NULL, | 120 { ngx_string("binary_remote_addr"), NULL, |
119 ngx_http_variable_remote_addr, 1, 0, 0 }, | 121 ngx_http_variable_binary_remote_addr, 0, 0, 0 }, |
120 | 122 |
121 { 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 }, |
122 | 124 |
123 { 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 }, |
124 | 126 |
697 return NGX_OK; | 699 return NGX_OK; |
698 } | 700 } |
699 | 701 |
700 | 702 |
701 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 | |
702 ngx_http_variable_remote_addr(ngx_http_request_t *r, | 724 ngx_http_variable_remote_addr(ngx_http_request_t *r, |
703 ngx_http_variable_value_t *v, uintptr_t data) | 725 ngx_http_variable_value_t *v, uintptr_t data) |
704 { | 726 { |
705 struct sockaddr_in *sin; | 727 v->len = r->connection->addr_text.len; |
706 | 728 v->valid = 1; |
707 if (data == 0) { | 729 v->no_cachable = 0; |
708 v->len = r->connection->addr_text.len; | 730 v->not_found = 0; |
709 v->valid = 1; | 731 v->data = r->connection->addr_text.data; |
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 } | |
726 | 732 |
727 return NGX_OK; | 733 return NGX_OK; |
728 } | 734 } |
729 | 735 |
730 | 736 |