From: Masashi Honma Date: Sat, 15 Aug 2009 17:59:16 +0000 (+0300) Subject: NetBSD: Fix wired IEEE 802.1X problem X-Git-Tag: hostap_0_7_0~236 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d43430d43d3592daceced77206fea5eb54346b05;p=thirdparty%2Fhostap.git NetBSD: Fix wired IEEE 802.1X problem On NetBSD 5.0, when I use wired 802.1X, "Invalid argument" occurs on SIOCADDMULTI ioctl and 802.1X fails. I tried FreeBSD code, but "Address family not supported by protocol family" occurs on SIOCADDMULTI ioctl and 802.1X fails, too. This patch solves this issue. I have tested with these: OS : NetBSD 5.0 EAP : EAP-MD5 Switch : CentreCOM 8724SL --- diff --git a/src/drivers/driver_wired.c b/src/drivers/driver_wired.c index a3657e58e..29812644f 100644 --- a/src/drivers/driver_wired.c +++ b/src/drivers/driver_wired.c @@ -474,6 +474,15 @@ static int wpa_driver_wired_multi(const char *ifname, const u8 *addr, int add) os_memcpy(LLADDR(dlp), addr, ETH_ALEN); } #endif /* __FreeBSD__ */ +#ifdef __NetBSD__ + { + struct sockaddr *sap; + sap = (struct sockaddr *) &ifr.ifr_addr; + sap->sa_len = sizeof(struct sockaddr); + sap->sa_family = AF_UNSPEC; + os_memcpy(sap->sa_data, addr, ETH_ALEN); + } +#endif /* __NetBSD__ */ if (ioctl(s, add ? SIOCADDMULTI : SIOCDELMULTI, (caddr_t) &ifr) < 0) { perror("ioctl[SIOC{ADD/DEL}MULTI]");