Mercurial > hg > nginx
diff src/http/ngx_http_config.c @ 26:53cb81681040
nginx-0.0.1-2002-12-15-09:25:09 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 15 Dec 2002 06:25:09 +0000 |
parents | 77c7629a2627 |
children | c2d9ef3ebb6d |
line wrap: on
line diff
--- a/src/http/ngx_http_config.c +++ b/src/http/ngx_http_config.c @@ -9,6 +9,8 @@ int ngx_max_module; +int (*ngx_http_top_header_filter) (ngx_http_request_t *r); + /* STUB: gobal srv and loc conf */ void **ngx_srv_conf; void **ngx_loc_conf; @@ -53,13 +55,27 @@ int ngx_http_init_modules(ngx_pool_t *po int ngx_http_init_filters(ngx_pool_t *pool, ngx_http_module_t **modules) { int i; - int (*filter)(ngx_http_request_t *r, ngx_chain_t *ch); + int (*ohf)(ngx_http_request_t *r); + int (*obf)(ngx_http_request_t *r, ngx_chain_t *ch); - filter = ngx_http_write_filter; + ohf = NULL; for (i = 0; modules[i]; i++) { - if (modules[i]->init_output_body_filter) - modules[i]->init_output_body_filter(&filter); + if (modules[i]->output_header_filter) { + modules[i]->next_output_header_filter = ohf; + ohf = modules[i]->output_header_filter; + } + } + + ngx_http_top_header_filter = ohf; + + obf = NULL; + + for (i = 0; modules[i]; i++) { + if (modules[i]->output_body_filter) { + modules[i]->next_output_body_filter = obf; + obf = modules[i]->output_body_filter; + } } }