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