DTA-CAB
view release on metacpan or search on metacpan
CAB/Server/HTTP/UNIX.pm view on Meta::CPAN
$srv->vlog('info', "setting directory ownership (".scalar(getpwuid $sockuid).".".scalar(getgrgid $sockgid).") on $dir");
chown($sockuid, $sockgid, $dir)
or $srv->logconfess("prepareLocal(): failed to set ownership for directory '$dir': $!");
}
}
##-- setup socket permissions
if ( ($srv->{socketPerms}//'') ne '' ) {
my $sockperms = oct($srv->{socketPerms});
$srv->vlog('info', sprintf("setting socket permissions (0%03o) on %s", $sockperms, $sockpath));
chmod($sockperms, $sockpath)
or $srv->logconfess("prepareLocal(): failed to set permissions for socket '$sockpath': $!");
foreach my $dir (reverse @{$srv->{_socketDirs}||[]}) {
$srv->vlog('info', sprintf("setting directory permissions (0%03o) on %s", ($sockperms|0111), $dir));
chmod(($sockperms|0111), $dir)
or $srv->logconfess("prepareLocal(): failed to set permissions for directory '$dir': $!");
}
}
##-- setup TCP relay subprocess
$rc &&= $srv->prepareRelay(@_);
##-- ok
return $rc;
}
CAB/Socket/UNIX.pm view on Meta::CPAN
CORE::unlink($path)
or $s->logconfess("cannot unlink existing file at UNIX socket path '$path': $!");
}
##-- bind the socket
$s->{fh} = IO::Socket::UNIX->new(Type=>SOCK_STREAM, Local=>$s->{local}, Listen=>($s->{listen}||SOMAXCONN))
or $s->logconfess("cannot bind local UNIX socket '$path': $!");
##-- set permissions
if (defined($s->{perms})) {
chmod($s->{perms}, $path)
or $s->logcluck(sprintf("cannot set perms=%0.4o for local UNIX socket '%s': $!", $s->{perms}, $path));
}
##-- report
$s->vlog('info', sprintf("created UNIX socket '%s' with permissions %0.4o", $path, ((stat($path))[2] & 0777)));
}
elsif (defined($s->{peer})) {
##-------- client socket
$s->{fh} = IO::Socket::UNIX->new(Type=>SOCK_STREAM, Peer=>$s->{peer})
or $s->logconfess("cannot connect to UNIX socket $s->{peer} as client: $!");
( run in 0.299 second using v1.01-cache-2.11-cpan-496ff517765 )