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