my ($URI) = @_;
my $fh;
if($URI =~ s/^file:\/\///i) {
- open($fh, '<', $URI) or die;
+ use IO::File;
+ $fh = IO::File->new($URI, 'r') or die;
} else {
# assume HTTP/FTP URI
- open($fh, '-|', ('wget -q -O - ' . $URI)) or die;
+ use IO::Pipe;
+ $fh = IO::Pipe->new();
+ $fh->reader(qq(wget -q -O - $URI)) or die;
}
return $fh;
}
sub parseTorRouterList($) {
my ($fh) = @_;
our (%currentRouter, @routerList);
- our $l;
- while ($l = <$fh>) {
+ foreach my $l (<$fh>) {
my ($tok, undef) = split(' ', $l, 2);
#print "$l";
chomp $l;
}
}
sub TOR_r {
+ my ($l) = @_;
#r atari i2i65Qm8DXfRpHVk6N0tcT0fxvs djULF2FbASFyIzuSpH1Zit9cYFc 2007-10-07 00:19:17 85.31.187.200 9001 9030
my (undef, $name, undef, undef, undef, $ip, $in_port, $dir_port) = split(' ', $l);
%currentRouter = ( NAME => $name, IP => $ip, IN_PORT => $in_port, DIR_PORT => $dir_port );
return;
}
sub TOR_s {
+ my ($l) = @_;
if($l =~ /^s (.*)/) {
#s Exit Fast Guard Stable Running V2Dir Valid
my $tokens = $1;
}
}
sub TOR_router {
+ my ($l) = @_;
my (undef, $name, $ip, $in_port, undef, $dir_port) = split(' ', $l);
push @routerList, processTorRouter(%currentRouter) if scalar(%currentRouter);
%currentRouter = ( NAME => $name, IP => $ip, IN_PORT => $in_port, DIR_PORT => $dir_port );
return;
}
sub TOR_reject {
+ my ($l) = @_;
my ($tok, $tuple) = split(' ', $l);
my ($ip, $ports) = split(':', $tuple);
push @{$currentRouter{REJECT}}, "$ip:$ports";
}
sub TOR_accept {
+ my ($l) = @_;
my ($tok, $tuple) = split(' ', $l);
my ($ip, $ports) = split(':', $tuple);
push @{$currentRouter{ACCEPT}}, "$ip:$ports";
}
- close $fh;
+ #close $fh;
return @routerList;
}