From f50be1870d49465259d0c682680ec98dd0097be8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 6 Apr 2024 19:01:56 +0200 Subject: [PATCH] networkd: report error if lease file cannot be loaded and ignore On my system, networkd would report that interface ve-rawhide is "Failed" without anything in the logs: systemd-networkd[651095]: ve-rawhide: Trying to reconfigure the interface. systemd-networkd[651095]: ve-rawhide: Gained IPv6LL systemd-networkd[651095]: ve-rawhide: Link DOWN systemd-networkd[651095]: ve-rawhide: Lost carrier systemd-networkd[651095]: ve-rawhide: Configuring with /usr/lib/systemd/network/80-container-ve.network. systemd-networkd[651095]: ve-rawhide: Link UP systemd-networkd[651095]: ve-rawhide: Gained carrier systemd-networkd[651095]: ve-rawhide: Failed At debug level: systemd-networkd[799993]: dhcp-server-lease/ve-rawhide:1:1: Missing object field 'Address'. $ jq manager, address->family, address->prefixlen, &a); diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c index 44b8aaa977..b1953545ed 100644 --- a/src/network/networkd-dhcp-server.c +++ b/src/network/networkd-dhcp-server.c @@ -197,8 +197,14 @@ int address_acquire_from_dhcp_server_leases_file(Link *link, const Address *addr lease_file, &a, &prefixlen); - if (r < 0) + if (r == -ENOENT) return r; + if (r < 0) + return log_warning_errno(r, "Failed to load lease file %s: %s", + lease_file, + r == -ENXIO ? "expected JSON content not found" : + r == -EINVAL ? "invalid JSON" : + STRERROR(r)); if (prefixlen != address->prefixlen) return -ENOENT; -- 2.25.1