r12259 - in /branches/upstream/libnet-arp-perl/current: Changes get_mac_bsd.c send_packet_bsd.c

ghostbar-guest at users.alioth.debian.org ghostbar-guest at users.alioth.debian.org
Wed Jan 9 02:03:49 UTC 2008


Author: ghostbar-guest
Date: Wed Jan  9 02:03:49 2008
New Revision: 12259

URL: http://svn.debian.org/wsvn/?sc=1&rev=12259
Log:
[svn-upgrade] Integrating new upstream version, libnet-arp-perl (1.0.2)

Modified:
    branches/upstream/libnet-arp-perl/current/Changes
    branches/upstream/libnet-arp-perl/current/get_mac_bsd.c
    branches/upstream/libnet-arp-perl/current/send_packet_bsd.c

Modified: branches/upstream/libnet-arp-perl/current/Changes
URL: http://svn.debian.org/wsvn/branches/upstream/libnet-arp-perl/current/Changes?rev=12259&op=diff
==============================================================================
--- branches/upstream/libnet-arp-perl/current/Changes (original)
+++ branches/upstream/libnet-arp-perl/current/Changes Wed Jan  9 02:03:49 2008
@@ -1,3 +1,9 @@
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Changes between 1.0.1 and 1.0.2
+
+FreeBSD 7 bugfixes by Niels Bakker
+
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 
 Changes between 1.0 and 1.0.1

Modified: branches/upstream/libnet-arp-perl/current/get_mac_bsd.c
URL: http://svn.debian.org/wsvn/branches/upstream/libnet-arp-perl/current/get_mac_bsd.c?rev=12259&op=diff
==============================================================================
--- branches/upstream/libnet-arp-perl/current/get_mac_bsd.c (original)
+++ branches/upstream/libnet-arp-perl/current/get_mac_bsd.c Wed Jan  9 02:03:49 2008
@@ -5,6 +5,9 @@
 
 Programmed by Bastian Ballmann
 Last update: 09.02.2006
+
+Fixed for FreeBSD by Niels Bakker
+Last update: 2007-12-26
 
 This program is free software; you can redistribute 
 it and/or modify it under the terms of the 
@@ -19,13 +22,18 @@
 */
 
 #include <stdio.h>
+#include <string.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <ifaddrs.h>
 
+#include <net/if_dl.h>
+#include <net/if_types.h>
+#include <net/ethernet.h>
+
 int get_mac_bsd(u_char *dev, char *mac)
 {
-  struct ifaddrs *iface;
+  struct ifaddrs *iface, *iffirst;
 
   if(strlen(mac) > 0)
     strcpy(mac,"unknown");
@@ -35,28 +43,27 @@
   if(strlen(dev) == 0)
     return -1;
 
-  strcpy(mac,"unkown");
-  getifaddrs(&iface);
-  
+  strcpy(mac,"unknown");
+  if (getifaddrs(&iface))
+    return -1;
+
+  iffirst = iface;
   while(iface->ifa_next != NULL)
-    { 
+    {
       if(!strcmp(iface->ifa_name,dev))
 	{
-	  if(iface->ifa_addr->sa_family != AF_INET)
+	  if (iface->ifa_addr->sa_family == AF_LINK)
 	    {
-	      sprintf(mac,"%02x:%02x:%02x:%02x:%02x:%02x",	
-		      iface->ifa_addr->sa_data[0] & 0xff, 
-		      iface->ifa_addr->sa_data[1] & 0xff,
-		      iface->ifa_addr->sa_data[2] & 0xff, 
-		      iface->ifa_addr->sa_data[3] & 0xff,
-		      iface->ifa_addr->sa_data[4] & 0xff, 
-		      iface->ifa_addr->sa_data[5] & 0xff);
+	      struct sockaddr_dl *sdl = (struct sockaddr_dl *) iface->ifa_addr;
+	      sprintf(mac, "%s",
+		      ether_ntoa((struct ether_addr *)LLADDR(sdl)));
 	      break;
 	    }
 	}
-      
+
       iface = iface->ifa_next;	
     }
 
+  freeifaddrs(iffirst);
   return 0;
 }

Modified: branches/upstream/libnet-arp-perl/current/send_packet_bsd.c
URL: http://svn.debian.org/wsvn/branches/upstream/libnet-arp-perl/current/send_packet_bsd.c?rev=12259&op=diff
==============================================================================
--- branches/upstream/libnet-arp-perl/current/send_packet_bsd.c (original)
+++ branches/upstream/libnet-arp-perl/current/send_packet_bsd.c Wed Jan  9 02:03:49 2008
@@ -29,14 +29,14 @@
 int send_packet_bsd(u_char *dev, u_char *packet, u_int packetsize)
 {
   int bpffd, i;
-  char bpfdev[10];
+  char bpfdev[12];
 
   if( (strlen(dev) == 0) ||
       (packetsize == 0) )
     return 0;
 
   // Open a bpf device
-  for(i = 0; i < 9; i++)
+  for(i = 0; i < 512; i++)
     {
       sprintf(bpfdev,"/dev/bpf%d",i);
       if((bpffd = open(bpfdev,O_WRONLY)) > 0)




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