diff options
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | src/config.c | 8 |
2 files changed, 7 insertions, 5 deletions
@@ -70,7 +70,9 @@ Option Type Default Description interface string <name of UCI section> logical OpenWrt interface ifname string <resolved from logical> physical network interface networkid string same as ifname compat. alias for ifname -ignore bool 0 ignore this interface +ignore bool 0 do not serve this interface + unless overridden by ra, ndp, + dhcpv4 or dhcpv6 options master bool 0 is a master interface for relaying diff --git a/src/config.c b/src/config.c index e3bf78a..ba51375 100644 --- a/src/config.c +++ b/src/config.c @@ -721,10 +721,10 @@ void odhcpd_reload(void) i->ndp = (master && master->ndp == RELAYD_RELAY) ? RELAYD_RELAY : RELAYD_DISABLED; - setup_router_interface(i, true); - setup_dhcpv6_interface(i, true); - setup_ndp_interface(i, true); - setup_dhcpv4_interface(i, true); + setup_router_interface(i, !i->ignore || i->ra != RELAYD_DISABLED); + setup_dhcpv6_interface(i, !i->ignore || i->dhcpv6 != RELAYD_DISABLED); + setup_ndp_interface(i, !i->ignore || i->ndp != RELAYD_DISABLED); + setup_dhcpv4_interface(i, !i->ignore || i->dhcpv4 != RELAYD_DISABLED); } else { close_interface(i); } |