~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Nginx/http/ngx_http_variables.h

Version: ~ [ nginx-0.8.20 ] ~ [ nginx-0.7.62 ] ~ [ nginx-0.6.39 ] ~

  1 
  2 /*
  3  * Copyright (C) Igor Sysoev
  4  */
  5 
  6 
  7 #ifndef _NGX_HTTP_VARIABLES_H_INCLUDED_
  8 #define _NGX_HTTP_VARIABLES_H_INCLUDED_
  9 
 10 
 11 #include <ngx_config.h>
 12 #include <ngx_core.h>
 13 #include <ngx_http.h>
 14 
 15 
 16 typedef ngx_variable_value_t  ngx_http_variable_value_t;
 17 
 18 #define ngx_http_variable(v)     { sizeof(v) - 1, 1, 0, 0, 0, (u_char *) v }
 19 
 20 typedef struct ngx_http_variable_s  ngx_http_variable_t;
 21 
 22 typedef void (*ngx_http_set_variable_pt) (ngx_http_request_t *r,
 23     ngx_http_variable_value_t *v, uintptr_t data);
 24 typedef ngx_int_t (*ngx_http_get_variable_pt) (ngx_http_request_t *r,
 25     ngx_http_variable_value_t *v, uintptr_t data);
 26 
 27 
 28 #define NGX_HTTP_VAR_CHANGEABLE   1
 29 #define NGX_HTTP_VAR_NOCACHEABLE  2
 30 #define NGX_HTTP_VAR_INDEXED      4
 31 #define NGX_HTTP_VAR_NOHASH       8
 32 
 33 
 34 struct ngx_http_variable_s {
 35     ngx_str_t                     name;   /* must be first to build the hash */
 36     ngx_http_set_variable_pt      set_handler;
 37     ngx_http_get_variable_pt      get_handler;
 38     uintptr_t                     data;
 39     ngx_uint_t                    flags;
 40     ngx_uint_t                    index;
 41 };
 42 
 43 
 44 ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf, ngx_str_t *name,
 45     ngx_uint_t flags);
 46 ngx_int_t ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name);
 47 ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r,
 48     ngx_uint_t index);
 49 ngx_http_variable_value_t *ngx_http_get_flushed_variable(ngx_http_request_t *r,
 50     ngx_uint_t index);
 51 
 52 ngx_http_variable_value_t *ngx_http_get_variable(ngx_http_request_t *r,
 53     ngx_str_t *name, ngx_uint_t key, ngx_uint_t nowarn);
 54 
 55 ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v,
 56     ngx_str_t *var, ngx_list_part_t *part, size_t prefix);
 57 
 58 
 59 #define ngx_http_clear_variable(r, index) r->variables0[index].text.data = NULL;
 60 
 61 
 62 ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf);
 63 ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf);
 64 
 65 
 66 typedef struct {
 67     ngx_rbtree_node_t             node;
 68     size_t                        len;
 69     ngx_http_variable_value_t    *value;
 70 } ngx_http_variable_value_node_t;
 71 
 72 
 73 void ngx_http_variable_value_rbtree_insert(ngx_rbtree_node_t *temp,
 74     ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
 75 ngx_http_variable_value_t *ngx_http_variable_value_lookup(ngx_rbtree_t *rbtree,
 76     ngx_str_t *name, uint32_t hash);
 77 
 78 
 79 extern ngx_http_variable_value_t  ngx_http_variable_null_value;
 80 extern ngx_http_variable_value_t  ngx_http_variable_true_value;
 81 
 82 
 83 #endif /* _NGX_HTTP_VARIABLES_H_INCLUDED_ */
 84 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.