]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
interfaces: reset router and wlan capability bits
authorVincent Bernat <vbe@deezer.com>
Wed, 19 Feb 2014 14:50:41 +0000 (15:50 +0100)
committerVincent Bernat <vbe@deezer.com>
Wed, 19 Feb 2014 14:50:41 +0000 (15:50 +0100)
When adding capability for new interfaces, reset them if the interfaces
providing the capability are not present anymore. Also, add stationOnly
capability if no capability is currently present.

src/daemon/interfaces.c

index 1a39e18d9536a829d2b74bcfccaf7c1dd7c4fac9..86430e43f2a4d4df18469bd1d9eaabf3884a8e33 100644 (file)
@@ -321,12 +321,15 @@ interfaces_helper_chassis(struct lldpd *cfg,
        struct lldpd_hardware *hardware;
        char *name = NULL;
 
+       LOCAL_CHASSIS(cfg)->c_cap_enabled &= ~(LLDP_CAP_BRIDGE | LLDP_CAP_WLAN);
        TAILQ_FOREACH(iface, interfaces, next) {
                if (iface->type & IFACE_BRIDGE_T)
                        LOCAL_CHASSIS(cfg)->c_cap_enabled |= LLDP_CAP_BRIDGE;
                if (iface->type & IFACE_WIRELESS_T)
                        LOCAL_CHASSIS(cfg)->c_cap_enabled |= LLDP_CAP_WLAN;
        }
+       if (LOCAL_CHASSIS(cfg)->c_cap_enabled == 0)
+               LOCAL_CHASSIS(cfg)->c_cap_enabled = LLDP_CAP_STATION;
 
        if (LOCAL_CHASSIS(cfg)->c_id != NULL &&
            LOCAL_CHASSIS(cfg)->c_id_subtype == LLDP_CHASSISID_SUBTYPE_LLADDR)