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

Alexey Shilo nginx-forum at nginx.us
Sat Nov 3 15:40:57 UTC 2012


Пока нашёл только один рабочий вариант: делать 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