summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/sd-ipv4ll.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-07-24 18:53:01 +0200
committerTom Gundersen <teg@jklm.no>2014-07-24 19:02:58 +0200
commitfa94c34b083b5b4019975624453e53d0cbad2a5d (patch)
tree8bd0d0486f7b9f3b0c36e9075bc3999ec7b28c09 /src/libsystemd-network/sd-ipv4ll.c
parent77ff2de999b7ea6b1b4a3a218fbd9d62bb07cd54 (diff)
libsystemd-network: use CLOCK_BOOTTIME instead of CLOCK_MONOTONIC where possible
The timeouts in the networking library (DHCP lease timeouts and similar) should not be affected by suspend. In the cases where CLOCK_BOOTTIME is not implemented, it is still safe to fallback to CLOCK_MONOTONIC, as the consumers of the library (i.e., networkd) _should_ renew the leases when coming out of suspend.
Diffstat (limited to 'src/libsystemd-network/sd-ipv4ll.c')
-rw-r--r--src/libsystemd-network/sd-ipv4ll.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libsystemd-network/sd-ipv4ll.c b/src/libsystemd-network/sd-ipv4ll.c
index fd39c12eb2..b17987904a 100644
--- a/src/libsystemd-network/sd-ipv4ll.c
+++ b/src/libsystemd-network/sd-ipv4ll.c
@@ -186,8 +186,8 @@ static void ipv4ll_set_next_wakeup(sd_ipv4ll *ll, int sec, int random_sec) {
if (random_sec)
next_timeout += random_u32() % (random_sec * USEC_PER_SEC);
- if (sd_event_now(ll->event, CLOCK_MONOTONIC, &time_now) < 0)
- time_now = now(CLOCK_MONOTONIC);
+ if (sd_event_now(ll->event, clock_boottime_or_monotonic(), &time_now) < 0)
+ time_now = now(clock_boottime_or_monotonic());
ll->next_wakeup = time_now + next_timeout;
ll->next_wakeup_valid = 1;
@@ -289,7 +289,7 @@ static void ipv4ll_run_state_machine(sd_ipv4ll *ll, IPv4LLTrigger trigger, void
if (ipv4ll_arp_conflict(ll, in_packet)) {
- r = sd_event_now(ll->event, CLOCK_MONOTONIC, &time_now);
+ r = sd_event_now(ll->event, clock_boottime_or_monotonic(), &time_now);
if (r < 0)
goto out;
@@ -344,7 +344,7 @@ static void ipv4ll_run_state_machine(sd_ipv4ll *ll, IPv4LLTrigger trigger, void
if (ll->next_wakeup_valid) {
ll->timer = sd_event_source_unref(ll->timer);
- r = sd_event_add_time(ll->event, &ll->timer, CLOCK_MONOTONIC,
+ r = sd_event_add_time(ll->event, &ll->timer, clock_boottime_or_monotonic(),
ll->next_wakeup, 0, ipv4ll_timer, ll);
if (r < 0)
goto out;
@@ -562,8 +562,8 @@ int sd_ipv4ll_start (sd_ipv4ll *ll) {
r = sd_event_add_time(ll->event,
&ll->timer,
- CLOCK_MONOTONIC,
- now(CLOCK_MONOTONIC), 0,
+ clock_boottime_or_monotonic(),
+ now(clock_boottime_or_monotonic()), 0,
ipv4ll_timer, ll);
if (r < 0)