AnyEvent-FDpasser

 view release on metacpan or  search on metacpan

lib/AnyEvent/FDpasser.pm  view on Meta::CPAN

  if ($^O eq 'MSWin32') {
    die "AnyEvent::FDpasser does not support windows";
  } elsif (fdpasser_mode() == 2) {
    my $fd = _fdpasser_server($path);
    die "unable to _fdpasser_server($path) : $!" if $fd < 0;
    open($fh, '+<&=', $fd) || die "couldn't open";
  } else {
    socket($fh, AF_UNIX, SOCK_STREAM, AF_UNSPEC) || die "Unable to create AF_UNIX socket: $!";
    setsockopt($fh, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)) || die "Unable to setsockopt(SO_REUSEADDR): $!";
    unlink($path);
    bind($fh, Socket::sockaddr_un($path)) || die "Unable to bind AF_UNIX socket to $path : $!";
    listen($fh, $backlog) || die "Unable to listen on $path : $!";
  }

  return $fh;
}

sub fdpasser_accept {
  my ($listener_fh) = @_;

  my $passer_fh;



( run in 0.998 second using v1.01-cache-2.11-cpan-2398b32b56e )