stas 2003/03/08 01:49:26
Modified: src/modules/perl mod_perl.c
. Changes
Log:
remove the limitation of having $r->content_type affecting the cgi header
parsing to header_parser and higher phase. now any phase before and
including the response phase can turn the cgi headers parsing off.
Revision Changes Path
1.156 +11 -12 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -r1.155 -r1.156
--- mod_perl.c 8 Mar 2003 09:15:16 -0000 1.155
+++ mod_perl.c 8 Mar 2003 09:49:26 -0000 1.156
@@ -537,6 +537,13 @@
modperl_config_req_init(r, rcfg);
+ /* set the default for cgi header parsing On as early as possible
+ * so $r->content_type in any phase after header_parser could turn
+ * it off. wb->header_parse will be set to 1 only if this flag
+ * wasn't turned off and MpDirPARSE_HEADERS is on
+ */
+ MpReqPARSE_HEADERS_On(rcfg);
+
return OK;
}
@@ -549,17 +556,7 @@
}
static int modperl_hook_header_parser(request_rec *r)
-{
- MP_dDCFG;
-
- /* set the default for cgi header parsing On (if applicable) as
- * early as possible so $r->content_type in any phase after
- * header_parser could turn it off */
- if (MpDirPARSE_HEADERS(dcfg)) {
- MP_dRCFG;
- MpReqPARSE_HEADERS_On(rcfg);
- }
-
+{
/* if 'PerlOptions +GlobalRequest' is inside a container */
modperl_global_request_cfg_set(r);
@@ -728,6 +725,7 @@
void modperl_response_init(request_rec *r)
{
MP_dRCFG;
+ MP_dDCFG;
modperl_wbucket_t *wb;
if (!rcfg->wbucket) {
@@ -742,7 +740,8 @@
wb->pool = r->pool;
wb->filters = &r->output_filters;
wb->outcnt = 0;
- wb->header_parse = MpReqPARSE_HEADERS(rcfg) ? 1 : 0;
+ wb->header_parse = MpDirPARSE_HEADERS(dcfg) && MpReqPARSE_HEADERS(rcfg)
+ ? 1 : 0;
wb->r = r;
}
1.146 +3 -3 modperl-2.0/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -r1.145 -r1.146
--- Changes 8 Mar 2003 09:15:16 -0000 1.145
+++ Changes 8 Mar 2003 09:49:26 -0000 1.146
@@ -11,9 +11,9 @@
=item 1.99_09-dev
When PerlOptions +ParseHeaders is an effect, the CGI headers parsing
-won't be done if any *mod_perl* handler, from the header_parser phase
-and upto and including the response phase, sets $r->content_type.
-(similar behavior to mp1's send_http_header() [Stas]
+won't be done if any *mod_perl* handler before and including the
+response phase, sets $r->content_type. (similar behavior to mp1's
+send_http_header() [Stas]
Registry: make sure that $r is not in the scope when the script is
compiled [Stas]