[Moscow.pm] Gzip в XMLRPC::Lite и логирование IP клиентского пира

Dennis S.Davidoff davydov на nexo.ru
Ср Фев 4 22:38:03 PST 2009


Привет всем!

Есть два вопроса по XMLRPC::Lite. Возможно, кто-то подскажет.

-- 1. Возможно ли использовать gzip на XMLRPC::Transport::HTTP::Daemon?

Сервер:

#!/usr/bin/perl -I /usr/home/null/.Eclipse/RT/lib
# vim: ts=8:sw=4

use strict;
use warnings;
use XMLRPC::Lite +trace => 'all';
use XMLRPC::Transport::HTTP;
use Router;
use Data::Dumper;

my $daemon = XMLRPC::Transport::HTTP::Daemon
	-> new (LocalPort => 9850, ReuseAddr => 1)
	-> options({compress_threshold => 1000})
	-> dispatch_to('Router');

$daemon->handle;

(там один метод из пакета Router возвращает много всяких данных, 
хотелось бы сжимать)

Клиент:

#!/usr/bin/perl -w
use strict;
use XMLRPC::Lite +trace => 'all';
use Data::Dumper;

my $client = XMLRPC::Lite
	->proxy('http://localhost:9850/', options => {compress_threshold => 1})
	->on_fault(sub { die "Transport error: " . $_[1]->faultstring });

print Dumper($client->call('Router.GetAddrList', '192.168.0')->result);

Покопав трейс клиента, я увидел что первый запрос клиента пакуется:

POST http://localhost:9850/ HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Length: 147
Content-Type: text/xml

Ответ сервера:
415 Unsupported Media Type

Дальше клиент пытается без паковки отправить запрос и получает 
непакованный ответ. Хотя Accept-Encoding присутствует у клиента. Сервер 
отдает где-то 37 Кбайт. Почему сервер не отдает запакованный контент?

-- 2. Как логировать хосты пиров у сервера?

Например, клиент вызывает Router.GetAddrList, возможно ли как-то в этом 
пакете перехватить хост пира с портом? Насколько я понял каким-то 
образом можно получить доступ к {client_socket}->peerhost и 
{client_socket}->peerport. Я ошибаюсь?

Заранее спасибо!

-- 
Sincerely,
Dennis S.Davidoff


----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3229 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20090205/6bf873a0/attachment-0001.bin>


Подробная информация о списке рассылки Moscow-pm