summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README4
-rw-r--r--src/config.c8
2 files changed, 7 insertions, 5 deletions
diff --git a/README b/README
index e14f822..4ae5ef2 100644
--- a/README
+++ b/README
@@ -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);
}