Hi,
I'm trying to use a pre-existing CGI script without
modification. I'd like to use an input filter to tack
on something to the POST string. My filter adds the
string, but the CGI sees a CONTENT_LENGTH
environmental variable that corresponds to its
original length. How do I update the CONTENT_LENGTH?
Here's the filter code:
package MyApache::AddConstraint;
use strict;
use warnings;
use base qw(Apache::Filter);
use Apache::Const -compile => 'OK';
use constant BUFF_LEN => 1024;
sub handler : FilterRequestHandler {
my $f = shift;
while ($f->read(my $buffer, BUFF_LEN)) {
$f->print($buffer);
}
my $bparam = "&special=1";
$f->print($bparam);
Apache::OK;
}
1;
The relevant conf is:
<Location /cgi-perl>
SetHandler perl-script
PerlHandler ModPerl::PerlRun
Options ExecCGI
PerlSendHeader On
</Location>
PerlModule MyApache::AddConstraint
<Location /cgi-perl/test>
PerlInputFilterHandler MyApache::AddConstraint
</Location>
I've tried setting %ENV in my filter, setting
CONTENT_LENGTH with $f->r->subprocess_env, and using
headers_out->set('Content-Length'). In the first two
cases, I see no effect, while the last applies to the
length of the entire request, not just the POST
string.
Any help is appreciated.
Thanks,
Micah
__________________________________
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs
http://hotjobs.sweepstakes.yahoo.com/careermakeover
--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html