xref: /unit/src/nxt_http_variables.c (revision 1587)
11563Svbart@nginx.com 
21563Svbart@nginx.com /*
31563Svbart@nginx.com  * Copyright (C) NGINX, Inc.
41563Svbart@nginx.com  */
51563Svbart@nginx.com 
61563Svbart@nginx.com #include <nxt_router.h>
71563Svbart@nginx.com #include <nxt_http.h>
81563Svbart@nginx.com 
91563Svbart@nginx.com 
101563Svbart@nginx.com static nxt_int_t nxt_http_var_method(nxt_task_t *task, nxt_var_query_t *query,
111563Svbart@nginx.com     nxt_str_t *str, void *ctx);
121563Svbart@nginx.com static nxt_int_t nxt_http_var_uri(nxt_task_t *task, nxt_var_query_t *query,
131563Svbart@nginx.com     nxt_str_t *str, void *ctx);
14*1587Svbart@nginx.com static nxt_int_t nxt_http_var_host(nxt_task_t *task, nxt_var_query_t *query,
15*1587Svbart@nginx.com     nxt_str_t *str, void *ctx);
161563Svbart@nginx.com 
171563Svbart@nginx.com 
181563Svbart@nginx.com static nxt_var_decl_t  nxt_http_vars[] = {
191563Svbart@nginx.com     { nxt_string("method"),
201563Svbart@nginx.com       &nxt_http_var_method,
211563Svbart@nginx.com       0 },
221563Svbart@nginx.com 
231563Svbart@nginx.com     { nxt_string("uri"),
241563Svbart@nginx.com       &nxt_http_var_uri,
251563Svbart@nginx.com       0 },
26*1587Svbart@nginx.com 
27*1587Svbart@nginx.com     { nxt_string("host"),
28*1587Svbart@nginx.com       &nxt_http_var_host,
29*1587Svbart@nginx.com       0 },
301563Svbart@nginx.com };
311563Svbart@nginx.com 
321563Svbart@nginx.com 
331563Svbart@nginx.com nxt_int_t
341563Svbart@nginx.com nxt_http_register_variables(void)
351563Svbart@nginx.com {
361563Svbart@nginx.com     return nxt_var_register(nxt_http_vars, nxt_nitems(nxt_http_vars));
371563Svbart@nginx.com }
381563Svbart@nginx.com 
391563Svbart@nginx.com 
401563Svbart@nginx.com static nxt_int_t
411563Svbart@nginx.com nxt_http_var_method(nxt_task_t *task, nxt_var_query_t *query, nxt_str_t *str,
421563Svbart@nginx.com     void *ctx)
431563Svbart@nginx.com {
441563Svbart@nginx.com     nxt_http_request_t  *r;
451563Svbart@nginx.com 
461563Svbart@nginx.com     r = ctx;
471563Svbart@nginx.com 
481563Svbart@nginx.com     *str = *r->method;
491563Svbart@nginx.com 
501563Svbart@nginx.com     return NXT_OK;
511563Svbart@nginx.com }
521563Svbart@nginx.com 
531563Svbart@nginx.com 
541563Svbart@nginx.com static nxt_int_t
551563Svbart@nginx.com nxt_http_var_uri(nxt_task_t *task, nxt_var_query_t *query, nxt_str_t *str,
561563Svbart@nginx.com     void *ctx)
571563Svbart@nginx.com {
581563Svbart@nginx.com     nxt_http_request_t  *r;
591563Svbart@nginx.com 
601563Svbart@nginx.com     r = ctx;
611563Svbart@nginx.com 
621563Svbart@nginx.com     *str = *r->path;
631563Svbart@nginx.com 
641563Svbart@nginx.com     return NXT_OK;
651563Svbart@nginx.com }
66*1587Svbart@nginx.com 
67*1587Svbart@nginx.com 
68*1587Svbart@nginx.com static nxt_int_t
69*1587Svbart@nginx.com nxt_http_var_host(nxt_task_t *task, nxt_var_query_t *query, nxt_str_t *str,
70*1587Svbart@nginx.com     void *ctx)
71*1587Svbart@nginx.com {
72*1587Svbart@nginx.com     nxt_http_request_t  *r;
73*1587Svbart@nginx.com 
74*1587Svbart@nginx.com     r = ctx;
75*1587Svbart@nginx.com 
76*1587Svbart@nginx.com     *str = r->host;
77*1587Svbart@nginx.com 
78*1587Svbart@nginx.com     return NXT_OK;
79*1587Svbart@nginx.com }
80