[PATCH] DragonFly BSD: Fix wired IEEE 802.1x
Masashi Honma
honma
Sun Sep 27 16:58:40 PDT 2009
Hello.
On DragonFly BSD, wired IEEE 802.1x fails with this message.
ioctl[SIOC{ADD/DEL}MULTI]: Invalid argument
This patch solves this issue.
diff --git a/src/drivers/driver_wired.c b/src/drivers/driver_wired.c
index 2eed51f..667ed4b 100644
--- a/src/drivers/driver_wired.c
+++ b/src/drivers/driver_wired.c
@@ -21,9 +21,9 @@
#include <net/if_arp.h>
#include <net/if.h>
#endif /* __linux__ */
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__DragonFly__)
#include <net/if_dl.h>
-#endif /* __FreeBSD__ */
+#endif /* defined(__FreeBSD__) || defined(__DragonFly__) */
#include "common.h"
#include "driver.h"
@@ -461,7 +461,7 @@ static int wpa_driver_wired_multi(const char *ifname, const u8 *addr, int add)
ifr.ifr_hwaddr.sa_family = AF_UNSPEC;
os_memcpy(ifr.ifr_hwaddr.sa_data, addr, ETH_ALEN);
#endif /* __linux__ */
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__DragonFly__)
{
struct sockaddr_dl *dlp;
dlp = (struct sockaddr_dl *) &ifr.ifr_addr;
@@ -473,7 +473,7 @@ static int wpa_driver_wired_multi(const char *ifname, const u8 *addr, int add)
dlp->sdl_slen = 0;
os_memcpy(LLADDR(dlp), addr, ETH_ALEN);
}
-#endif /* __FreeBSD__ */
+#endif /* defined(__FreeBSD__) || defined(__DragonFly__) */
#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
{
struct sockaddr *sap;
I have tested with these.
OS : DragonFly BSD 2.4.0
EAP : EAP-TLS
Switch : Cisco Catalyst 2950
Regards,
Masashi Honma.
More information about the Hostap
mailing list