[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 # IO::Socket::UNIX.pm 2 # 3 # Copyright (c) 1997-8 Graham Barr <gbarr@pobox.com>. All rights reserved. 4 # This program is free software; you can redistribute it and/or 5 # modify it under the same terms as Perl itself. 6 7 package IO::Socket::UNIX; 8 9 use strict; 10 our(@ISA, $VERSION); 11 use IO::Socket; 12 use Carp; 13 14 @ISA = qw(IO::Socket); 15 $VERSION = "1.23"; 16 $VERSION = eval $VERSION; 17 18 IO::Socket::UNIX->register_domain( AF_UNIX ); 19 20 sub new { 21 my $class = shift; 22 unshift(@_, "Peer") if @_ == 1; 23 return $class->SUPER::new(@_); 24 } 25 26 sub configure { 27 my($sock,$arg) = @_; 28 my($bport,$cport); 29 30 my $type = $arg->{Type} || SOCK_STREAM; 31 32 $sock->socket(AF_UNIX, $type, 0) or 33 return undef; 34 35 if(exists $arg->{Local}) { 36 my $addr = sockaddr_un($arg->{Local}); 37 $sock->bind($addr) or 38 return undef; 39 } 40 if(exists $arg->{Listen} && $type != SOCK_DGRAM) { 41 $sock->listen($arg->{Listen} || 5) or 42 return undef; 43 } 44 elsif(exists $arg->{Peer}) { 45 my $addr = sockaddr_un($arg->{Peer}); 46 $sock->connect($addr) or 47 return undef; 48 } 49 50 $sock; 51 } 52 53 sub hostpath { 54 @_ == 1 or croak 'usage: $sock->hostpath()'; 55 my $n = $_[0]->sockname || return undef; 56 (sockaddr_un($n))[0]; 57 } 58 59 sub peerpath { 60 @_ == 1 or croak 'usage: $sock->peerpath()'; 61 my $n = $_[0]->peername || return undef; 62 (sockaddr_un($n))[0]; 63 } 64 65 1; # Keep require happy 66 67 __END__ 68 69 =head1 NAME 70 71 IO::Socket::UNIX - Object interface for AF_UNIX domain sockets 72 73 =head1 SYNOPSIS 74 75 use IO::Socket::UNIX; 76 77 =head1 DESCRIPTION 78 79 C<IO::Socket::UNIX> provides an object interface to creating and using sockets 80 in the AF_UNIX domain. It is built upon the L<IO::Socket> interface and 81 inherits all the methods defined by L<IO::Socket>. 82 83 =head1 CONSTRUCTOR 84 85 =over 4 86 87 =item new ( [ARGS] ) 88 89 Creates an C<IO::Socket::UNIX> object, which is a reference to a 90 newly created symbol (see the C<Symbol> package). C<new> 91 optionally takes arguments, these arguments are in key-value pairs. 92 93 In addition to the key-value pairs accepted by L<IO::Socket>, 94 C<IO::Socket::UNIX> provides. 95 96 Type Type of socket (eg SOCK_STREAM or SOCK_DGRAM) 97 Local Path to local fifo 98 Peer Path to peer fifo 99 Listen Create a listen socket 100 101 If the constructor is only passed a single argument, it is assumed to 102 be a C<Peer> specification. 103 104 105 NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE 106 107 As of VERSION 1.18 all IO::Socket objects have autoflush turned on 108 by default. This was not the case with earlier releases. 109 110 NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE 111 112 =back 113 114 =head1 METHODS 115 116 =over 4 117 118 =item hostpath() 119 120 Returns the pathname to the fifo at the local end 121 122 =item peerpath() 123 124 Returns the pathanme to the fifo at the peer end 125 126 =back 127 128 =head1 SEE ALSO 129 130 L<Socket>, L<IO::Socket> 131 132 =head1 AUTHOR 133 134 Graham Barr. Currently maintained by the Perl Porters. Please report all 135 bugs to <perl5-porters@perl.org>. 136 137 =head1 COPYRIGHT 138 139 Copyright (c) 1996-8 Graham Barr <gbarr@pobox.com>. All rights reserved. 140 This program is free software; you can redistribute it and/or 141 modify it under the same terms as Perl itself. 142 143 =cut
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |