From: David Härdeman Date: Tue, 9 Dec 2025 09:11:08 +0000 (+0100) Subject: statefiles: don't write empty hosts files X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=ca00527e5fc3d8d2b8c1a60fbeb6a25e2bf68674;p=project%2Fodhcpd.git statefiles: don't write empty hosts files This is mostly cosmetic, skip writing out hosts files for interfaces where it makes little sense to do so (i.e. where the hosts file will anyway be empty). Closes: https://github.com/openwrt/odhcpd/issues/338 Signed-off-by: David Härdeman Link: https://github.com/openwrt/odhcpd/pull/342 Signed-off-by: Álvaro Fernández Rojas --- diff --git a/src/statefiles.c b/src/statefiles.c index 0ce2a2e..558b012 100644 --- a/src/statefiles.c +++ b/src/statefiles.c @@ -415,7 +415,15 @@ static void statefiles_write_hosts(time_t now) return; avl_for_each_element(&interfaces, ctxt.iface, avl) { + if (ctxt.iface->ignore) + continue; + + if (ctxt.iface->dhcpv4 != MODE_SERVER && ctxt.iface->dhcpv6 != MODE_SERVER) + continue; + ctxt.fp = statefiles_open_tmp_file(config.dhcp_hostsdir_fd); + if (!ctxt.fp) + continue; if (ctxt.iface->dhcpv6 == MODE_SERVER) { struct dhcpv6_lease *lease; @@ -534,6 +542,7 @@ static bool statefiles_write_state(time_t now) }; uint8_t newmd5[16]; + /* Return value unchecked, continue in order to get the md5 */ ctxt.fp = statefiles_open_tmp_file(config.dhcp_statedir_fd); md5_begin(&ctxt.md5);