diff options
author | Koen Aerts <aertskoen5@gmail.com> | 2019-08-19 13:18:04 +0200 |
---|---|---|
committer | Hans Dedecker <dedeckeh@gmail.com> | 2019-08-19 21:38:22 +0200 |
commit | 09aa022ea1990dbb3f3f0d09331ef0cd1b8a8e1a (patch) | |
tree | d2d3954391d36a3873429909a6e3879d986caf81 | |
parent | 79eb1608191a1ce601f32b929826bae72f501a5e (diff) |
router: close socket upon NETEV_IFINDEX_CHANGE fixed
Make sure the raw socket is removed from the uloop file descriptor
list before the socket is closed as introduced in
https://github.com/openwrt/odhcpd/commit/000182fe4f94a5a6ec139456a2b74f0cdea13b9c
Related to https://github.com/openwrt/odhcpd/issues/135
Signed-off-by: Koen Aerts <aertskoen5@gmail.com>
-rw-r--r-- | src/router.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/router.c b/src/router.c index f1471db..34d43b0 100644 --- a/src/router.c +++ b/src/router.c @@ -232,6 +232,9 @@ static void router_netevent_cb(unsigned long event, struct netevent_handler_info case NETEV_IFINDEX_CHANGE: iface = info->iface; if (iface && iface->router_event.uloop.fd >= 0) { + if (iface->router_event.uloop.registered) + uloop_fd_delete(&iface->router_event.uloop); + close(iface->router_event.uloop.fd); iface->router_event.uloop.fd = -1; } |