diff options
-rw-r--r-- | src/config.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/config.c b/src/config.c index dfeadac..f1fe82b 100644 --- a/src/config.c +++ b/src/config.c @@ -965,19 +965,27 @@ void odhcpd_reload(void) struct uci_package *dhcp = NULL; if (!uci_load(uci, "dhcp", &dhcp)) { struct uci_element *e; + + /* 1. Global settings */ uci_foreach_element(&dhcp->sections, e) { struct uci_section *s = uci_to_section(e); - if (!strcmp(s->type, "host")) - set_lease(s); - else if (!strcmp(s->type, "odhcpd")) + if (!strcmp(s->type, "odhcpd")) set_config(s); } + /* 2. DHCP pools */ uci_foreach_element(&dhcp->sections, e) { struct uci_section *s = uci_to_section(e); if (!strcmp(s->type, "dhcp")) set_interface(s); } + + /* 3. Static leases */ + uci_foreach_element(&dhcp->sections, e) { + struct uci_section* s = uci_to_section(e); + if (!strcmp(s->type, "host")) + set_lease(s); + } } if (config.dhcp_statefile) { |