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