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

Linux Cross Reference
Nginx/http/modules/ngx_http_ssi_filter_module.h

Version: ~ [ nginx-1.4.1 ] ~ [ nginx-1.5.0 ] ~

  1 
  2 /*
  3  * Copyright (C) Igor Sysoev
  4  * Copyright (C) Nginx, Inc.
  5  */
  6 
  7 
  8 #ifndef _NGX_HTTP_SSI_FILTER_H_INCLUDED_
  9 #define _NGX_HTTP_SSI_FILTER_H_INCLUDED_
 10 
 11 
 12 #include <ngx_config.h>
 13 #include <ngx_core.h>
 14 #include <ngx_http.h>
 15 
 16 
 17 #define NGX_HTTP_SSI_MAX_PARAMS       16
 18 
 19 #define NGX_HTTP_SSI_COMMAND_LEN      32
 20 #define NGX_HTTP_SSI_PARAM_LEN        32
 21 #define NGX_HTTP_SSI_PARAMS_N         4
 22 
 23 
 24 #define NGX_HTTP_SSI_COND_IF          1
 25 #define NGX_HTTP_SSI_COND_ELSE        2
 26 
 27 
 28 #define NGX_HTTP_SSI_NO_ENCODING      0
 29 #define NGX_HTTP_SSI_URL_ENCODING     1
 30 #define NGX_HTTP_SSI_ENTITY_ENCODING  2
 31 
 32 
 33 typedef struct {
 34     ngx_hash_t                hash;
 35     ngx_hash_keys_arrays_t    commands;
 36 } ngx_http_ssi_main_conf_t;
 37 
 38 
 39 typedef struct {
 40     ngx_buf_t                *buf;
 41 
 42     u_char                   *pos;
 43     u_char                   *copy_start;
 44     u_char                   *copy_end;
 45 
 46     ngx_uint_t                key;
 47     ngx_str_t                 command;
 48     ngx_array_t               params;
 49     ngx_table_elt_t          *param;
 50     ngx_table_elt_t           params_array[NGX_HTTP_SSI_PARAMS_N];
 51 
 52     ngx_chain_t              *in;
 53     ngx_chain_t              *out;
 54     ngx_chain_t             **last_out;
 55     ngx_chain_t              *busy;
 56     ngx_chain_t              *free;
 57 
 58     ngx_uint_t                state;
 59     ngx_uint_t                saved_state;
 60     size_t                    saved;
 61     size_t                    looked;
 62 
 63     size_t                    value_len;
 64 
 65     ngx_list_t               *variables;
 66     ngx_array_t              *blocks;
 67 
 68 #if (NGX_PCRE)
 69     ngx_uint_t                ncaptures;
 70     int                      *captures;
 71     u_char                   *captures_data;
 72 #endif
 73 
 74     unsigned                  conditional:2;
 75     unsigned                  encoding:2;
 76     unsigned                  block:1;
 77     unsigned                  output:1;
 78     unsigned                  output_chosen:1;
 79 
 80     ngx_http_request_t       *wait;
 81     void                     *value_buf;
 82     ngx_str_t                 timefmt;
 83     ngx_str_t                 errmsg;
 84 } ngx_http_ssi_ctx_t;
 85 
 86 
 87 typedef ngx_int_t (*ngx_http_ssi_command_pt) (ngx_http_request_t *r,
 88     ngx_http_ssi_ctx_t *ctx, ngx_str_t **);
 89 
 90 
 91 typedef struct {
 92     ngx_str_t                 name;
 93     ngx_uint_t                index;
 94 
 95     unsigned                  mandatory:1;
 96     unsigned                  multiple:1;
 97 } ngx_http_ssi_param_t;
 98 
 99 
100 typedef struct {
101     ngx_str_t                 name;
102     ngx_http_ssi_command_pt   handler;
103     ngx_http_ssi_param_t     *params;
104 
105     unsigned                  conditional:2;
106     unsigned                  block:1;
107     unsigned                  flush:1;
108 } ngx_http_ssi_command_t;
109 
110 
111 extern ngx_module_t  ngx_http_ssi_filter_module;
112 
113 
114 #endif /* _NGX_HTTP_SSI_FILTER_H_INCLUDED_ */
115 

~ [ 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.