* so bind it to the selected VLAN interface now, since the
* interface selection is not going to change anymore.
*/
- ap_sta_bind_vlan(hapd, sta, 0);
+ if (ap_sta_bind_vlan(hapd, sta, 0) < 0)
+ goto fail;
} else if (sta->vlan_id) {
/* VLAN ID already set (e.g., by PMKSA caching), so bind STA */
- ap_sta_bind_vlan(hapd, sta, 0);
+ if (ap_sta_bind_vlan(hapd, sta, 0) < 0)
+ goto fail;
}
hapd->drv.set_sta_flags(hapd, sta);
}
#endif /* CONFIG_NO_VLAN */
- ap_sta_bind_vlan(hapd, sta, old_vlanid);
+ if (ap_sta_bind_vlan(hapd, sta, old_vlanid) < 0)
+ break;
/* RFC 3580, Ch. 3.17 */
if (session_timeout_set && termination_action ==
#ifndef CONFIG_NO_VLAN
const char *iface;
struct hostapd_vlan *vlan = NULL;
+ int ret;
/*
* Do not proceed furthur if the vlan id remains same. We do not want
if (wpa_auth_sta_set_vlan(sta->wpa_sm, sta->vlan_id) < 0)
wpa_printf(MSG_INFO, "Failed to update VLAN-ID for WPA");
- return hapd->drv.set_sta_vlan(iface, hapd, sta->addr, sta->vlan_id);
+ ret = hapd->drv.set_sta_vlan(iface, hapd, sta->addr, sta->vlan_id);
+ if (ret < 0) {
+ hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
+ HOSTAPD_LEVEL_DEBUG, "could not bind the STA "
+ "entry to vlan_id=%d", sta->vlan_id);
+ }
+ return ret;
#else /* CONFIG_NO_VLAN */
return 0;
#endif /* CONFIG_NO_VLAN */