Here's a patch that I sent to Doug. Not sure if I would accept something from a guy who *clearly* can't read a simple INSTALL file... ;) Here's hoping anyway. - Ken
I was using $request->sent_header and found out that it's not terribly useful if PerlSendHeader is off -- sent_header always returns 1. I changed mod_perl_sent_header so that it returns 0, 1 or 2: 0 - headers have not been sent (PerlSendHeader on) 1 - headers have not been sent (PerlSendHeader off) 2 - headers have already been sent This won't disrupt any code that checks for a true/false return from mod_perl_sent_header. $request->sent_header is undocumented so I don't think much user code is using it. The only change I'm concerned about is turning off MP_SENTHDR for both PerlSendHeader on and off. If any code is checking that directly (instead of using mod_perl_sent_header) then the code may break. mod_perl itself is clean, but I haven't checked all the Apache modules people have written. Patch was written for version 1.21 but it works on 1.24 too. - Ken*** mod_perl-1.21/src/modules/perl/mod_perl.c Thu Jul 1 14:17:38 1999 --- development/src/modules/perl/mod_perl.c Wed Jul 19 00:14:20 2000 *************** *** 736,744 **** { dPPDIR; ! if(val) MP_SENTHDR_on(cld); ! val = MP_SENTHDR(cld) ? 1 : 0; ! return MP_SENDHDR(cld) ? val : 1; } #ifndef perl_init_ids --- 736,750 ---- { dPPDIR; ! if (val) { ! MP_SENTHDR_on(cld); ! val = 2; ! } ! else { ! val = MP_SENTHDR(cld) ? 2 : 0; ! } ! ! return (val) ? val : MP_SENDHDR(cld) ? 0 : 1; } #ifndef perl_init_ids *************** *** 1262,1273 **** /* PerlSendHeader */ if(MP_SENDHDR(cld)) { - MP_SENTHDR_off(cld); table_set(r->subprocess_env, "PERL_SEND_HEADER", "On"); } ! else ! MP_SENTHDR_on(cld); /* SetEnv PERL5LIB */ if(!MP_INCPUSH(cld)) { --- 1268,1277 ---- /* PerlSendHeader */ if(MP_SENDHDR(cld)) { table_set(r->subprocess_env, "PERL_SEND_HEADER", "On"); } ! MP_SENTHDR_off(cld); /* SetEnv PERL5LIB */ if(!MP_INCPUSH(cld)) {
