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>