Alvis-Saa
view release on metacpan or search on metacpan
lib/Alvis/Saa.pm view on Meta::CPAN
Reuse => 1,
Listen => 10);
if(!defined($inet_sock))
{
$this->{'err'} = "$@";
return 0;
}
# print STDERR "Soketti on $LOCALADDR_PREFIX$port\n";
unlink "$LOCALADDR_PREFIX$port";
my $unix_sock = IO::Socket::UNIX->new(Local => "$LOCALADDR_PREFIX$port",
Type => SOCK_STREAM,
Listen => 10);
if(!defined($unix_sock))
{
$this->{'err'} = "$@";
close($inet_sock);
return 0;
}
binmode($inet_sock, ":raw");
binmode($unix_sock, ":raw");
$serv->{'inet_sock'} = $inet_sock;
$serv->{'unix_sock'} = $unix_sock;
$this->{'servs'}->{$port} = $serv;
$this->{'serv_sel'}->add($inet_sock);
$this->{'serv_sel'}->add($unix_sock);
return 1;
}
sub connected
{
my $this = shift;
my $host = shift;
my $port = shift;
lib/Alvis/Saa.pm view on Meta::CPAN
my $this = shift;
my $port = shift;
if(!exists($this->{'servs'}->{$port}))
{
$this->{'err'} = "Not connected";
return 0;
}
my $serv = $this->{'servs'}->{$port};
$this->{'serv_sel'}->remove($serv->{'unix_sock'});
$this->{'serv_sel'}->remove($serv->{'inet_sock'});
shutdown($serv->{'unix_sock'}, 2);
shutdown($serv->{'inet_sock'}, 2);
close($serv->{'unix_sock'});
close($serv->{'inet_sock'});
unlink("$LOCALADDR_PREFIX$port");
delete($this->{'servs'}->{$port});
return 1;
}
sub connect
{
my $this = shift;
lib/Alvis/Saa.pm view on Meta::CPAN
# print "Riidit: " . Dumper(\@reads) . "\n";
my $conn;
foreach $conn (@reads)
{
my $serv;
my $found = 0;
for(@servs)
{
if($this->{'servs'}->{$_}->{'inet_sock'} == $conn ||
$this->{'servs'}->{$_}->{'unix_sock'} == $conn)
{
$serv = $this->{'servs'}->{$_};
$found = 1;
last;
}
}
my $client = $conn->accept();
# print "Conn " . Dumper($conn);
if(!defined($client))
( run in 1.684 second using v1.01-cache-2.11-cpan-39bf76dae61 )