Mercurial > hg > nginx-mail
diff src/http/modules/ngx_http_ssi_filter_module.h @ 146:36af50a5582d NGINX_0_3_20
nginx 0.3.20
*) Bugfix: in SSI handling.
*) Bugfix: the ngx_http_memcached_module did not support the keys in
the "/usr?args" form.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 11 Jan 2006 00:00:00 +0300 |
parents | |
children | 2d15b82126ed |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/src/http/modules/ngx_http_ssi_filter_module.h @@ -0,0 +1,90 @@ + +/* + * Copyright (C) Igor Sysoev + */ + + +#ifndef _NGX_HTTP_SSI_FILTER_H_INCLUDED_ +#define _NGX_HTTP_SSI_FILTER_H_INCLUDED_ + + +#include <ngx_config.h> +#include <ngx_core.h> +#include <ngx_http.h> + + +#define NGX_HTTP_SSI_MAX_PARAMS 16 + +#define NGX_HTTP_SSI_COMMAND_LEN 31 +#define NGX_HTTP_SSI_PARAM_LEN 31 +#define NGX_HTTP_SSI_PARAMS_N 4 + + +typedef struct { + ngx_hash_t hash; + ngx_hash_keys_arrays_t commands; +} ngx_http_ssi_main_conf_t; + + +typedef struct { + ngx_buf_t *buf; + + u_char *pos; + u_char *copy_start; + u_char *copy_end; + + ngx_uint_t key; + ngx_str_t command; + ngx_array_t params; + ngx_table_elt_t *param; + ngx_table_elt_t params_array[NGX_HTTP_SSI_PARAMS_N]; + + ngx_chain_t *in; + ngx_chain_t *out; + ngx_chain_t **last_out; + ngx_chain_t *busy; + ngx_chain_t *free; + + ngx_uint_t state; + ngx_uint_t saved_state; + size_t saved; + size_t looked; + + size_t value_len; + + ngx_array_t variables; + + ngx_uint_t output; /* unsigned output:1; */ + + ngx_str_t timefmt; + ngx_str_t errmsg; +} ngx_http_ssi_ctx_t; + + +typedef ngx_int_t (*ngx_http_ssi_command_pt) (ngx_http_request_t *r, + ngx_http_ssi_ctx_t *ctx, ngx_str_t **); + + +typedef struct { + ngx_str_t name; + ngx_uint_t index; + + unsigned mandatory:1; + unsigned multiple:1; +} ngx_http_ssi_param_t; + + +typedef struct { + ngx_str_t name; + ngx_http_ssi_command_pt handler; + ngx_http_ssi_param_t *params; + + unsigned conditional:1; + unsigned flush:1; +} ngx_http_ssi_command_t; + + +extern ngx_module_t ngx_http_ssi_filter_module; + + +#endif /* _NGX_HTTP_SSI_FILTER_H_INCLUDED_ */