ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: perl модуль, возвращение запроса на обработку nginx



Пока нашёл только один рабочий вариант: делать internal_redirect на другой
локейшен.
Есть ли менее череззаднепроходные методы реализовать мою задачу?
пока как-то так:
package onlyxml;

use nginx;
use strict;
use XML::Simple;


sub test {
        my $r = shift;

        if ($r->request_method eq "POST") {
                if ($r->has_request_body(\&post)) {
                        $r->internal_redirect('/valid'.$r->uri);
                } else {
                        return 401; # пустой запрос
                }
        } else {
                #return DECLINED; # не GET запросы
                $r->internal_redirect('/valid'.$r->uri);
        }

}

sub post {
        my $r = shift;

        my $xs = new XML::Simple();
        my $hash;
        eval {$hash = $xs->XMLin($r->request_body)};
        if ($@){
                return 400; # не валидный
        } else {
                return 1; # Валидный xml
        }
}

1;
__END__

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,232459,232485#msg-232485

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.