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:
Michael Braun 2013-08-04 21:45:50 +03:00 committed by Jouni Malinen
parent 85a6cdb571
commit c2db79f237
4 changed files with 13 additions and 15 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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) {

View file

@ -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))