diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h index 024339ab8..68d3efaba 100644 --- a/src/ap/ap_drv_ops.h +++ b/src/ap/ap_drv_ops.h @@ -1,6 +1,6 @@ /* * hostapd - Driver operations - * Copyright (c) 2009, Jouni Malinen + * Copyright (c) 2009-2013, Jouni Malinen * * This software may be distributed under the terms of the BSD license. * See README for more details. @@ -249,4 +249,12 @@ static inline int hostapd_get_country(struct hostapd_data *hapd, char *alpha2) return hapd->driver->get_country(hapd->drv_priv, alpha2); } +static inline const char * hostapd_drv_get_radio_name(struct hostapd_data *hapd) +{ + if (hapd->driver == NULL || hapd->drv_priv == NULL || + hapd->driver->get_radio_name == NULL) + return NULL; + return hapd->driver->get_radio_name(hapd->drv_priv); +} + #endif /* AP_DRV_OPS */ diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 3483b6486..673c8140e 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -965,6 +965,14 @@ static int setup_interface(struct hostapd_iface *iface) struct hostapd_data *hapd = iface->bss[0]; size_t i; + if (!iface->phy[0]) { + const char *phy = hostapd_drv_get_radio_name(hapd); + if (phy) { + wpa_printf(MSG_DEBUG, "phy: %s", phy); + os_strlcpy(iface->phy, phy, sizeof(iface->phy)); + } + } + /* * Make sure that all BSSes get configured with a pointer to the same * driver interface.