Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
vendor
nginx-1.4.2
src
http
ngx_http_variables.h
Go to the documentation of this file.
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_ */
Generated on Sun Nov 10 2013 09:49:09 for Groonga 3.0.9 Source Code Document by
1.8.1.2