diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index a8343338c..83cbc490f 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -760,6 +760,16 @@ hack_empty_master_iff_lower_up (NMPlatform *platform, struct nl_object *object) rtnl_link_unset_flags (rtnllink, IFF_LOWER_UP); } +static guint32 +get_time (void) +{ + struct timespec tp; + + clock_gettime (CLOCK_MONOTONIC, &tp); + + return tp.tv_sec; +} + static void init_ip4_address (NMPlatformIP4Address *address, struct rtnl_addr *rtnladdr) { @@ -772,7 +782,7 @@ init_ip4_address (NMPlatformIP4Address *address, struct rtnl_addr *rtnladdr) address->ifindex = rtnl_addr_get_ifindex (rtnladdr); address->plen = rtnl_addr_get_prefixlen (rtnladdr); - address->timestamp = rtnl_addr_get_create_time (rtnladdr); + address->timestamp = get_time (); address->lifetime = rtnl_addr_get_valid_lifetime (rtnladdr); address->preferred = rtnl_addr_get_preferred_lifetime (rtnladdr); g_assert (nl_addr_get_len (nladdr) == sizeof (address->address)); @@ -793,7 +803,7 @@ init_ip6_address (NMPlatformIP6Address *address, struct rtnl_addr *rtnladdr) address->ifindex = rtnl_addr_get_ifindex (rtnladdr); address->plen = rtnl_addr_get_prefixlen (rtnladdr); - address->timestamp = rtnl_addr_get_create_time (rtnladdr); + address->timestamp = get_time (); address->lifetime = rtnl_addr_get_valid_lifetime (rtnladdr); address->preferred = rtnl_addr_get_preferred_lifetime (rtnladdr); address->flags = rtnl_addr_get_flags (rtnladdr);