Mercurial > hg > nginx
comparison src/http/ngx_http_variables.c @ 4332:4d9f985fd217
Added the $https variable.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Fri, 09 Dec 2011 14:38:11 +0000 |
parents | fa4612bfb9fa |
children | f8881d301d62 |
comparison
equal
deleted
inserted
replaced
4331:059260de158d | 4332:4d9f985fd217 |
---|---|
45 static ngx_int_t ngx_http_variable_server_addr(ngx_http_request_t *r, | 45 static ngx_int_t ngx_http_variable_server_addr(ngx_http_request_t *r, |
46 ngx_http_variable_value_t *v, uintptr_t data); | 46 ngx_http_variable_value_t *v, uintptr_t data); |
47 static ngx_int_t ngx_http_variable_server_port(ngx_http_request_t *r, | 47 static ngx_int_t ngx_http_variable_server_port(ngx_http_request_t *r, |
48 ngx_http_variable_value_t *v, uintptr_t data); | 48 ngx_http_variable_value_t *v, uintptr_t data); |
49 static ngx_int_t ngx_http_variable_scheme(ngx_http_request_t *r, | 49 static ngx_int_t ngx_http_variable_scheme(ngx_http_request_t *r, |
50 ngx_http_variable_value_t *v, uintptr_t data); | |
51 static ngx_int_t ngx_http_variable_https(ngx_http_request_t *r, | |
50 ngx_http_variable_value_t *v, uintptr_t data); | 52 ngx_http_variable_value_t *v, uintptr_t data); |
51 static ngx_int_t ngx_http_variable_is_args(ngx_http_request_t *r, | 53 static ngx_int_t ngx_http_variable_is_args(ngx_http_request_t *r, |
52 ngx_http_variable_value_t *v, uintptr_t data); | 54 ngx_http_variable_value_t *v, uintptr_t data); |
53 static ngx_int_t ngx_http_variable_document_root(ngx_http_request_t *r, | 55 static ngx_int_t ngx_http_variable_document_root(ngx_http_request_t *r, |
54 ngx_http_variable_value_t *v, uintptr_t data); | 56 ngx_http_variable_value_t *v, uintptr_t data); |
155 { ngx_string("server_protocol"), NULL, ngx_http_variable_request, | 157 { ngx_string("server_protocol"), NULL, ngx_http_variable_request, |
156 offsetof(ngx_http_request_t, http_protocol), 0, 0 }, | 158 offsetof(ngx_http_request_t, http_protocol), 0, 0 }, |
157 | 159 |
158 { ngx_string("scheme"), NULL, ngx_http_variable_scheme, 0, 0, 0 }, | 160 { ngx_string("scheme"), NULL, ngx_http_variable_scheme, 0, 0, 0 }, |
159 | 161 |
162 { ngx_string("https"), NULL, ngx_http_variable_https, 0, 0, 0 }, | |
163 | |
160 { ngx_string("request_uri"), NULL, ngx_http_variable_request, | 164 { ngx_string("request_uri"), NULL, ngx_http_variable_request, |
161 offsetof(ngx_http_request_t, unparsed_uri), 0, 0 }, | 165 offsetof(ngx_http_request_t, unparsed_uri), 0, 0 }, |
162 | 166 |
163 { ngx_string("uri"), NULL, ngx_http_variable_request, | 167 { ngx_string("uri"), NULL, ngx_http_variable_request, |
164 offsetof(ngx_http_request_t, uri), | 168 offsetof(ngx_http_request_t, uri), |
1083 v->len = sizeof("http") - 1; | 1087 v->len = sizeof("http") - 1; |
1084 v->valid = 1; | 1088 v->valid = 1; |
1085 v->no_cacheable = 0; | 1089 v->no_cacheable = 0; |
1086 v->not_found = 0; | 1090 v->not_found = 0; |
1087 v->data = (u_char *) "http"; | 1091 v->data = (u_char *) "http"; |
1092 | |
1093 return NGX_OK; | |
1094 } | |
1095 | |
1096 | |
1097 static ngx_int_t | |
1098 ngx_http_variable_https(ngx_http_request_t *r, | |
1099 ngx_http_variable_value_t *v, uintptr_t data) | |
1100 { | |
1101 #if (NGX_HTTP_SSL) | |
1102 | |
1103 if (r->connection->ssl) { | |
1104 v->len = sizeof("on") - 1; | |
1105 v->valid = 1; | |
1106 v->no_cacheable = 0; | |
1107 v->not_found = 0; | |
1108 v->data = (u_char *) "on"; | |
1109 | |
1110 return NGX_OK; | |
1111 } | |
1112 | |
1113 #endif | |
1114 | |
1115 *v = ngx_http_variable_null_value; | |
1088 | 1116 |
1089 return NGX_OK; | 1117 return NGX_OK; |
1090 } | 1118 } |
1091 | 1119 |
1092 | 1120 |