PDA

Просмотр полной версии : проблема с cookies.pm


.::Gh0st::.
25.10.2008, 15:37
перл

в неопределенный момент работы скрипта потоки вылетают (не все разом, а через промежутки времени) с ошибкой:
Thread 15 terminated abnormally: Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm line 44.

куки юзаю так:
my $ua = LWP::UserAgent->new();
$ua->proxy([qw(http https)] => 'socks://'.$socks);
$ua->agent(agent());
$ua->timeout($timeout);
my $c0 = HTTP::Cookies->new();
$ua->cookie_jar($c0);

объясните в чем может быть дело

Kaimi
25.10.2008, 15:50
sub add_cookie_header
{
my $self = shift;
my $request = shift || return;
my $url = $request->url;
my $scheme = $url->scheme; ---- 44ая строка

Видимо периодически в функцию не передается урл, либо передается неправильный урл.

В скрипте есть потоки?

.::Gh0st::.
25.10.2008, 16:25
да

Kaimi
25.10.2008, 17:00
Там где используешь урл для запроса сделай проверку корректности урла, мб поможет

.::Gh0st::.
06.11.2008, 14:14
плюсом сделал перезапуск потоков, но он почему-то не работает корректно, мб я допустил ошибку?


# проверяем вдруг какие-то потоки сдохли
$thr_cnt = threads->list();
share($thr_cnt);
if ($thr_cnt < $threads)
{
$cnt = $threads - $thr_cnt;
threads->new(\&start) for (1..$cnt);
&log("[+] NEW THREAD ADDED BECAUSE OLD ONE IS GAY-THREAD\n");
}