Annotation of embedaddon/nginx/src/http/ngx_http_variables.h, revision 1.1.1.1
1.1 misho 1:
2: /*
3: * Copyright (C) Igor Sysoev
4: * Copyright (C) Nginx, Inc.
5: */
6:
7:
8: #ifndef _NGX_HTTP_VARIABLES_H_INCLUDED_
9: #define _NGX_HTTP_VARIABLES_H_INCLUDED_
10:
11:
12: #include <ngx_config.h>
13: #include <ngx_core.h>
14: #include <ngx_http.h>
15:
16:
17: typedef ngx_variable_value_t ngx_http_variable_value_t;
18:
19: #define ngx_http_variable(v) { sizeof(v) - 1, 1, 0, 0, 0, (u_char *) v }
20:
21: typedef struct ngx_http_variable_s ngx_http_variable_t;
22:
23: typedef void (*ngx_http_set_variable_pt) (ngx_http_request_t *r,
24: ngx_http_variable_value_t *v, uintptr_t data);
25: typedef ngx_int_t (*ngx_http_get_variable_pt) (ngx_http_request_t *r,
26: ngx_http_variable_value_t *v, uintptr_t data);
27:
28:
29: #define NGX_HTTP_VAR_CHANGEABLE 1
30: #define NGX_HTTP_VAR_NOCACHEABLE 2
31: #define NGX_HTTP_VAR_INDEXED 4
32: #define NGX_HTTP_VAR_NOHASH 8
33:
34:
35: struct ngx_http_variable_s {
36: ngx_str_t name; /* must be first to build the hash */
37: ngx_http_set_variable_pt set_handler;
38: ngx_http_get_variable_pt get_handler;
39: uintptr_t data;
40: ngx_uint_t flags;
41: ngx_uint_t index;
42: };
43:
44:
45: ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf, ngx_str_t *name,
46: ngx_uint_t flags);
47: ngx_int_t ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name);
48: ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r,
49: ngx_uint_t index);
50: ngx_http_variable_value_t *ngx_http_get_flushed_variable(ngx_http_request_t *r,
51: ngx_uint_t index);
52:
53: ngx_http_variable_value_t *ngx_http_get_variable(ngx_http_request_t *r,
54: ngx_str_t *name, ngx_uint_t key);
55:
56: ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v,
57: ngx_str_t *var, ngx_list_part_t *part, size_t prefix);
58:
59:
60: #if (NGX_PCRE)
61:
62: typedef struct {
63: ngx_uint_t capture;
64: ngx_int_t index;
65: } ngx_http_regex_variable_t;
66:
67:
68: typedef struct {
69: ngx_regex_t *regex;
70: ngx_uint_t ncaptures;
71: ngx_http_regex_variable_t *variables;
72: ngx_uint_t nvariables;
73: ngx_str_t name;
74: } ngx_http_regex_t;
75:
76:
77: typedef struct {
78: ngx_http_regex_t *regex;
79: void *value;
80: } ngx_http_map_regex_t;
81:
82:
83: ngx_http_regex_t *ngx_http_regex_compile(ngx_conf_t *cf,
84: ngx_regex_compile_t *rc);
85: ngx_int_t ngx_http_regex_exec(ngx_http_request_t *r, ngx_http_regex_t *re,
86: ngx_str_t *s);
87:
88: #endif
89:
90:
91: typedef struct {
92: ngx_hash_combined_t hash;
93: #if (NGX_PCRE)
94: ngx_http_map_regex_t *regex;
95: ngx_uint_t nregex;
96: #endif
97: } ngx_http_map_t;
98:
99:
100: void *ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map,
101: ngx_str_t *match);
102:
103:
104: ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf);
105: ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf);
106:
107:
108: extern ngx_http_variable_value_t ngx_http_variable_null_value;
109: extern ngx_http_variable_value_t ngx_http_variable_true_value;
110:
111:
112: #endif /* _NGX_HTTP_VARIABLES_H_INCLUDED_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>