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 )