OpenBSD: wired IEEE 802.1X for OpenBSD
This is a patch for OpenBSD wired IEEE 802.1X. This is only for wired, not wireless, because OpenBSD uses wpa_supplicant only on wired now. http://www.openbsd.org/cgi-bin/cvsweb/ports/security/wpa_supplicant/ I have tested with these. OS : OpenBSD 4.5 EAP : EAP-TLS Switch : CentreCOM 8724SL
This commit is contained in:
parent
fe23eb5696
commit
80cc6bf6d0
3 changed files with 13 additions and 5 deletions
|
@ -474,7 +474,7 @@ static int wpa_driver_wired_multi(const char *ifname, const u8 *addr, int add)
|
||||||
os_memcpy(LLADDR(dlp), addr, ETH_ALEN);
|
os_memcpy(LLADDR(dlp), addr, ETH_ALEN);
|
||||||
}
|
}
|
||||||
#endif /* __FreeBSD__ */
|
#endif /* __FreeBSD__ */
|
||||||
#ifdef __NetBSD__
|
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
||||||
{
|
{
|
||||||
struct sockaddr *sap;
|
struct sockaddr *sap;
|
||||||
sap = (struct sockaddr *) &ifr.ifr_addr;
|
sap = (struct sockaddr *) &ifr.ifr_addr;
|
||||||
|
@ -482,7 +482,7 @@ static int wpa_driver_wired_multi(const char *ifname, const u8 *addr, int add)
|
||||||
sap->sa_family = AF_UNSPEC;
|
sap->sa_family = AF_UNSPEC;
|
||||||
os_memcpy(sap->sa_data, addr, ETH_ALEN);
|
os_memcpy(sap->sa_data, addr, ETH_ALEN);
|
||||||
}
|
}
|
||||||
#endif /* __NetBSD__ */
|
#endif /* defined(__NetBSD__) || defined(__OpenBSD__) */
|
||||||
|
|
||||||
if (ioctl(s, add ? SIOCADDMULTI : SIOCDELMULTI, (caddr_t) &ifr) < 0) {
|
if (ioctl(s, add ? SIOCADDMULTI : SIOCDELMULTI, (caddr_t) &ifr) < 0) {
|
||||||
perror("ioctl[SIOC{ADD/DEL}MULTI]");
|
perror("ioctl[SIOC{ADD/DEL}MULTI]");
|
||||||
|
|
|
@ -22,17 +22,24 @@
|
||||||
#include <byteswap.h>
|
#include <byteswap.h>
|
||||||
#endif /* __linux__ */
|
#endif /* __linux__ */
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
|
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
|
||||||
|
defined(__OpenBSD__)
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/endian.h>
|
#include <sys/endian.h>
|
||||||
#define __BYTE_ORDER _BYTE_ORDER
|
#define __BYTE_ORDER _BYTE_ORDER
|
||||||
#define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
#define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||||
#define __BIG_ENDIAN _BIG_ENDIAN
|
#define __BIG_ENDIAN _BIG_ENDIAN
|
||||||
|
#ifdef __OpenBSD__
|
||||||
|
#define bswap_16 swap16
|
||||||
|
#define bswap_32 swap32
|
||||||
|
#define bswap_64 swap64
|
||||||
|
#else /* __OpenBSD__ */
|
||||||
#define bswap_16 bswap16
|
#define bswap_16 bswap16
|
||||||
#define bswap_32 bswap32
|
#define bswap_32 bswap32
|
||||||
#define bswap_64 bswap64
|
#define bswap_64 bswap64
|
||||||
|
#endif /* __OpenBSD__ */
|
||||||
#endif /* defined(__FreeBSD__) || defined(__NetBSD__) ||
|
#endif /* defined(__FreeBSD__) || defined(__NetBSD__) ||
|
||||||
* defined(__DragonFly__) */
|
* defined(__DragonFly__) || defined(__OpenBSD__) */
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
|
@ -227,7 +227,8 @@ int os_setenv(const char *name, const char *value, int overwrite)
|
||||||
|
|
||||||
int os_unsetenv(const char *name)
|
int os_unsetenv(const char *name)
|
||||||
{
|
{
|
||||||
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
|
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || \
|
||||||
|
defined(__OpenBSD__)
|
||||||
unsetenv(name);
|
unsetenv(name);
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in a new issue