Regexp::DESTROY was only added in 5.8.1
[p5sagit/p5-mst-13.2.git] / ext / Socket / Socket.pm
index dce0e88..3d428a9 100644 (file)
@@ -1,7 +1,7 @@
 package Socket;
 
 our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = "1.75";
+$VERSION = "1.80";
 
 =head1 NAME
 
@@ -32,8 +32,8 @@ Socket, sockaddr_in, sockaddr_un, inet_aton, inet_ntoa - load the C socket.h def
 
     $proto = getprotobyname('tcp');
     socket(Socket_Handle, PF_UNIX, SOCK_STREAM, $proto);
-    unlink('/tmp/usock');
-    $sun = sockaddr_un('/tmp/usock');
+    unlink('/var/run/usock');
+    $sun = sockaddr_un('/var/run/usock');
     connect(Socket_Handle,$sun);
 
 =head1 DESCRIPTION
@@ -112,6 +112,15 @@ Note - does not return a number.
 Returns the 4-byte 'invalid' ip address.  Normally equivalent
 to inet_aton('255.255.255.255').
 
+=item sockaddr_family SOCKADDR
+
+Takes a sockaddr structure (as returned by pack_sockaddr_in(),
+pack_sockaddr_un() or the perl builtin functions getsockname() and
+getpeername()) and returns the address family tag.  It will match the
+constant AF_INET for a sockaddr_in and AF_UNIX for a sockaddr_un.  It
+can be used to figure out what unpacker to use for a sockaddr of
+unknown type.
+
 =item sockaddr_in PORT, ADDRESS
 
 =item sockaddr_in SOCKADDR_IN
@@ -173,7 +182,9 @@ require Exporter;
 use XSLoader ();
 @ISA = qw(Exporter);
 @EXPORT = qw(
-       inet_aton inet_ntoa pack_sockaddr_in unpack_sockaddr_in
+       inet_aton inet_ntoa
+       sockaddr_family
+       pack_sockaddr_in unpack_sockaddr_in
        pack_sockaddr_un unpack_sockaddr_un
        sockaddr_in sockaddr_un
        INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_NONE
@@ -212,6 +223,13 @@ use XSLoader ();
        AF_WAN
        AF_X25
        IOV_MAX
+       IP_OPTIONS
+       IP_HDRINCL
+       IP_TOS
+       IP_TTL
+       IP_RECVOPTS
+       IP_RECVRETOPTS
+       IP_RETOPTS
        MSG_BCAST
        MSG_BTAG
        MSG_CTLFLAGS
@@ -326,7 +344,13 @@ use XSLoader ();
 
 @EXPORT_OK = qw(CR LF CRLF $CR $LF $CRLF
 
+              IPPROTO_IP
+              IPPROTO_IPV6
+              IPPROTO_RAW
+              IPPROTO_ICMP
               IPPROTO_TCP
+              IPPROTO_UDP
+
               TCP_KEEPALIVE
               TCP_MAXRT
               TCP_MAXSEG