diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h index b9d68321c..00d52408a 100644 --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -114,6 +114,7 @@ struct hostapd_vlan { struct hostapd_vlan *next; int vlan_id; /* VLAN ID or -1 (VLAN_ID_WILDCARD) for wildcard entry */ char ifname[IFNAMSIZ + 1]; + int configured; int dynamic_vlan; #ifdef CONFIG_FULL_DYNAMIC_VLAN diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c index 2499bf3ad..94ff9e46f 100644 --- a/src/ap/vlan_init.c +++ b/src/ap/vlan_init.c @@ -485,7 +485,8 @@ static void vlan_newlink(char *ifname, struct hostapd_data *hapd) wpa_printf(MSG_DEBUG, "VLAN: vlan_newlink(%s)", ifname); while (vlan) { - if (os_strcmp(ifname, vlan->ifname) == 0) { + if (os_strcmp(ifname, vlan->ifname) == 0 && !vlan->configured) { + vlan->configured = 1; if (hapd->conf->vlan_bridge[0]) { os_snprintf(br_name, sizeof(br_name), "%s%d",