hi
i use these routines to get POST data from form in my mp2 handler all work fine, but if i post a lot of text from my form i get error in browser "Cannot find server. The Page cannot be displayed". There is nothing in error_log.
How can i solve this problem? =)
Server Version: Apache/2.0.47 (Red Hat Linux) mod_perl/1.99_10 Perl/v5.8.0 mod_ssl/2.0.47 OpenSSL/0.9.7a DAV/2 PHP/4.3.3
sub getpost { my $r = shift; if ($r->method_number == Apache::M_POST) { my $input = inputDecode(content($r)); return $input; } return 0; }
sub content { my $r = shift; $r->setup_client_block; return '' unless $r->should_client_block; my $len = $r->headers_in->get('content-length'); my $buf; $r->get_client_block($buf, $len);
You must call get_client_block() in the loop, untill you get all the data. It may return only a small chunk at a time.
Here is a better content() version which doesn't use client_block API, which is going to be deprecated in Apache 2.2 anyway. And it can help you with debug as well.
We may provide a C version later on.
use constant IOBUFSIZE => 8192;
use Apache::Const -compile => qw(MODE_READBYTES); use APR::Const -compile => qw(SUCCESS BLOCK_READ);
# to enable debug start with: (or simply run with -trace=debug)
# t/TEST -trace=debug -start
sub ModPerl::Test::read_post {
my $r = shift;
my $debug = shift || 0; my @data = ();
my $seen_eos = 0;
my $filters = $r->input_filters();
my $ba = $r->connection->bucket_alloc;
my $bb = APR::Brigade->new($r->pool, $ba); my $count = 0;
do {
my $rv = $filters->get_brigade($bb,
Apache::MODE_READBYTES, APR::BLOCK_READ, IOBUFSIZE);
if ($rv != APR::SUCCESS) {
return $rv;
}$count++;
warn "read_post: bb $count\n" if $debug;
while (!$bb->empty) {
my $buf;
my $b = $bb->first;$b->remove;
if ($b->is_eos) {
warn "read_post: EOS bucket:\n" if $debug;
$seen_eos++;
last;
} my $status = $b->read($buf);
if ($status != APR::SUCCESS) {
return $status;
}
warn "read_post: DATA bucket: [$buf]\n" if $debug;
push @data, $buf;
}$bb->destroy;
} while (!$seen_eos);
return join '', @data; }
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
