BitTorrent-Simple

 view release on metacpan or  search on metacpan

script/torrent  view on Meta::CPAN


    print "  Contacting: $announce\n";

    my $ua   = LWP::UserAgent->new(timeout => 15);
    my $resp = $ua->get($url);
    unless ($resp->is_success) {
        warn "  Tracker request failed: " . $resp->status_line . "\n";
        return undef;
    }

    my $decoded = eval { bdecode($resp->content) };
    if ($@) {
        warn "  Failed to decode tracker response: $@\n";
        return undef;
    }
    if ($decoded->{'failure reason'}) {
        warn "  Tracker failure: " . $decoded->{'failure reason'} . "\n";
        return undef;
    }
    return $decoded;
}

# ─── Socket I/O ───────────────────────────────────────────────────────────────

sub read_exactly {
    my ($socket, $length) = @_;
    my $sel  = IO::Select->new($socket);
    my $data = '';
    my $remaining = $length;



( run in 0.724 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )