Subject: Re: dhcpd
To: Greg Troxel <gdt@ir.bbn.com>
From: Hisashi T Fujinaka <htodd@twofifty.com>
List: tech-net
Date: 09/12/2007 20:48:14
On Wed, 12 Sep 2007, Greg Troxel wrote:

> If anyone wants to try this change, I think it will fix dhcp, but I
> haven't even compiled it.  (The code looks like it has more problems -
> lending weight to the 'all users of SIOCGIFCONF shoudl be converted to
> getifaddrs.)  The if being changed will never be taken in -current.
>
> Index: dist/dhcp/common/discover.c
> ===================================================================
> RCS file: /cvsroot/src/dist/dhcp/common/discover.c,v
> retrieving revision 1.9
> diff -u -p -r1.9 discover.c
> --- dist/dhcp/common/discover.c	31 May 2007 02:58:10 -0000	1.9
> +++ dist/dhcp/common/discover.c	13 Sep 2007 00:07:07 -0000
> @@ -235,7 +235,7 @@ void discover_interfaces (state)
>
> 		memcpy(&ifcpy, (caddr_t)ic.ifc_req + i, sizeof(struct ifreq));
> #ifdef HAVE_SA_LEN
> -		if (ifp -> ifr_addr.sa_len > sizeof (struct sockaddr)) {
> +		if (ifp -> ifr_addr.sa_len > sizeof (ifp.ifr_ifru)) {
> 			if (sizeof(struct ifreq) + ifp->ifr_addr.sa_len >
> 			    sizeof(ifcpy))
> 				break;

Hmm, what I get is:
#   compile  common/discover.o
/usr/src/obj.i386/tooldir.NetBSD-4.99.31-i386/bin/i386--netbsdelf-gcc -O2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wno-traditional  -Werror  -fno-strict-aliasing -fstack-protector -Wstack-protector --param ssp-buffer-size=1   -I/usr/src/dist/dhcp -I/usr/src/dist/dhcp/includes -Wno-unused  -D_FORTIFY_SOURCE=2  -nostdinc -isystem /usr/include -c    /usr/src/dist/dhcp/common/discover.c -o discover.o
/usr/src/dist/dhcp/common/discover.c: In function 'discover_interfaces':
/usr/src/dist/dhcp/common/discover.c:238: error: request for member 'ifr_ifru' in something not a structure or union
*** Error code 1

-- 
Hisashi T Fujinaka - htodd@twofifty.com
BSEE(6/86) + BSChem(3/95) + BAEnglish(8/95) + MSCS(8/03) + $2.50 = latte