summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/config.c14
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) {