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]
  
  
  

Reply via email to