core: use nm_utils_get_monotonic_timestamp_s for timestamp of NMPlatformIP[46]Address
https://bugzilla.gnome.org/show_bug.cgi?id=720833 Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <uuid/uuid.h>
|
#include <uuid/uuid.h>
|
||||||
|
|
||||||
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-utils.h"
|
#include "nm-utils.h"
|
||||||
#include "nm-logging.h"
|
#include "nm-logging.h"
|
||||||
#include "nm-dbus-glib-types.h"
|
#include "nm-dbus-glib-types.h"
|
||||||
@@ -802,16 +803,6 @@ nm_dhcp_client_foreach_option (NMDHCPClient *self,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static guint32
|
|
||||||
get_time (void)
|
|
||||||
{
|
|
||||||
struct timespec tp;
|
|
||||||
|
|
||||||
clock_gettime (CLOCK_MONOTONIC, &tp);
|
|
||||||
|
|
||||||
return tp.tv_sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
/********************************************/
|
/********************************************/
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@@ -1163,7 +1154,7 @@ ip4_options_to_config (NMDHCPClient *self)
|
|||||||
|
|
||||||
ip4_config = nm_ip4_config_new ();
|
ip4_config = nm_ip4_config_new ();
|
||||||
memset (&address, 0, sizeof (address));
|
memset (&address, 0, sizeof (address));
|
||||||
address.timestamp = get_time ();
|
address.timestamp = nm_utils_get_monotonic_timestamp_s ();
|
||||||
|
|
||||||
str = g_hash_table_lookup (priv->options, "new_ip_address");
|
str = g_hash_table_lookup (priv->options, "new_ip_address");
|
||||||
if (str && (inet_pton (AF_INET, str, &tmp_addr) > 0)) {
|
if (str && (inet_pton (AF_INET, str, &tmp_addr) > 0)) {
|
||||||
@@ -1395,7 +1386,7 @@ ip6_options_to_config (NMDHCPClient *self)
|
|||||||
|
|
||||||
memset (&address, 0, sizeof (address));
|
memset (&address, 0, sizeof (address));
|
||||||
address.plen = 128;
|
address.plen = 128;
|
||||||
address.timestamp = get_time ();
|
address.timestamp = nm_utils_get_monotonic_timestamp_s ();
|
||||||
|
|
||||||
priv = NM_DHCP_CLIENT_GET_PRIVATE (self);
|
priv = NM_DHCP_CLIENT_GET_PRIVATE (self);
|
||||||
g_return_val_if_fail (priv->options != NULL, NULL);
|
g_return_val_if_fail (priv->options != NULL, NULL);
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#include <netinet/icmp6.h>
|
#include <netinet/icmp6.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|
||||||
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-fake-platform.h"
|
#include "nm-fake-platform.h"
|
||||||
#include "nm-logging.h"
|
#include "nm-logging.h"
|
||||||
|
|
||||||
@@ -728,16 +729,6 @@ ip6_address_get_all (NMPlatform *platform, int ifindex)
|
|||||||
return addresses;
|
return addresses;
|
||||||
}
|
}
|
||||||
|
|
||||||
static guint32
|
|
||||||
get_time (void)
|
|
||||||
{
|
|
||||||
struct timespec tp;
|
|
||||||
|
|
||||||
clock_gettime (CLOCK_MONOTONIC, &tp);
|
|
||||||
|
|
||||||
return tp.tv_sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
ip4_address_add (NMPlatform *platform, int ifindex,
|
ip4_address_add (NMPlatform *platform, int ifindex,
|
||||||
in_addr_t addr, in_addr_t peer_addr,
|
in_addr_t addr, in_addr_t peer_addr,
|
||||||
@@ -752,7 +743,7 @@ ip4_address_add (NMPlatform *platform, int ifindex,
|
|||||||
address.address = addr;
|
address.address = addr;
|
||||||
address.peer_address = peer_addr;
|
address.peer_address = peer_addr;
|
||||||
address.plen = plen;
|
address.plen = plen;
|
||||||
address.timestamp = get_time ();
|
address.timestamp = nm_utils_get_monotonic_timestamp_s ();
|
||||||
address.lifetime = lifetime;
|
address.lifetime = lifetime;
|
||||||
address.preferred = preferred;
|
address.preferred = preferred;
|
||||||
|
|
||||||
@@ -791,7 +782,7 @@ ip6_address_add (NMPlatform *platform, int ifindex,
|
|||||||
address.address = addr;
|
address.address = addr;
|
||||||
address.peer_address = peer_addr;
|
address.peer_address = peer_addr;
|
||||||
address.plen = plen;
|
address.plen = plen;
|
||||||
address.timestamp = get_time ();
|
address.timestamp = nm_utils_get_monotonic_timestamp_s ();
|
||||||
address.lifetime = lifetime;
|
address.lifetime = lifetime;
|
||||||
address.preferred = preferred;
|
address.preferred = preferred;
|
||||||
address.flags = flags;
|
address.flags = flags;
|
||||||
|
@@ -43,6 +43,7 @@
|
|||||||
#include <netlink/route/route.h>
|
#include <netlink/route/route.h>
|
||||||
#include <gudev/gudev.h>
|
#include <gudev/gudev.h>
|
||||||
|
|
||||||
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-linux-platform.h"
|
#include "nm-linux-platform.h"
|
||||||
#include "NetworkManagerUtils.h"
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-utils.h"
|
#include "nm-utils.h"
|
||||||
@@ -814,16 +815,6 @@ hack_empty_master_iff_lower_up (NMPlatform *platform, struct nl_object *object)
|
|||||||
rtnl_link_unset_flags (rtnllink, IFF_LOWER_UP);
|
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
|
static void
|
||||||
init_ip4_address (NMPlatformIP4Address *address, struct rtnl_addr *rtnladdr)
|
init_ip4_address (NMPlatformIP4Address *address, struct rtnl_addr *rtnladdr)
|
||||||
{
|
{
|
||||||
@@ -836,7 +827,7 @@ init_ip4_address (NMPlatformIP4Address *address, struct rtnl_addr *rtnladdr)
|
|||||||
|
|
||||||
address->ifindex = rtnl_addr_get_ifindex (rtnladdr);
|
address->ifindex = rtnl_addr_get_ifindex (rtnladdr);
|
||||||
address->plen = rtnl_addr_get_prefixlen (rtnladdr);
|
address->plen = rtnl_addr_get_prefixlen (rtnladdr);
|
||||||
address->timestamp = get_time ();
|
address->timestamp = nm_utils_get_monotonic_timestamp_s ();
|
||||||
address->lifetime = rtnl_addr_get_valid_lifetime (rtnladdr);
|
address->lifetime = rtnl_addr_get_valid_lifetime (rtnladdr);
|
||||||
address->preferred = rtnl_addr_get_preferred_lifetime (rtnladdr);
|
address->preferred = rtnl_addr_get_preferred_lifetime (rtnladdr);
|
||||||
g_assert (nl_addr_get_len (nladdr) == sizeof (address->address));
|
g_assert (nl_addr_get_len (nladdr) == sizeof (address->address));
|
||||||
@@ -857,7 +848,7 @@ init_ip6_address (NMPlatformIP6Address *address, struct rtnl_addr *rtnladdr)
|
|||||||
|
|
||||||
address->ifindex = rtnl_addr_get_ifindex (rtnladdr);
|
address->ifindex = rtnl_addr_get_ifindex (rtnladdr);
|
||||||
address->plen = rtnl_addr_get_prefixlen (rtnladdr);
|
address->plen = rtnl_addr_get_prefixlen (rtnladdr);
|
||||||
address->timestamp = get_time ();
|
address->timestamp = nm_utils_get_monotonic_timestamp_s ();
|
||||||
address->lifetime = rtnl_addr_get_valid_lifetime (rtnladdr);
|
address->lifetime = rtnl_addr_get_valid_lifetime (rtnladdr);
|
||||||
address->preferred = rtnl_addr_get_preferred_lifetime (rtnladdr);
|
address->preferred = rtnl_addr_get_preferred_lifetime (rtnladdr);
|
||||||
address->flags = rtnl_addr_get_flags (rtnladdr);
|
address->flags = rtnl_addr_get_flags (rtnladdr);
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <netlink/route/addr.h>
|
#include <netlink/route/addr.h>
|
||||||
|
|
||||||
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-platform.h"
|
#include "nm-platform.h"
|
||||||
#include "NetworkManagerUtils.h"
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-logging.h"
|
#include "nm-logging.h"
|
||||||
@@ -1339,16 +1340,6 @@ array_contains_ip6_address (const GArray *addresses, const NMPlatformIP6Address
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static guint32
|
|
||||||
get_time (void)
|
|
||||||
{
|
|
||||||
struct timespec tp;
|
|
||||||
|
|
||||||
clock_gettime (CLOCK_MONOTONIC, &tp);
|
|
||||||
|
|
||||||
return tp.tv_sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute (a - b) in an overflow-safe manner. */
|
/* Compute (a - b) in an overflow-safe manner. */
|
||||||
static guint32
|
static guint32
|
||||||
subtract_guint32 (guint32 a, guint32 b)
|
subtract_guint32 (guint32 a, guint32 b)
|
||||||
@@ -1375,7 +1366,7 @@ nm_platform_ip4_address_sync (int ifindex, const GArray *known_addresses)
|
|||||||
{
|
{
|
||||||
GArray *addresses;
|
GArray *addresses;
|
||||||
NMPlatformIP4Address *address;
|
NMPlatformIP4Address *address;
|
||||||
guint32 now = get_time ();
|
guint32 now = nm_utils_get_monotonic_timestamp_s ();
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Delete unknown addresses */
|
/* Delete unknown addresses */
|
||||||
@@ -1428,7 +1419,7 @@ nm_platform_ip6_address_sync (int ifindex, const GArray *known_addresses)
|
|||||||
{
|
{
|
||||||
GArray *addresses;
|
GArray *addresses;
|
||||||
NMPlatformIP6Address *address;
|
NMPlatformIP6Address *address;
|
||||||
guint32 now = get_time ();
|
guint32 now = nm_utils_get_monotonic_timestamp_s ();
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Delete unknown addresses */
|
/* Delete unknown addresses */
|
||||||
|
@@ -133,6 +133,10 @@ typedef enum {
|
|||||||
NM_PLATFORM_SOURCE_USER,
|
NM_PLATFORM_SOURCE_USER,
|
||||||
} NMPlatformSource;
|
} NMPlatformSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NMPlatformIP4Address:
|
||||||
|
* @timestamp: timestamp as returned by nm_utils_get_monotonic_timestamp_s()
|
||||||
|
**/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int ifindex;
|
int ifindex;
|
||||||
NMPlatformSource source;
|
NMPlatformSource source;
|
||||||
@@ -144,6 +148,10 @@ typedef struct {
|
|||||||
guint32 preferred; /* seconds */
|
guint32 preferred; /* seconds */
|
||||||
} NMPlatformIP4Address;
|
} NMPlatformIP4Address;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NMPlatformIP6Address:
|
||||||
|
* @timestamp: timestamp as returned by nm_utils_get_monotonic_timestamp_s()
|
||||||
|
**/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int ifindex;
|
int ifindex;
|
||||||
NMPlatformSource source;
|
NMPlatformSource source;
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include "nm-lndp-rdisc.h"
|
#include "nm-lndp-rdisc.h"
|
||||||
|
|
||||||
|
#include "NetworkManagerUtils.h"
|
||||||
#include "nm-logging.h"
|
#include "nm-logging.h"
|
||||||
|
|
||||||
#define debug(...) nm_log_dbg (LOGD_IP6, __VA_ARGS__)
|
#define debug(...) nm_log_dbg (LOGD_IP6, __VA_ARGS__)
|
||||||
@@ -384,20 +385,10 @@ check_timestamps (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap changed)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static guint32
|
|
||||||
get_time (void)
|
|
||||||
{
|
|
||||||
struct timespec tp;
|
|
||||||
|
|
||||||
clock_gettime (CLOCK_MONOTONIC, &tp);
|
|
||||||
|
|
||||||
return tp.tv_sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
timeout_cb (gpointer user_data)
|
timeout_cb (gpointer user_data)
|
||||||
{
|
{
|
||||||
check_timestamps (user_data, get_time (), 0);
|
check_timestamps (user_data, nm_utils_get_monotonic_timestamp_s (), 0);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -470,7 +461,7 @@ receive_ra (struct ndp *ndp, struct ndp_msg *msg, gpointer user_data)
|
|||||||
const char *lladdr = NULL;
|
const char *lladdr = NULL;
|
||||||
struct ndp_msgra *msgra = ndp_msgra (msg);
|
struct ndp_msgra *msgra = ndp_msgra (msg);
|
||||||
NMRDiscGateway gateway;
|
NMRDiscGateway gateway;
|
||||||
guint32 now = get_time ();
|
guint32 now = nm_utils_get_monotonic_timestamp_s ();
|
||||||
int offset;
|
int offset;
|
||||||
|
|
||||||
if (rdisc->lladdr)
|
if (rdisc->lladdr)
|
||||||
|
@@ -1,15 +1,24 @@
|
|||||||
AM_CPPFLAGS = \
|
AM_CPPFLAGS = \
|
||||||
-I${top_srcdir} \
|
-I${top_srcdir} \
|
||||||
|
-I$(top_srcdir)/include \
|
||||||
-I${top_srcdir}/src \
|
-I${top_srcdir}/src \
|
||||||
|
-I${top_srcdir}/src/devices \
|
||||||
-I${top_srcdir}/src/logging \
|
-I${top_srcdir}/src/logging \
|
||||||
|
-I${top_srcdir}/src/platform \
|
||||||
|
-I${top_srcdir}/src/posix-signals \
|
||||||
-I${top_srcdir}/libnm-util \
|
-I${top_srcdir}/libnm-util \
|
||||||
-I${srcdir}/.. \
|
-I${srcdir}/.. \
|
||||||
$(GLIB_CFLAGS) \
|
$(GLIB_CFLAGS) \
|
||||||
|
$(DBUS_CFLAGS) \
|
||||||
|
$(POLKIT_CFLAGS) \
|
||||||
$(LIBNL_CFLAGS) \
|
$(LIBNL_CFLAGS) \
|
||||||
$(LIBNDP_CFLAGS)
|
$(LIBNDP_CFLAGS)
|
||||||
|
|
||||||
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
AM_LDFLAGS = $(GLIB_LIBS) $(CODE_COVERAGE_LDFLAGS)
|
AM_LDFLAGS = \
|
||||||
|
$(GLIB_LIBS) \
|
||||||
|
$(DBUS_LIBS) \
|
||||||
|
$(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
@GNOME_CODE_COVERAGE_RULES@
|
@GNOME_CODE_COVERAGE_RULES@
|
||||||
|
|
||||||
@@ -17,9 +26,8 @@ noinst_PROGRAMS = \
|
|||||||
rdisc
|
rdisc
|
||||||
|
|
||||||
rdisc_SOURCES = \
|
rdisc_SOURCES = \
|
||||||
rdisc.c \
|
rdisc.c
|
||||||
../nm-rdisc.c \
|
rdisc_LDADD = \
|
||||||
../nm-fake-rdisc.c \
|
$(top_builddir)/src/libNetworkManager.la \
|
||||||
../nm-lndp-rdisc.c \
|
$(LIBNDP_LIBS)
|
||||||
../../logging/nm-logging.c
|
|
||||||
rdisc_LDADD = $(LIBNDP_LIBS)
|
|
||||||
|
Reference in New Issue
Block a user