Ошибку генерирует например такой код:
sub handler{
my $r = shift;
if( $r->has_request_body(\&handle_request) ){
return OK;
} else {
return handle_request($r);
}
}
sub handle_request{
my $r = shift;
$r->request_body(); # если запрос сделан методом гет то здесь ошибка,
выполнение хендлера прерывается
return OK;
}
Ну понятно, что можно в handler установить переменную, $r->request_body() в
if запихать и все будет работать. Информация perl -V прилагается.
Там на самом деле процесс падает по сигналу, но вот сообщения про
"close() channel" у не появлется. Можно сделать отладочный лог ?
22.12.06, Igor Sysoev <is@xxxxxxxxxxxxx> написал(а):
On Fri, 22 Dec 2006, Andrey Antonov wrote:
> Наконец-то перешел с 0.3.61 на 0.5.4, все что до этого не работало в
> 0.4.хтеперь работает, это здорово, весь новый функционал очень полезен
> для
> написания достаточно сложных хендлеров на перле.
> Заметил, что $r->request_body стало возвращать ошибку "close() channel
> failed (9: Bad file descriptor)" если тело запроса пустое (например в
> обычном гет запросе). Хорошо бы это пофиксить, тк сейчас надо либо
проверять
> тип запроса, либо переменную специальную устанавливать, что не удобно.
Как выглядит перловый код ?
Игорь Сысоев
http://sysoev.ru