[odhcpd PATCH 1/2] config: skip interface setup if interface not IFF_RUNNING

Hans Dedecker dedeckeh at gmail.com
Sat Mar 18 13:24:56 PDT 2023


On Fri, Mar 17, 2023 at 1:54 AM Christian Marangi <ansuelsmth at gmail.com> wrote:
>
> We currently setup odhcp service even if the interface is not running.
> This is the case for bridge or specific interface that are flagged as UP
> but have no carrier as nothing is connected to it.
> This cause a similar error like:
>
> Failed to send to ff02::1%br-lan (Address not available)
>
> This is caused by the kernel assigning IPV6 address only when the
> interface is set to IFF_RUNNING.
> A LINK-LOCAL IPV6 address is required for odhcpd_send() to work or every
> request will be rejected.
>
> To fix this setup services only when interface is in IFF_RUNNING state.
> When an interface change state, odhcpd is reloaded and the services are
> correctly setup again.
>
> Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
Acked-by: Hans Dedecker <dedeckeh at gmail.com>
> ---
>  src/config.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/config.c b/src/config.c
> index 9b1f659..30da879 100644
> --- a/src/config.c
> +++ b/src/config.c
> @@ -1303,7 +1303,7 @@ void odhcpd_reload(void)
>
>
>         avl_for_each_element_safe(&interfaces, i, avl, tmp) {
> -               if (i->inuse) {
> +               if (i->inuse && i->ifflags & IFF_RUNNING) {
>                         /* Resolve hybrid mode */
>                         if (i->dhcpv6 == MODE_HYBRID)
>                                 i->dhcpv6 = (master && master->dhcpv6 == MODE_RELAY) ?
> --
> 2.39.2
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list