diff options
author | Luca Boccassi <bluca@debian.org> | 2022-07-18 10:02:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-18 10:02:02 +0100 |
commit | 9b9ddaf09d8f71a159549614f8115f8e6abf2fb5 (patch) | |
tree | f411ecaa9f54c5ad640f28537dc5e9e92f5f2aa1 /src/network/networkd-dhcp4.c | |
parent | 5509518193583c7015efbee028e6cbb6691b0240 (diff) | |
parent | b9e4ec500eb2f3c6bc65f838d2630771f65fa80b (diff) | |
download | systemd-9b9ddaf09d8f71a159549614f8115f8e6abf2fb5.tar.gz |
Merge pull request #24001 from yuwata/network-lifetime-fix
network: fixes for lifetime handling
Diffstat (limited to 'src/network/networkd-dhcp4.c')
-rw-r--r-- | src/network/networkd-dhcp4.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c index 79d7380460..e968773dbb 100644 --- a/src/network/networkd-dhcp4.c +++ b/src/network/networkd-dhcp4.c @@ -797,6 +797,7 @@ static int dhcp4_request_address(Link *link, bool announce) { int r; assert(link); + assert(link->manager); assert(link->network); assert(link->dhcp_lease); @@ -814,12 +815,14 @@ static int dhcp4_request_address(Link *link, bool announce) { if (!FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_DHCP)) { uint32_t lifetime_sec; + usec_t now_usec; r = sd_dhcp_lease_get_lifetime(link->dhcp_lease, &lifetime_sec); if (r < 0) return log_link_warning_errno(link, r, "DHCP error: no lifetime: %m"); - lifetime_usec = usec_add(lifetime_sec * USEC_PER_SEC, now(CLOCK_BOOTTIME)); + assert_se(sd_event_now(link->manager->event, CLOCK_BOOTTIME, &now_usec) >= 0); + lifetime_usec = sec_to_usec(lifetime_sec, now_usec); } else lifetime_usec = USEC_INFINITY; |