From: Vincent Bernat Date: Wed, 26 Sep 2012 19:08:08 +0000 (+0200) Subject: interfaces: don't listen to enslaved interface until master interface has been configured X-Git-Tag: 0.7.0~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ba93c521b3b287eacc580d067dce1831f1e336a1;p=thirdparty%2Flldpd.git interfaces: don't listen to enslaved interface until master interface has been configured In case of errors, we were leaking events. --- diff --git a/src/daemon/interfaces.c b/src/daemon/interfaces.c index d17c8cd8..7441080a 100644 --- a/src/daemon/interfaces.c +++ b/src/daemon/interfaces.c @@ -780,7 +780,6 @@ iface_bond_init(struct lldpd *cfg, struct lldpd_hardware *hardware) if ((fd = priv_iface_init(hardware->h_ifname)) == -1) return -1; hardware->h_sendfd = fd; - levent_hardware_add_fd(hardware, fd); if ((status = iface_set_filter(hardware->h_ifname, fd)) != 0) { close(fd); return status; @@ -809,6 +808,7 @@ iface_bond_init(struct lldpd *cfg, struct lldpd_hardware *hardware) } iface_multicast(cfg, mastername, 0); + levent_hardware_add_fd(hardware, hardware->h_sendfd); levent_hardware_add_fd(hardware, fd); LLOG_DEBUG("interface %s initialized (fd=%d,master=%s[%d])", hardware->h_ifname,