On 2008/11/07 12:11, Mikko Tolmunen wrote: > try the following diff. Thanks Mikko.
Here are ports diffs for both versions, tested on i386, sparc64, amd64, arm (1.0 with my test program, 1.1 with sample/get_addr). I took care to make small patches so people coming later can see what really changed. (I deliberately didn't include the diff spam from the newer update-patches). any ok's? Index: 1.0/Makefile =================================================================== RCS file: /cvs/ports/net/libnet/1.0/Makefile,v retrieving revision 1.6 diff -u -p -r1.6 Makefile --- 1.0/Makefile 4 Jan 2008 17:48:37 -0000 1.6 +++ 1.0/Makefile 7 Nov 2008 20:57:49 -0000 @@ -2,7 +2,7 @@ REVISION= 1.0 VERSION= ${REVISION}.2a -PKGNAME= ${DISTNAME}p1 +PKGNAME= ${DISTNAME}p2 SHARED_LIBS= net 0.0 MASTER_SITES= http://www.packetfactory.net/libnet/dist/deprecated/ Index: 1.0/patches/patch-src_libnet_link_bpf_c =================================================================== RCS file: /cvs/ports/net/libnet/1.0/patches/patch-src_libnet_link_bpf_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_libnet_link_bpf_c --- 1.0/patches/patch-src_libnet_link_bpf_c 23 May 2005 23:50:40 -0000 1.1 +++ 1.0/patches/patch-src_libnet_link_bpf_c 7 Nov 2008 20:57:49 -0000 @@ -1,6 +1,6 @@ $OpenBSD: patch-src_libnet_link_bpf_c,v 1.1 2005/05/23 23:50:40 msf Exp $ ---- src/libnet_link_bpf.c.orig Mon Mar 14 11:23:41 2005 -+++ src/libnet_link_bpf.c Mon Mar 14 11:37:47 2005 +--- src/libnet_link_bpf.c.orig Mon Jan 8 01:13:48 2001 ++++ src/libnet_link_bpf.c Fri Nov 7 19:42:53 2008 @@ -61,7 +61,7 @@ libnet_bpf_open(char *errbuf) */ for (i = 0;;i++) @@ -71,3 +71,23 @@ $OpenBSD: patch-src_libnet_link_bpf_c,v goto bad; } #endif +@@ -250,6 +250,7 @@ libnet_get_hwaddr(struct libnet_link_int *l, const cha + char *buf, *next, *end; + struct if_msghdr *ifm; + struct sockaddr_dl *sdl; ++ struct sockaddr *sa; + struct ether_addr *ea = NULL; + + mib[0] = CTL_NET; +@@ -280,7 +281,10 @@ libnet_get_hwaddr(struct libnet_link_int *l, const cha + ifm = (struct if_msghdr *)next; + if (ifm->ifm_type == RTM_IFINFO) + { +- sdl = (struct sockaddr_dl *)(ifm + 1); ++ sa = (struct sockaddr *)(ifm + 1); ++ if (sa->sa_family != AF_LINK) ++ continue; ++ sdl = (struct sockaddr_dl *)sa; + if (strncmp(&sdl->sdl_data[0], device, sdl->sdl_nlen) == 0) + { + if (!(ea = malloc(sizeof(struct ether_addr)))) Index: 1.1/Makefile =================================================================== RCS file: /cvs/ports/net/libnet/1.1/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- 1.1/Makefile 4 Jan 2008 17:48:37 -0000 1.4 +++ 1.1/Makefile 7 Nov 2008 20:57:49 -0000 @@ -2,6 +2,7 @@ REVISION= 1.1 VERSION= ${REVISION}.2.1 +PKGNAME= ${DISTNAME}p0 SHARED_LIBS= net 11.0 WRKDIST= ${WRKDIR}/libnet Index: 1.1/patches/patch-src_libnet_link_bpf_c =================================================================== RCS file: 1.1/patches/patch-src_libnet_link_bpf_c diff -N 1.1/patches/patch-src_libnet_link_bpf_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ 1.1/patches/patch-src_libnet_link_bpf_c 7 Nov 2008 20:57:49 -0000 @@ -0,0 +1,24 @@ +$OpenBSD$ +--- src/libnet_link_bpf.c.orig Fri Nov 7 20:44:44 2008 ++++ src/libnet_link_bpf.c Fri Nov 7 20:46:01 2008 +@@ -259,6 +259,7 @@ libnet_get_hwaddr(libnet_t *l) + int8_t *buf, *next, *end; + struct if_msghdr *ifm; + struct sockaddr_dl *sdl; ++ struct sockaddr *sa; + struct libnet_ether_addr *ea = NULL; + + mib[0] = CTL_NET; +@@ -310,7 +311,11 @@ libnet_get_hwaddr(libnet_t *l) + ifm = (struct if_msghdr *)next; + if (ifm->ifm_type == RTM_IFINFO) + { +- sdl = (struct sockaddr_dl *)(ifm + 1); ++ sa = (struct sockaddr *)(ifm + 1); ++ if (sa->sa_family != AF_LINK) ++ continue; ++ sdl = (struct sockaddr_dl *)sa; ++ + if (strncmp(&sdl->sdl_data[0], l->device, sdl->sdl_nlen) == 0) + { + if (!(ea = malloc(sizeof(struct libnet_ether_addr))))