annotate src/http/modules/ngx_http_ssi_filter_module.h @ 4314:4a07bad0e2c5

Allowed add_header for proxied 206 replies. It was working for nginx's own 206 replies as they are seen as 200 in the headers filter module (range filter goes later in the headers filter chain), but not for proxied replies.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 28 Nov 2011 10:00:47 +0000
parents 2d8fab47dd89
children e9a0427f4139
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 /*
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4 */
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 #ifndef _NGX_HTTP_SSI_FILTER_H_INCLUDED_
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #define _NGX_HTTP_SSI_FILTER_H_INCLUDED_
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 #include <ngx_config.h>
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_core.h>
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 #include <ngx_http.h>
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
1545
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
16 #define NGX_HTTP_SSI_MAX_PARAMS 16
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17
1545
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
18 #define NGX_HTTP_SSI_COMMAND_LEN 32
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
19 #define NGX_HTTP_SSI_PARAM_LEN 32
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
20 #define NGX_HTTP_SSI_PARAMS_N 4
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22
1545
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
23 #define NGX_HTTP_SSI_COND_IF 1
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
24 #define NGX_HTTP_SSI_COND_ELSE 2
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
25
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
26
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
27 #define NGX_HTTP_SSI_NO_ENCODING 0
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
28 #define NGX_HTTP_SSI_URL_ENCODING 1
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
29 #define NGX_HTTP_SSI_ENTITY_ENCODING 2
629
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
30
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
31
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 typedef struct {
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33 ngx_hash_t hash;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34 ngx_hash_keys_arrays_t commands;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
35 } ngx_http_ssi_main_conf_t;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 typedef struct {
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39 ngx_buf_t *buf;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 u_char *pos;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
42 u_char *copy_start;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 u_char *copy_end;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45 ngx_uint_t key;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 ngx_str_t command;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
47 ngx_array_t params;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
48 ngx_table_elt_t *param;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 ngx_table_elt_t params_array[NGX_HTTP_SSI_PARAMS_N];
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51 ngx_chain_t *in;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 ngx_chain_t *out;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53 ngx_chain_t **last_out;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54 ngx_chain_t *busy;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 ngx_chain_t *free;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 ngx_uint_t state;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58 ngx_uint_t saved_state;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 size_t saved;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
60 size_t looked;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
61
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 size_t value_len;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
63
777
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 758
diff changeset
64 ngx_list_t *variables;
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 645
diff changeset
65 ngx_array_t *blocks;
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
66
629
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
67 unsigned conditional:2;
1545
2d8fab47dd89 SSI echo encoding
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
68 unsigned encoding:2;
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 645
diff changeset
69 unsigned block:1;
629
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
70 unsigned output:1;
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
71 unsigned output_chosen:1;
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
72
758
86bb73dc8d40 fix <!--#include virtual=... wait="yes" -->
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
73 ngx_http_request_t *wait;
609
608cf78b24ef nginx-0.3.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 597
diff changeset
74 void *value_buf;
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
75 ngx_str_t timefmt;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76 ngx_str_t errmsg;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77 } ngx_http_ssi_ctx_t;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
80 typedef ngx_int_t (*ngx_http_ssi_command_pt) (ngx_http_request_t *r,
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81 ngx_http_ssi_ctx_t *ctx, ngx_str_t **);
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
83
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84 typedef struct {
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85 ngx_str_t name;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86 ngx_uint_t index;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
87
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88 unsigned mandatory:1;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 unsigned multiple:1;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
90 } ngx_http_ssi_param_t;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
91
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
92
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
93 typedef struct {
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
94 ngx_str_t name;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
95 ngx_http_ssi_command_pt handler;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96 ngx_http_ssi_param_t *params;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
97
629
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
98 unsigned conditional:2;
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 645
diff changeset
99 unsigned block:1;
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
100 unsigned flush:1;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101 } ngx_http_ssi_command_t;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
102
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
103
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
104 extern ngx_module_t ngx_http_ssi_filter_module;
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
105
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
106
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
107 #endif /* _NGX_HTTP_SSI_FILTER_H_INCLUDED_ */