home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / perl / 5.8.8 / IO / Socket / UNIX.pm < prev   
Encoding:
Perl POD Document  |  2006-07-07  |  1.4 KB  |  70 lines

  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 Socket;
  13. use Carp;
  14.  
  15. @ISA = qw(IO::Socket);
  16. $VERSION = "1.22";
  17. $VERSION = eval $VERSION;
  18.  
  19. IO::Socket::UNIX->register_domain( AF_UNIX );
  20.  
  21. sub new {
  22.     my $class = shift;
  23.     unshift(@_, "Peer") if @_ == 1;
  24.     return $class->SUPER::new(@_);
  25. }
  26.  
  27. sub configure {
  28.     my($sock,$arg) = @_;
  29.     my($bport,$cport);
  30.  
  31.     my $type = $arg->{Type} || SOCK_STREAM;
  32.  
  33.     $sock->socket(AF_UNIX, $type, 0) or
  34.     return undef;
  35.  
  36.     if(exists $arg->{Local}) {
  37.     my $addr = sockaddr_un($arg->{Local});
  38.     $sock->bind($addr) or
  39.         return undef;
  40.     }
  41.     if(exists $arg->{Listen} && $type != SOCK_DGRAM) {
  42.     $sock->listen($arg->{Listen} || 5) or
  43.         return undef;
  44.     }
  45.     elsif(exists $arg->{Peer}) {
  46.     my $addr = sockaddr_un($arg->{Peer});
  47.     $sock->connect($addr) or
  48.         return undef;
  49.     }
  50.  
  51.     $sock;
  52. }
  53.  
  54. sub hostpath {
  55.     @_ == 1 or croak 'usage: $sock->hostpath()';
  56.     my $n = $_[0]->sockname || return undef;
  57.     (sockaddr_un($n))[0];
  58. }
  59.  
  60. sub peerpath {
  61.     @_ == 1 or croak 'usage: $sock->peerpath()';
  62.     my $n = $_[0]->peername || return undef;
  63.     (sockaddr_un($n))[0];
  64. }
  65.  
  66. 1; # Keep require happy
  67.  
  68. __END__
  69.  
  70.