Added a new driver wrapper, "none", for RADIUS server only configuration
This can be used to limit hostapd code size and clean up debug output for configurations that do not use hostapd to control AP functionality.
This commit is contained in:
parent
510c02d4a3
commit
d64dabeebc
6 changed files with 80 additions and 2 deletions
|
@ -15,6 +15,8 @@ ChangeLog for hostapd
|
||||||
authenticate or (re)associate request frames dropping association)
|
authenticate or (re)associate request frames dropping association)
|
||||||
* added support for using SHA256-based stronger key derivation for WPA2
|
* added support for using SHA256-based stronger key derivation for WPA2
|
||||||
(IEEE 802.11w)
|
(IEEE 802.11w)
|
||||||
|
* added new "driver wrapper" for RADIUS-only configuration
|
||||||
|
(driver=none in hostapd.conf; CONFIG_DRIVER_NONE=y in .config)
|
||||||
|
|
||||||
2008-08-10 - v0.6.4
|
2008-08-10 - v0.6.4
|
||||||
* added peer identity into EAP-FAST PAC-Opaque and skip Phase 2
|
* added peer identity into EAP-FAST PAC-Opaque and skip Phase 2
|
||||||
|
|
|
@ -139,6 +139,11 @@ CFLAGS += -DCONFIG_DRIVER_TEST
|
||||||
OBJS += driver_test.o
|
OBJS += driver_test.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_DRIVER_NONE
|
||||||
|
CFLAGS += -DCONFIG_DRIVER_NONE
|
||||||
|
OBJS += driver_none.o
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_L2_PACKET
|
ifdef CONFIG_L2_PACKET
|
||||||
ifdef CONFIG_DNET_PCAP
|
ifdef CONFIG_DNET_PCAP
|
||||||
ifdef CONFIG_L2_FREEBSD
|
ifdef CONFIG_L2_FREEBSD
|
||||||
|
|
|
@ -35,6 +35,9 @@ CONFIG_DRIVER_HOSTAP=y
|
||||||
#CFLAGS += -I/usr/local/include
|
#CFLAGS += -I/usr/local/include
|
||||||
#LIBS += -L/usr/local/lib
|
#LIBS += -L/usr/local/lib
|
||||||
|
|
||||||
|
# Driver interface for no driver (e.g., RADIUS server only)
|
||||||
|
#CONFIG_DRIVER_NONE=y
|
||||||
|
|
||||||
# IEEE 802.11F/IAPP
|
# IEEE 802.11F/IAPP
|
||||||
CONFIG_IAPP=y
|
CONFIG_IAPP=y
|
||||||
|
|
||||||
|
|
62
hostapd/driver_none.c
Normal file
62
hostapd/driver_none.c
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* hostapd / Driver interface for RADIUS server only (no driver)
|
||||||
|
* Copyright (c) 2008, Atheros Communications
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* Alternatively, this software may be distributed under the terms of BSD
|
||||||
|
* license.
|
||||||
|
*
|
||||||
|
* See README and COPYING for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "includes.h"
|
||||||
|
|
||||||
|
#include "hostapd.h"
|
||||||
|
#include "driver.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct none_driver_data {
|
||||||
|
struct hostapd_data *hapd;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static void * none_driver_init(struct hostapd_data *hapd)
|
||||||
|
{
|
||||||
|
struct none_driver_data *drv;
|
||||||
|
|
||||||
|
drv = os_zalloc(sizeof(struct none_driver_data));
|
||||||
|
if (drv == NULL) {
|
||||||
|
wpa_printf(MSG_ERROR, "Could not allocate memory for none "
|
||||||
|
"driver data");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
drv->hapd = hapd;
|
||||||
|
|
||||||
|
return drv;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void none_driver_deinit(void *priv)
|
||||||
|
{
|
||||||
|
struct none_driver_data *drv = priv;
|
||||||
|
|
||||||
|
os_free(drv);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int none_driver_send_ether(void *priv, const u8 *dst, const u8 *src,
|
||||||
|
u16 proto, const u8 *data, size_t data_len)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const struct wpa_driver_ops wpa_driver_none_ops = {
|
||||||
|
.name = "none",
|
||||||
|
.init = none_driver_init,
|
||||||
|
.deinit = none_driver_deinit,
|
||||||
|
.send_ether = none_driver_send_ether,
|
||||||
|
};
|
|
@ -36,6 +36,9 @@ extern struct wpa_driver_ops wpa_driver_wired_ops; /* driver_wired.c */
|
||||||
#ifdef CONFIG_DRIVER_TEST
|
#ifdef CONFIG_DRIVER_TEST
|
||||||
extern struct wpa_driver_ops wpa_driver_test_ops; /* driver_test.c */
|
extern struct wpa_driver_ops wpa_driver_test_ops; /* driver_test.c */
|
||||||
#endif /* CONFIG_DRIVER_TEST */
|
#endif /* CONFIG_DRIVER_TEST */
|
||||||
|
#ifdef CONFIG_DRIVER_NONE
|
||||||
|
extern struct wpa_driver_ops wpa_driver_none_ops; /* driver_none.c */
|
||||||
|
#endif /* CONFIG_DRIVER_NONE */
|
||||||
|
|
||||||
|
|
||||||
struct wpa_driver_ops *hostapd_drivers[] =
|
struct wpa_driver_ops *hostapd_drivers[] =
|
||||||
|
@ -61,5 +64,8 @@ struct wpa_driver_ops *hostapd_drivers[] =
|
||||||
#ifdef CONFIG_DRIVER_TEST
|
#ifdef CONFIG_DRIVER_TEST
|
||||||
&wpa_driver_test_ops,
|
&wpa_driver_test_ops,
|
||||||
#endif /* CONFIG_DRIVER_TEST */
|
#endif /* CONFIG_DRIVER_TEST */
|
||||||
|
#ifdef CONFIG_DRIVER_NONE
|
||||||
|
&wpa_driver_none_ops,
|
||||||
|
#endif /* CONFIG_DRIVER_NONE */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,9 +10,9 @@ interface=wlan0
|
||||||
# included in a bridge. This parameter is not used with Host AP driver.
|
# included in a bridge. This parameter is not used with Host AP driver.
|
||||||
#bridge=br0
|
#bridge=br0
|
||||||
|
|
||||||
# Driver interface type (hostap/wired/madwifi/prism54/test/nl80211/bsd);
|
# Driver interface type (hostap/wired/madwifi/prism54/test/none/nl80211/bsd);
|
||||||
# default: hostap)
|
# default: hostap)
|
||||||
# Use driver=test if building hostapd as a standalone RADIUS server that does
|
# Use driver=none if building hostapd as a standalone RADIUS server that does
|
||||||
# not control any wireless/wired driver.
|
# not control any wireless/wired driver.
|
||||||
# driver=hostap
|
# driver=hostap
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue