From: Michael Braun Date: Fri, 10 Apr 2015 12:49:48 +0000 (+0200) Subject: vlan: Ignore DELLINK on interfaces that exists X-Git-Tag: hostap_2_5~859 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=371205dd0c1bd9ed40b815827ff9e2ccab484d19;p=thirdparty%2Fhostap.git vlan: Ignore DELLINK on interfaces that exists When hitting > Failed to create interface wlan3.1: -23 (Too many open files in system) > Try to remove and re-create wlan3.1 hostapd deletes the AP_VLAN interface and then recreates it. Thus the kernel assigns the same ifidx to the new interfaces and sends DELLINK and NEWLINK mesages. As the DELLINK messages are processed after the struct hostapd_vlan is added, hostapd deletes the struct hostapd_vlan entry, deconfigures the AP_VLAN interface and leaves vlan_newlink nothing to find afterwards. So this patch makes DELLINK messages to be ignored when the interface exists. Signed-off-by: Michael Braun --- diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c index dc6501997..2499bf3ad 100644 --- a/src/ap/vlan_init.c +++ b/src/ap/vlan_init.c @@ -651,6 +651,11 @@ vlan_read_ifnames(struct nlmsghdr *h, size_t len, int del, if (!ifname[0]) return; + if (del && if_nametoindex(ifname)) { + /* interface still exists, race condition -> + * iface has just been recreated */ + return; + } wpa_printf(MSG_DEBUG, "VLAN: RTM_%sLINK: ifi_index=%d ifname=%s ifi_family=%d ifi_flags=0x%x (%s%s%s%s)",