rendered paste body#!/usr/bin/perl
use warnings;
use strict;
use lib '/home/eclipse/baalux/libs/baaluxtools';
use baaluxfuncs;
use fetcher;
use threads;
use IO::Socket;
use Switch;
my ($sock, $localport, $localaddr);
my @users;
my $pico = "hola";
$localport = 8881;
$localaddr = "0.0.0.0";
sub main {
my $d = 0;
my $sockthread;
print "=";
do {
$sock = new IO::Socket::INET (LocalAddr => $localaddr,
LocalPort => $localport,
Proto => 'tcp',
Listen => 2,
Reuse => 0) or warn("Couldn't bind: $!\n");
if (!$sock) {
$d++;
sleep 1;
}
} until ($sock);
print "=> Connected after: $d tries.\n";
print "binding on $localaddr:$localport\n";
while (my $client = $sock->accept()) {
$client->autoflush(1);
print $client "11 Looking up ip .. \n";
print $client "12 Checking up brow ..\n";
print $client "13 Checking up NickServ ..\n";
print $client "14 identifying ..\n";
print $client $client->peerhost . " has been connected\n";
push @users, $client->peerhost;
$sockthread = threads->new(\&serviceClient, $client);
$sockthread->detach;
}
sub serviceClient {
my $client = $_[0];
my $brow;
my $i = 0;
my $ip = gethostbyaddr($client->peeraddr, AF_INET);
my $port = $client->peerport;
print $client "lala\n";
while (<$client>) {
chomp($_);
print $client "$i: ";
switch ($_) {
case 'request' { my @urls = get_urls(); foreach my $r (@urls) { print $client "$r\n" } }
case '123' { print $client "Proando proando..\n"; }
default: { print $client "Unknown command: $_\n"; }
}
print "$ip:$port:$i: " . $_ . "\n";
#$client->shutdown(2);
$i++;
}
return;
}
}
#get_urls();
main();
#read_conf("hub.conf");
#wget("http://www.mit.edu/");
#wD("index.html");