In case setting one of the socket options fails; make sure the raw
socket is removed from the uloop file descriptor list before the
socket is closed.
In case this is not done and a new raw socket is created with the
same fd value odhcpd will not be triggered by uloop in case RS messages
are received on the socket as reported in https://github.com/openwrt/odhcpd/issues/135
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
}
out:
if (ret < 0 && 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;
}