Mercurial > hg > nginx-vendor-0-5
annotate src/http/modules/ngx_http_ssi_filter_module.h @ 324:7cf404023f50 NGINX_0_5_32
nginx 0.5.32
*) Change: now nginx tries to set the "worker_priority",
"worker_rlimit_nofile", "worker_rlimit_core", and
"worker_rlimit_sigpending" without super-user privileges.
*) Change: now nginx escapes space and "%" in request to a mail proxy
authentication server.
*) Change: now nginx escapes "%" in $memcached_key variable.
*) Change: the special make target "upgrade1" was defined for online
upgrade of 0.1.x versions.
*) Feature: the "add_header Last-Modified ..." directive changes the
"Last-Modified" response header line.
*) Feature: the mail proxy supports AUTHENTICATE in IMAP mode.
Thanks to Maxim Dounin.
*) Feature: the mail proxy supports STARTTLS in SMTP mode.
Thanks to Maxim Dounin.
*) Bugfix: nginx did not close directory file on HEAD request if
autoindex was used.
Thanks to Arkadiusz Patyk.
*) Bugfix: the "proxy_hide_header" and "fastcgi_hide_header" directives
did not hide response header lines whose name was longer than 32
characters.
Thanks to Manlio Perillo.
*) Bugfix: active connection counter always increased if mail proxy was
used.
*) Bugfix: if backend returned response header only using non-buffered
proxy, then nginx closed backend connection on timeout.
*) Bugfix: nginx did not support several "Connection" request header
lines.
*) Bugfix: a charset set by the "charset" directive was not appended to
the "Content-Type" header set by $r->send_http_header().
*) Bugfix: a segmentation fault might occur in worker process if
/dev/poll method was used.
*) Bugfix: nginx did not work on FreeBSD/sparc64.
*) Bugfix: a segmentation fault occurred in worker process if invalid
address was set in the "auth_http" directive.
*) Bugfix: now nginx uses default listen backlog value 511 on all
platforms except FreeBSD.
Thanks to Jiang Hong.
*) Bugfix: now Solaris sendfilev() is not used to transfer the client
request body to FastCGI-server via the unix domain socket.
*) Bugfix: if the same host without specified port was used as backend
for HTTP and HTTPS, then nginx used only one port - 80 or 443.
*) Bugfix: the "proxy_ignore_client_abort" and
"fastcgi_ignore_client_abort" directives did not work; bug appeared
in 0.5.13.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 24 Sep 2007 00:00:00 +0400 |
parents | acd2ec3541cb |
children | f70f2f565fe0 |
rev | line source |
---|---|
146 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4 */ | |
5 | |
6 | |
7 #ifndef _NGX_HTTP_SSI_FILTER_H_INCLUDED_ | |
8 #define _NGX_HTTP_SSI_FILTER_H_INCLUDED_ | |
9 | |
10 | |
11 #include <ngx_config.h> | |
12 #include <ngx_core.h> | |
13 #include <ngx_http.h> | |
14 | |
15 | |
16 #define NGX_HTTP_SSI_MAX_PARAMS 16 | |
17 | |
158 | 18 #define NGX_HTTP_SSI_COMMAND_LEN 32 |
19 #define NGX_HTTP_SSI_PARAM_LEN 32 | |
146 | 20 #define NGX_HTTP_SSI_PARAMS_N 4 |
21 | |
22 | |
178 | 23 #define NGX_HTTP_SSI_COND_IF 1 |
24 #define NGX_HTTP_SSI_COND_ELSE 2 | |
25 | |
26 | |
146 | 27 typedef struct { |
28 ngx_hash_t hash; | |
29 ngx_hash_keys_arrays_t commands; | |
30 } ngx_http_ssi_main_conf_t; | |
31 | |
32 | |
33 typedef struct { | |
34 ngx_buf_t *buf; | |
35 | |
36 u_char *pos; | |
37 u_char *copy_start; | |
38 u_char *copy_end; | |
39 | |
40 ngx_uint_t key; | |
41 ngx_str_t command; | |
42 ngx_array_t params; | |
43 ngx_table_elt_t *param; | |
44 ngx_table_elt_t params_array[NGX_HTTP_SSI_PARAMS_N]; | |
45 | |
46 ngx_chain_t *in; | |
47 ngx_chain_t *out; | |
48 ngx_chain_t **last_out; | |
49 ngx_chain_t *busy; | |
50 ngx_chain_t *free; | |
51 | |
52 ngx_uint_t state; | |
53 ngx_uint_t saved_state; | |
54 size_t saved; | |
55 size_t looked; | |
56 | |
57 size_t value_len; | |
58 | |
248 | 59 ngx_list_t *variables; |
216 | 60 ngx_array_t *blocks; |
146 | 61 |
178 | 62 unsigned conditional:2; |
216 | 63 unsigned block:1; |
178 | 64 unsigned output:1; |
65 unsigned output_chosen:1; | |
146 | 66 |
244 | 67 ngx_http_request_t *wait; |
158 | 68 void *value_buf; |
146 | 69 ngx_str_t timefmt; |
70 ngx_str_t errmsg; | |
71 } ngx_http_ssi_ctx_t; | |
72 | |
73 | |
74 typedef ngx_int_t (*ngx_http_ssi_command_pt) (ngx_http_request_t *r, | |
75 ngx_http_ssi_ctx_t *ctx, ngx_str_t **); | |
76 | |
77 | |
78 typedef struct { | |
79 ngx_str_t name; | |
80 ngx_uint_t index; | |
81 | |
82 unsigned mandatory:1; | |
83 unsigned multiple:1; | |
84 } ngx_http_ssi_param_t; | |
85 | |
86 | |
87 typedef struct { | |
88 ngx_str_t name; | |
89 ngx_http_ssi_command_pt handler; | |
90 ngx_http_ssi_param_t *params; | |
91 | |
178 | 92 unsigned conditional:2; |
216 | 93 unsigned block:1; |
146 | 94 unsigned flush:1; |
95 } ngx_http_ssi_command_t; | |
96 | |
97 | |
98 extern ngx_module_t ngx_http_ssi_filter_module; | |
99 | |
100 | |
101 #endif /* _NGX_HTTP_SSI_FILTER_H_INCLUDED_ */ |