Annotation of embedaddon/nginx/src/http/ngx_http_variables.h, revision 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>