config: skip interface setup if interface not IFF_RUNNING
authorChristian Marangi <ansuelsmth@gmail.com>
Thu, 16 Mar 2023 22:44:43 +0000 (23:44 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Tue, 21 Mar 2023 18:04:17 +0000 (19:04 +0100)
commitba30afcfec0a26ce4bcd96ea4d687c498b0ba4df
tree99a393979099895b45851e4347cbb7e72de465b5
parent06b111ea849f04dca88afeee13cf5cb1b2418b57
config: skip interface setup if interface not IFF_RUNNING

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@gmail.com>
Acked-by: Hans Dedecker <dedeckeh@gmail.com>
src/config.c