PerlInputFilterHandler вызывает себя снова и снова - PullRequest
0 голосов
/ 27 ноября 2010

Это связано с mod_perl.

В моем теге местоположения указан только один фильтр.

<Location /testproj/AServlet>
SetHandler modperl
PerlInputFilterHandler MyApache2::Test3
</Location>

Здесь, когда я нажимаю http://localhost/testproj/AServlet URL в браузере. Это просто висит. Фильтр Test3 вызывает себя снова и снова. Я хочу выполнить тест3 только один раз и передать управление ресурсу "AServlet".

Что мне делать?

Спасибо.

1 Ответ

1 голос
/ 27 ноября 2010

Это потому, что вы не вызываете следующий фильтр в бригаде.

package TestFilter;

use base qw(Apache2::Filter);
use Apache2::Const qw(OK);
use APR::Const qw(SUCCESS);

sub handler {
  my ($f, $bb, $mode, $block, $readbytes) = @_;
  my $rv = $f->next->get_brigade($bb, $mode, $block, $readbytes);
  return $rv unless $rv == APR::Const::SUCCESS;

  # do you filtering stuff

  return OK;
}

1;
...