All pastes #990078 Raw Edit

Anonymous

public text v1 · immutable
#990078 ·published 2008-04-19 23:27 UTC
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");