AnyEvent-BitTorrent

 view release on metacpan or  search on metacpan

t/800_utils/Tracker/HTTP.pm  view on Meta::CPAN

        sub {
            $s->_set_host($_[1]);
            $s->_set_port($_[2]);
            1;
        }
    );
}

sub on_read {
    my ($s, $h, $fh, $ip, $port) = @_;
    my ($status, $body) = ('404 EH!?', 'Sorry. Play again.');
    if ($h->rbuf =~ s[^GET (.+?)(?:\?(.+))? HTTP/1\.(\d)\015\012][]) {
        my ($path, $args, $ver) = ($1, $2, $3);
        my %args = map { m[^(.+?)(?:=(.*))?$]; $1 => $2; }
            split qr[[&;]], $args;
        my %headers = map { m[^(.+?)\s*:\s*(.+)$]; $1 => $2; }
            split qr[\015\012], $h->rbuf;
        if ($path eq '/announce.pl') {
            my $tracker_id = $args{'tracker id'} // pack 'H*', int rand(time);
            my $max_peers = $args{'max_peers'} // 50;
            my $info_hash = uc $args{'info_hash'};



( run in 0.694 second using v1.01-cache-2.11-cpan-39bf76dae61 )