summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorKoen Aerts <aertskoen5@gmail.com>2019-08-19 13:18:04 +0200
committerHans Dedecker <dedeckeh@gmail.com>2019-08-19 21:38:22 +0200
commit09aa022ea1990dbb3f3f0d09331ef0cd1b8a8e1a (patch)
treed2d3954391d36a3873429909a6e3879d986caf81 /src
parent79eb1608191a1ce601f32b929826bae72f501a5e (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>
Diffstat (limited to 'src')
-rw-r--r--src/router.c3
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;
}