VLAN: Remove vlan_tail
Everything in hostapd can be implemented efficiently without vlan_tail. Signed-hostap: Michael Braun <michael-dev@fami-braun.de>
This commit is contained in:
parent
85a6cdb571
commit
c2db79f237
4 changed files with 13 additions and 15 deletions
|
@ -93,11 +93,8 @@ static int hostapd_config_read_vlan_file(struct hostapd_bss_config *bss,
|
||||||
|
|
||||||
vlan->vlan_id = vlan_id;
|
vlan->vlan_id = vlan_id;
|
||||||
os_strlcpy(vlan->ifname, pos, sizeof(vlan->ifname));
|
os_strlcpy(vlan->ifname, pos, sizeof(vlan->ifname));
|
||||||
if (bss->vlan_tail)
|
vlan->next = bss->vlan;
|
||||||
bss->vlan_tail->next = vlan;
|
|
||||||
else
|
|
||||||
bss->vlan = vlan;
|
bss->vlan = vlan;
|
||||||
bss->vlan_tail = vlan;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
|
@ -327,7 +327,7 @@ struct hostapd_bss_config {
|
||||||
int wmm_enabled;
|
int wmm_enabled;
|
||||||
int wmm_uapsd;
|
int wmm_uapsd;
|
||||||
|
|
||||||
struct hostapd_vlan *vlan, *vlan_tail;
|
struct hostapd_vlan *vlan;
|
||||||
|
|
||||||
macaddr bssid;
|
macaddr bssid;
|
||||||
|
|
||||||
|
|
|
@ -689,15 +689,19 @@ int ap_sta_bind_vlan(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
if (sta->ssid->dynamic_vlan == DYNAMIC_VLAN_DISABLED)
|
if (sta->ssid->dynamic_vlan == DYNAMIC_VLAN_DISABLED)
|
||||||
sta->vlan_id = 0;
|
sta->vlan_id = 0;
|
||||||
else if (sta->vlan_id > 0) {
|
else if (sta->vlan_id > 0) {
|
||||||
|
struct hostapd_vlan *wildcard_vlan = NULL;
|
||||||
vlan = hapd->conf->vlan;
|
vlan = hapd->conf->vlan;
|
||||||
while (vlan) {
|
while (vlan) {
|
||||||
if (vlan->vlan_id == sta->vlan_id ||
|
if (vlan->vlan_id == sta->vlan_id)
|
||||||
vlan->vlan_id == VLAN_ID_WILDCARD) {
|
|
||||||
iface = vlan->ifname;
|
|
||||||
break;
|
break;
|
||||||
}
|
if (vlan->vlan_id == VLAN_ID_WILDCARD)
|
||||||
|
wildcard_vlan = vlan;
|
||||||
vlan = vlan->next;
|
vlan = vlan->next;
|
||||||
}
|
}
|
||||||
|
if (!vlan)
|
||||||
|
vlan = wildcard_vlan;
|
||||||
|
if (vlan)
|
||||||
|
iface = vlan->ifname;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sta->vlan_id > 0 && vlan == NULL) {
|
if (sta->vlan_id > 0 && vlan == NULL) {
|
||||||
|
|
|
@ -1004,11 +1004,8 @@ int vlan_init(struct hostapd_data *hapd)
|
||||||
vlan->vlan_id = VLAN_ID_WILDCARD;
|
vlan->vlan_id = VLAN_ID_WILDCARD;
|
||||||
os_snprintf(vlan->ifname, sizeof(vlan->ifname), "%s.#",
|
os_snprintf(vlan->ifname, sizeof(vlan->ifname), "%s.#",
|
||||||
hapd->conf->iface);
|
hapd->conf->iface);
|
||||||
if (hapd->conf->vlan_tail)
|
vlan->next = hapd->conf->vlan;
|
||||||
hapd->conf->vlan_tail->next = vlan;
|
|
||||||
else
|
|
||||||
hapd->conf->vlan = vlan;
|
hapd->conf->vlan = vlan;
|
||||||
hapd->conf->vlan_tail = vlan;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vlan_dynamic_add(hapd, hapd->conf->vlan))
|
if (vlan_dynamic_add(hapd, hapd->conf->vlan))
|
||||||
|
|
Loading…
Reference in a new issue