r4077 - in /packages/libio-interface-perl/trunk: Changes Interface.pm Interface.xs Interface/ MANIFEST META.yml Makefile.PL debian/changelog debian/control t/simple.t

gregoa-guest at users.alioth.debian.org gregoa-guest at users.alioth.debian.org
Sun Oct 8 15:54:35 UTC 2006


Author: gregoa-guest
Date: Sun Oct  8 15:54:34 2006
New Revision: 4077

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=4077
Log:
* New upstream release.

Added:
    packages/libio-interface-perl/trunk/Interface/
      - copied from r4076, packages/libio-interface-perl/branches/upstream/current/Interface/
    packages/libio-interface-perl/trunk/t/simple.t
      - copied unchanged from r4076, packages/libio-interface-perl/branches/upstream/current/t/simple.t
Modified:
    packages/libio-interface-perl/trunk/Changes
    packages/libio-interface-perl/trunk/Interface.pm
    packages/libio-interface-perl/trunk/Interface.xs
    packages/libio-interface-perl/trunk/MANIFEST
    packages/libio-interface-perl/trunk/META.yml
    packages/libio-interface-perl/trunk/Makefile.PL
    packages/libio-interface-perl/trunk/debian/changelog
    packages/libio-interface-perl/trunk/debian/control

Modified: packages/libio-interface-perl/trunk/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/Changes?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/Changes (original)
+++ packages/libio-interface-perl/trunk/Changes Sun Oct  8 15:54:34 2006
@@ -1,4 +1,15 @@
 Revision history for Perl extension IO::Interface.
+1.02	Thu Sep 14 08:54:04 EDT 2006
+	More documentation fixes.
+
+1.01	Wed Sep 13 20:52:32 EDT 2006
+        Documentation fix.
+
+1.00	Wed Sep 13 17:01:46 EDT 2006
+        Introduced IO::Interface::Simple.
+        Added index methods.
+	Compiles on CygWin.
+
 0.98	Sep 03 18:20:20 EST 2003
 	Fixed minor documentation error.
 

Modified: packages/libio-interface-perl/trunk/Interface.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/Interface.pm?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/Interface.pm (original)
+++ packages/libio-interface-perl/trunk/Interface.pm Sun Oct  8 15:54:34 2006
@@ -5,11 +5,14 @@
 use Carp;
 use vars qw(@EXPORT @EXPORT_OK @ISA %EXPORT_TAGS $VERSION $AUTOLOAD);
 
+use IO::Socket;
+
 require Exporter;
 require DynaLoader;
 use AutoLoader;
 
-my @functions = qw(if_addr if_broadcast if_netmask if_dstaddr if_hwaddr if_flags if_list addr_to_interface);
+my @functions = qw(if_addr if_broadcast if_netmask if_dstaddr if_hwaddr if_flags if_list if_mtu if_metric
+		   addr_to_interface if_index if_indextoname );
 my @flags     = qw(IFF_ALLMULTI    IFF_AUTOMEDIA  IFF_BROADCAST
 		   IFF_DEBUG       IFF_LOOPBACK   IFF_MASTER
 		   IFF_MULTICAST   IFF_NOARP      IFF_NOTRAILERS
@@ -25,7 +28,7 @@
 @EXPORT = qw( );
 
 @ISA = qw(Exporter DynaLoader);
-$VERSION = '0.98';
+$VERSION = '1.02';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
@@ -72,13 +75,13 @@
   return "any" if $addr eq '0.0.0.0';
   my @interfaces = $sock->if_list;
   foreach (@interfaces) {
-    return $_ if $sock->if_addr($_) eq $addr;
+    my $if_addr = $sock->if_addr($_) or next;
+    return $_ if $if_addr eq $addr;
   }
   return;  # couldn't find it
 }
 
 # Autoload methods go after =cut, and are processed by the autosplit program.
-
 1;
 __END__
 
@@ -87,6 +90,44 @@
 IO::Interface - Perl extension for access to network card configuration information
 
 =head1 SYNOPSIS
+
+ # ======================
+ # the new, preferred API
+ # ======================
+
+ use IO::Interface::Simple;
+
+ my $if1   = IO::Interface::Simple->new('eth0');
+ my $if2   = IO::Interface::Simple->new_from_address('127.0.0.1');
+ my $if3   = IO::Interface::Simple->new_from_index(1);
+
+ my @interfaces = IO::Interface::Simple->interfaces;
+
+ for my $if (@interfaces) {
+    print "interface = $if\n";
+    print "addr =      ",$if->address,"\n",
+          "broadcast = ",$if->broadcast,"\n",
+          "netmask =   ",$if->netmask,"\n",
+          "dstaddr =   ",$if->dstaddr,"\n",
+          "hwaddr =    ",$if->hwaddr,"\n",
+          "mtu =       ",$if->mtu,"\n",
+          "metric =    ",$if->metric,"\n",
+          "index =     ",$if->index,"\n";
+
+    print "is running\n"     if $if->is_running;
+    print "is broadcast\n"   if $if->is_broadcast;
+    print "is p-to-p\n"      if $if->is_pt2pt;
+    print "is loopback\n"    if $if->is_loopback;
+    print "is promiscuous\n" if $if->is_promiscuous;
+    print "is multicast\n"   if $if->is_multicast;
+    print "is notrailers\n"  if $if->is_notrailers;
+    print "is noarp\n"       if $if->is_noarp;
+  }
+
+
+  # ===========
+  # the old API
+  # ===========
 
   use IO::Socket;
   use IO::Interface qw(:flags);
@@ -112,7 +153,7 @@
     print "is notrailers\n"  if $flags & IFF_NOTRAILERS;
     print "is noarp\n"       if $flags & IFF_NOARP;
   }
-  
+
   my $interface = $s->addr_to_interface('127.0.0.1');
 
 
@@ -122,6 +163,9 @@
 be used to retrieve and change information about the network
 interfaces on your system.  In addition to the object-oriented access
 methods, you can use a function-oriented style.
+
+THIS API IS DEPRECATED. Please see L<IO::Interface::Simple> for the
+preferred way to get and set interface configuration information.
 
 =head2 Creating a Socket to Access Interface Information
 
@@ -247,6 +291,6 @@
 
 =head1 SEE ALSO
 
-perl(1), IO::Socket(3), IO::Multicast(3)
+perl(1), IO::Socket(3), IO::Multicast(3), L<IO::Interface::Simple>
 
 =cut

Modified: packages/libio-interface-perl/trunk/Interface.xs
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/Interface.xs?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/Interface.xs (original)
+++ packages/libio-interface-perl/trunk/Interface.xs Sun Oct  8 15:54:34 2006
@@ -401,7 +401,11 @@
 	 newaddr = SvPV(ST(2),len);
 	 if ( inet_aton(newaddr,&((struct sockaddr_in*)&ifr.ifr_addr)->sin_addr) == 0 ) 
 	   croak("Invalid inet address");
-	 operation = SIOCSIFADDR; 
+#if defined(SIOCSIFADDR)
+	 operation = SIOCSIFADDR;
+#else
+	 croak("Cannot set interface address on this platform");
+#endif
        } else {
 	 operation = SIOCGIFADDR;
        }
@@ -436,7 +440,11 @@
        newaddr = SvPV(ST(2),len);
        if ( inet_aton(newaddr,&((struct sockaddr_in*)&ifr.ifr_addr)->sin_addr) == 0 ) 
 	 croak("Invalid inet address");
-         operation = SIOCSIFBRDADDR; 
+#if defined(SIOCSIFBRDADDR)
+         operation = SIOCSIFBRDADDR;
+#else
+         croak("Cannot set broadcast address on this platform");
+#endif 
      } else {
 	  operation = SIOCGIFBRDADDR;
      }
@@ -470,7 +478,11 @@
        newaddr = SvPV(ST(2),len);
        if ( inet_aton(newaddr,&((struct sockaddr_in*)&ifr.ifr_addr)->sin_addr) == 0 ) 
 	 croak("Invalid inet address");
+#if defined(SIOCSIFNETMASK)
          operation = SIOCSIFNETMASK; 
+#else
+         croak("Cannot set netmask on this platform");
+#endif
      } else {
 	  operation = SIOCGIFNETMASK;
      }
@@ -504,7 +516,11 @@
        newaddr = SvPV(ST(2),len);
        if ( inet_aton(newaddr,&((struct sockaddr_in*)&ifr.ifr_addr)->sin_addr) == 0 ) 
 	 croak("Invalid inet address");
+#if defined(SIOCSIFDSTADDR)
        operation = SIOCSIFDSTADDR;
+#else
+       croak("Cannot set destination address on this platform");
+#endif
      } else {
        operation = SIOCGIFDSTADDR;
      }
@@ -538,7 +554,11 @@
        newaddr = SvPV(ST(2),len);
        if (parse_hwaddr(newaddr,&ifr.ifr_hwaddr) == NULL)
 	 croak("Invalid hardware address");
+#if defined(SIOCSIFHWADDR)
        operation = SIOCSIFHWADDR;
+#else
+       croak("Cannot set hw address on this platform");
+#endif
      } else {
        operation = SIOCGIFHWADDR;
      }
@@ -566,12 +586,112 @@
      strncpy(ifr.ifr_name,name,IFNAMSIZ-1);
      if (items > 2) {
        ifr.ifr_flags = SvIV(ST(2));
+#if defined(SIOCSIFFLAGS)
        operation = SIOCSIFFLAGS;
+#else
+       croak("Cannot set flags on this platform.");
+#endif
      } else {
        operation = SIOCGIFFLAGS;
      }
      if (!Ioctl(sock,operation,&ifr)) XSRETURN_UNDEF;
      RETVAL = ifr.ifr_flags;
+   }
+   OUTPUT:
+     RETVAL
+
+int
+if_mtu(sock, name, ...)
+     InputStream sock
+     char*       name
+     PROTOTYPE: $$;$
+     PREINIT:
+     int            operation,flags;
+     struct ifreq   ifr;
+     CODE:
+   {
+#if !(defined(HAS_IOCTL) && defined(SIOCGIFFLAGS))
+     XSRETURN_UNDEF;
+#endif
+     bzero((void*)&ifr,sizeof(struct ifreq));
+     strncpy(ifr.ifr_name,name,IFNAMSIZ-1);
+     if (items > 2) {
+       ifr.ifr_flags = SvIV(ST(2));
+#if defined(SIOCSIFMTU)
+       operation = SIOCSIFMTU;
+#else
+	 croak("Cannot set MTU on this platform.");
+#endif
+     } else {
+       operation = SIOCGIFMTU;
+     }
+     if (!Ioctl(sock,operation,&ifr)) XSRETURN_UNDEF;
+     RETVAL = ifr.ifr_mtu;
+   }
+   OUTPUT:
+     RETVAL
+
+int
+if_metric(sock, name, ...)
+     InputStream sock
+     char*       name
+     PROTOTYPE: $$;$
+     PREINIT:
+     int            operation,flags;
+     struct ifreq   ifr;
+     CODE:
+   {
+#if !(defined(HAS_IOCTL) && defined(SIOCGIFFLAGS))
+     XSRETURN_UNDEF;
+#endif
+     bzero((void*)&ifr,sizeof(struct ifreq));
+     strncpy(ifr.ifr_name,name,IFNAMSIZ-1);
+     if (items > 2) {
+       ifr.ifr_flags = SvIV(ST(2));
+#if defined(SIOCSIFMETRIC)
+       operation = SIOCSIFMETRIC;
+#else
+	 croak("Cannot set metric on this platform.");
+#endif
+     } else {
+       operation = SIOCGIFMETRIC;
+     }
+     if (!Ioctl(sock,operation,&ifr)) XSRETURN_UNDEF;
+     RETVAL = ifr.ifr_metric;
+   }
+   OUTPUT:
+     RETVAL
+
+int
+if_index(sock, name, ...)
+     InputStream sock
+     char*       name
+     PROTOTYPE: $$;$
+     CODE:
+   {
+#ifdef __USE_BSD
+     RETVAL = if_nametoindex(name);
+#else
+     XSRETURN_UNDEF;
+#endif
+   }
+   OUTPUT:
+     RETVAL
+
+char*
+if_indextoname(sock, index, ...)
+     InputStream sock
+     int   index
+     PROTOTYPE: $$;$
+     PREINIT:
+     char  name[IFNAMSIZ];
+     CODE:
+   {
+#ifdef __USE_BSD
+     RETVAL = if_indextoname(index,name);
+#else
+    XSRETURN_UNDEF;
+#endif
    }
    OUTPUT:
      RETVAL
@@ -624,3 +744,4 @@
        }
        safefree(buf);
 #endif
+

Modified: packages/libio-interface-perl/trunk/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/MANIFEST?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/MANIFEST (original)
+++ packages/libio-interface-perl/trunk/MANIFEST Sun Oct  8 15:54:34 2006
@@ -2,8 +2,9 @@
 README
 Interface.pm
 Interface.xs
+Interface/Simple.pm
 MANIFEST
 Makefile.PL
 t/basic.t
-
+t/simple.t
 META.yml                                 Module meta-data (added by MakeMaker)

Modified: packages/libio-interface-perl/trunk/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/META.yml?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/META.yml (original)
+++ packages/libio-interface-perl/trunk/META.yml Sun Oct  8 15:54:34 2006
@@ -1,7 +1,7 @@
 # http://module-build.sourceforge.net/META-spec.html
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         IO-Interface
-version:      0.98
+version:      1.02
 version_from: Interface.pm
 installdirs:  site
 requires:

Modified: packages/libio-interface-perl/trunk/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/Makefile.PL?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/Makefile.PL (original)
+++ packages/libio-interface-perl/trunk/Makefile.PL Sun Oct  8 15:54:34 2006
@@ -9,6 +9,7 @@
     'VERSION_FROM' => 'Interface.pm', # finds $VERSION
     'LIBS'	=> ["@libs"],   # e.g., '-lm' 
     'INC'	=> '',     # e.g., '-I/usr/include/other' 
+    PMLIBDIRS   => ['Interface'],
     CONFIGURE	=> sub {
         my %attrs;
         print "Checking for getifaddrs()...";

Modified: packages/libio-interface-perl/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/debian/changelog?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/debian/changelog (original)
+++ packages/libio-interface-perl/trunk/debian/changelog Sun Oct  8 15:54:34 2006
@@ -1,3 +1,9 @@
+libio-interface-perl (1.02-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- gregor herrmann <gregor+debian at comodo.priv.at>  Sun,  8 Oct 2006 17:53:03 +0200
+
 libio-interface-perl (0.98-3) unstable; urgency=low
 
   * Depend on ${shlibs:Depends} to pick up the proper libc dependency.

Modified: packages/libio-interface-perl/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-interface-perl/trunk/debian/control?rev=4077&op=diff
==============================================================================
--- packages/libio-interface-perl/trunk/debian/control (original)
+++ packages/libio-interface-perl/trunk/debian/control Sun Oct  8 15:54:34 2006
@@ -2,7 +2,7 @@
 Section: perl
 Priority: optional
 Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
-Uploaders: Zak B. Elep <zakame at spunge.org>, Carlo Segre <segre at debian.org>, Russ Allbery <rra at debian.org>
+Uploaders: Zak B. Elep <zakame at spunge.org>, Carlo Segre <segre at debian.org>, Russ Allbery <rra at debian.org>, gregor herrmann <gregor+debian at comodo.priv.at>
 Build-Depends: debhelper (>= 5.0.0), perl (>= 5.8)
 Standards-Version: 3.7.2
 XS-Vcs-Svn: svn://svn.debian.org/svn/pkg-perl/packages/libio-interface-perl/trunk/




More information about the Pkg-perl-cvs-commits mailing list