Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# IO::Socket::UNIX.pm # # Copyright (c) 1997-8 Graham Barr <[email protected]>. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself.
package IO::Socket::UNIX;
use strict; our(@ISA, $VERSION); use IO::Socket; use Socket; use Carp;
@ISA = qw(IO::Socket); $VERSION = "1.20";
IO::Socket::UNIX->register_domain( AF_UNIX );
sub new { my $class = shift; unshift(@_, "Peer") if @_ == 1; return $class->SUPER::new(@_); }
sub configure { my($sock,$arg) = @_; my($bport,$cport);
my $type = $arg->{Type} || SOCK_STREAM;
$sock->socket(AF_UNIX, $type, 0) or return undef;
if(exists $arg->{Local}) { my $addr = sockaddr_un($arg->{Local}); $sock->bind($addr) or return undef; } if(exists $arg->{Listen} && $type != SOCK_DGRAM) { $sock->listen($arg->{Listen} || 5) or return undef; } elsif(exists $arg->{Peer}) { my $addr = sockaddr_un($arg->{Peer}); $sock->connect($addr) or return undef; }
$sock; }
sub hostpath { @_ == 1 or croak 'usage: $sock->hostpath()'; my $n = $_[0]->sockname || return undef; (sockaddr_un($n))[0]; }
sub peerpath { @_ == 1 or croak 'usage: $sock->peerpath()'; my $n = $_[0]->peername || return undef; (sockaddr_un($n))[0]; }
1; # Keep require happy
__END__
=head1 NAME
IO::Socket::UNIX - Object interface for AF_UNIX domain sockets
=head1 SYNOPSIS
use IO::Socket::UNIX;
=head1 DESCRIPTION
C<IO::Socket::UNIX> provides an object interface to creating and using sockets in the AF_UNIX domain. It is built upon the L<IO::Socket> interface and inherits all the methods defined by L<IO::Socket>.
=head1 CONSTRUCTOR
=over 4
=item new ( [ARGS] )
Creates an C<IO::Socket::UNIX> object, which is a reference to a newly created symbol (see the C<Symbol> package). C<new> optionally takes arguments, these arguments are in key-value pairs.
In addition to the key-value pairs accepted by L<IO::Socket>, C<IO::Socket::UNIX> provides.
Type Type of socket (eg SOCK_STREAM or SOCK_DGRAM) Local Path to local fifo Peer Path to peer fifo Listen Create a listen socket
If the constructor is only passed a single argument, it is assumed to be a C<Peer> specification.
NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE As of VERSION 1.18 all IO::Socket objects have autoflush turned on by default. This was not the case with earlier releases.
NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
=back
=head1 METHODS
=over 4
=item hostpath()
Returns the pathname to the fifo at the local end
=item peerpath()
Returns the pathanme to the fifo at the peer end
=back
=head1 SEE ALSO
L<Socket>, L<IO::Socket>
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all bugs to <[email protected]>.
=head1 COPYRIGHT
Copyright (c) 1996-8 Graham Barr <[email protected]>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
=cut
|