On 05/10/13 09:08, Martin Pieuchot wrote:
> The diff below prevents libdnet to issue an unneeded SIOCSIFNETMASK
> ioctl(2) prior to SIOCSIFADDR.
> 
> I'd like to commit this change because I'm about to change the behavior
> of the SIOCSIFNETMASK and SIOCSIFDSTMASK ioctl(2)s in such way that they
> will fail if the interface has no previous configured IPv4 address. 
> 
> This port is the only one that I've seen that makes an incorrect use of
> this ioctl(2)s, if you are aware of another, please let me know.
> 
I think that this is needed as well, nmap uses its own modified libdnet.
 Cheers
  Giovanni

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/nmap/Makefile,v
retrieving revision 1.106
diff -u -p -u -p -r1.106 Makefile
--- Makefile	11 Mar 2013 11:35:50 -0000	1.106
+++ Makefile	10 May 2013 07:56:39 -0000
@@ -6,6 +6,7 @@ COMMENT-zenmap=	graphical frontend for n
 MODPY_EGG_VERSION=	6.25
 DISTNAME=		nmap-${MODPY_EGG_VERSION}
 PKGNAME-main=		${DISTNAME}
+REVISION-main=		0
 PKGNAME-zenmap=		nmap-zenmap-${MODPY_EGG_VERSION}
 
 CATEGORIES=	net security
Index: patches/patch-libdnet-stripped_src_intf_c
===================================================================
RCS file: /cvs/ports/net/nmap/patches/patch-libdnet-stripped_src_intf_c,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-libdnet-stripped_src_intf_c
--- patches/patch-libdnet-stripped_src_intf_c	19 Dec 2012 17:12:11 -0000	1.2
+++ patches/patch-libdnet-stripped_src_intf_c	10 May 2013 07:56:39 -0000
@@ -1,6 +1,6 @@
 $OpenBSD: patch-libdnet-stripped_src_intf_c,v 1.2 2012/12/19 17:12:11 giovanni Exp $
 --- libdnet-stripped/src/intf.c.orig	Mon Sep 10 03:17:28 2012
-+++ libdnet-stripped/src/intf.c	Fri Nov 30 12:41:47 2012
++++ libdnet-stripped/src/intf.c	Fri May 10 09:54:54 2013
 @@ -77,7 +77,13 @@
  /* XXX - superset of ifreq, for portable SIOC{A,D}IFADDR */
  struct dnet_ifaliasreq {
@@ -16,3 +16,12 @@ $OpenBSD: patch-libdnet-stripped_src_int
  	struct sockaddr ifra_brdaddr;
  	struct sockaddr ifra_mask;
  	int		ifra_cookie;	/* XXX - IRIX!@#$ */
+@@ -308,7 +314,7 @@ intf_set(intf_t *intf, const struct intf_entry *entry)
+ 	}
+ 	/* Set interface address. */
+ 	if (entry->intf_addr.addr_type == ADDR_TYPE_IP) {
+-#ifdef BSD
++#if definet(BSD) && !defined(__OpenBSD__)
+ 		/* XXX - why must this happen before SIOCSIFADDR? */
+ 		if (addr_btos(entry->intf_addr.addr_bits,
+ 		    &ifr.ifr_addr) == 0) {

Reply via email to