diff options
author | Thomas Haller <thaller@redhat.com> | 2016-02-29 17:06:21 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-02-29 20:41:01 +0100 |
commit | a22cb566eae6a8a128bf4a77305c872dd7816870 (patch) | |
tree | ae6c3fbcbbbb0462c49b38d65d1a3cc1638375b4 | |
parent | 9dc9309b0562cd14e2d15689e03464a68543bae2 (diff) | |
download | NetworkManager-th/platform-ipv4-flags.tar.gz |
platform: add flags argument to nm_platform_ip4_address_add()th/platform-ipv4-flags
The argument is still always unset. We will need it later to set
IFA_F_NOPREFIXROUTE.
-rw-r--r-- | src/devices/tests/test-arping.c | 2 | ||||
-rw-r--r-- | src/platform/nm-fake-platform.c | 2 | ||||
-rw-r--r-- | src/platform/nm-linux-platform.c | 5 | ||||
-rw-r--r-- | src/platform/nm-platform.c | 8 | ||||
-rw-r--r-- | src/platform/nm-platform.h | 2 | ||||
-rw-r--r-- | src/platform/tests/test-address.c | 14 | ||||
-rw-r--r-- | src/platform/tests/test-cleanup.c | 2 | ||||
-rw-r--r-- | src/platform/tests/test-common.c | 15 | ||||
-rw-r--r-- | src/platform/tests/test-common.h | 3 |
9 files changed, 32 insertions, 21 deletions
diff --git a/src/devices/tests/test-arping.c b/src/devices/tests/test-arping.c index 36e176310a..e80154ee60 100644 --- a/src/devices/tests/test-arping.c +++ b/src/devices/tests/test-arping.c @@ -80,7 +80,7 @@ test_arping_common (test_fixture *fixture, TestInfo *info) for (i = 0; info->peer_addresses[i]; i++) { nmtstp_ip4_address_add (FALSE, fixture->ifindex1, info->peer_addresses[i], - 24, 0, 3600, 1800, NULL); + 24, 0, 3600, 1800, 0, NULL); } loop = g_main_loop_new (NULL, FALSE); diff --git a/src/platform/nm-fake-platform.c b/src/platform/nm-fake-platform.c index bffc1bbb71..e0e5f983ca 100644 --- a/src/platform/nm-fake-platform.c +++ b/src/platform/nm-fake-platform.c @@ -888,6 +888,7 @@ ip4_address_add (NMPlatform *platform, in_addr_t peer_addr, guint32 lifetime, guint32 preferred, + guint32 flags, const char *label) { NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); @@ -903,6 +904,7 @@ ip4_address_add (NMPlatform *platform, address.timestamp = nm_utils_get_monotonic_timestamp_s (); address.lifetime = lifetime; address.preferred = preferred; + address.n_ifa_flags = flags; if (label) g_strlcpy (address.label, label, sizeof (address.label)); diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index 2757bb0682..7ed9262c09 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -2224,7 +2224,7 @@ _nl_msg_new_address (int nlmsg_type, NLA_PUT (msg, IFA_CACHEINFO, sizeof(ca), &ca); } - if (flags & ~0xFF) { + if (flags & ~((guint32) 0xFF)) { /* only set the IFA_FLAGS attribute, if they actually contain additional * flags that are not already set to am.ifa_flags. * @@ -5182,6 +5182,7 @@ ip4_address_add (NMPlatform *platform, in_addr_t peer_addr, guint32 lifetime, guint32 preferred, + guint32 flags, const char *label) { NMPObject obj_id; @@ -5194,7 +5195,7 @@ ip4_address_add (NMPlatform *platform, &addr, plen, &peer_addr, - 0, + flags, nmp_utils_ip4_address_is_link_local (addr) ? RT_SCOPE_LINK : RT_SCOPE_UNIVERSE, lifetime, preferred, diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index d772f8daab..6e916b0bb8 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -2434,6 +2434,7 @@ nm_platform_ip4_address_add (NMPlatform *self, in_addr_t peer_address, guint32 lifetime, guint32 preferred, + guint32 flags, const char *label) { _CHECK_SELF (self, klass, FALSE); @@ -2454,12 +2455,13 @@ nm_platform_ip4_address_add (NMPlatform *self, addr.timestamp = 0; /* set it at zero, which to_string will treat as *now* */ addr.lifetime = lifetime; addr.preferred = preferred; + addr.n_ifa_flags = flags; if (label) g_strlcpy (addr.label, label, sizeof (addr.label)); _LOGD ("address: adding or updating IPv4 address: %s", nm_platform_ip4_address_to_string (&addr, NULL, 0)); } - return klass->ip4_address_add (self, ifindex, address, plen, peer_address, lifetime, preferred, label); + return klass->ip4_address_add (self, ifindex, address, plen, peer_address, lifetime, preferred, flags, label); } gboolean @@ -2648,7 +2650,9 @@ nm_platform_ip4_address_sync (NMPlatform *self, int ifindex, const GArray *known now, ADDRESS_LIFETIME_PADDING, &lifetime, &preferred)) continue; - if (!nm_platform_ip4_address_add (self, ifindex, known_address->address, known_address->plen, known_address->peer_address, lifetime, preferred, known_address->label)) + if (!nm_platform_ip4_address_add (self, ifindex, known_address->address, known_address->plen, + known_address->peer_address, lifetime, preferred, + 0, known_address->label)) return FALSE; if (out_added_addresses) { diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index b3d921acea..a3d3fc730b 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -590,6 +590,7 @@ typedef struct { in_addr_t peer_address, guint32 lifetime, guint32 preferred_lft, + guint32 flags, const char *label); gboolean (*ip6_address_add) (NMPlatform *, int ifindex, @@ -857,6 +858,7 @@ gboolean nm_platform_ip4_address_add (NMPlatform *self, in_addr_t peer_address, guint32 lifetime, guint32 preferred_lft, + guint32 flags, const char *label); gboolean nm_platform_ip6_address_add (NMPlatform *self, int ifindex, diff --git a/src/platform/tests/test-address.c b/src/platform/tests/test-address.c index 3b52a7be7c..83a0bfd3c2 100644 --- a/src/platform/tests/test-address.c +++ b/src/platform/tests/test-address.c @@ -94,12 +94,12 @@ test_ip4_address_general (void) /* Add address */ g_assert (!nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr)); - nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime, preferred, NULL); + nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime, preferred, 0, NULL); g_assert (nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr)); accept_signal (address_added); /* Add address again (aka update) */ - nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime + 100, preferred + 50, NULL); + nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime + 100, preferred + 50, 0, NULL); accept_signals (address_changed, 0, 1); /* Test address listing */ @@ -197,7 +197,7 @@ test_ip4_address_general_2 (void) g_assert (nm_platform_link_set_up (NM_PLATFORM_GET, DEVICE_IFINDEX, NULL)); /* Add/delete notification */ - nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime, preferred, NULL); + nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime, preferred, 0, NULL); accept_signal (address_added); g_assert (nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr)); nmtstp_ip4_address_del (EX, ifindex, addr, IP4_PLEN, addr); @@ -205,7 +205,7 @@ test_ip4_address_general_2 (void) g_assert (!nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr)); /* Add/delete conflict */ - nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime, preferred, NULL); + nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr, lifetime, preferred, 0, NULL); g_assert (nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr)); accept_signal (address_added); @@ -273,7 +273,7 @@ test_ip4_address_peer (void) accept_signals (address_added, 0, G_MAXINT); /* Add/delete notification */ - nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr_peer, lifetime, preferred, NULL); + nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr_peer, lifetime, preferred, 0, NULL); accept_signal (address_added); a = nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr_peer); g_assert (a); @@ -281,7 +281,7 @@ test_ip4_address_peer (void) nmtstp_ip_address_assert_lifetime ((NMPlatformIPAddress *) a, -1, lifetime, preferred); - nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr_peer2, lifetime, preferred, NULL); + nmtstp_ip4_address_add (EX, ifindex, addr, IP4_PLEN, addr_peer2, lifetime, preferred, 0, NULL); accept_signal (address_added); g_assert (nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr_peer)); a = nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, IP4_PLEN, addr_peer2); @@ -328,7 +328,7 @@ test_ip4_address_peer_zero (void) for (i = 0; i < G_N_ELEMENTS (peers); i++) { g_assert (!nm_platform_ip4_address_get (NM_PLATFORM_GET, ifindex, addr, plen, r_peers[i])); - nmtstp_ip4_address_add (EX, ifindex, addr, plen, r_peers[i], lifetime, preferred, label); + nmtstp_ip4_address_add (EX, ifindex, addr, plen, r_peers[i], lifetime, preferred, 0, label); addrs = nm_platform_ip4_address_get_all (NM_PLATFORM_GET, ifindex); g_assert (addrs); diff --git a/src/platform/tests/test-cleanup.c b/src/platform/tests/test-cleanup.c index 6ad2447806..4036daad10 100644 --- a/src/platform/tests/test-cleanup.c +++ b/src/platform/tests/test-cleanup.c @@ -63,7 +63,7 @@ test_cleanup_internal (void) g_assert (ifindex > 0); /* Add routes and addresses */ - g_assert (nm_platform_ip4_address_add (NM_PLATFORM_GET, ifindex, addr4, plen4, addr4, lifetime, preferred, NULL)); + g_assert (nm_platform_ip4_address_add (NM_PLATFORM_GET, ifindex, addr4, plen4, addr4, lifetime, preferred, 0, NULL)); g_assert (nm_platform_ip6_address_add (NM_PLATFORM_GET, ifindex, addr6, plen6, in6addr_any, lifetime, preferred, flags)); g_assert (nm_platform_ip4_route_add (NM_PLATFORM_GET, ifindex, NM_IP_CONFIG_SOURCE_USER, gateway4, 32, INADDR_ANY, 0, metric, mss)); g_assert (nm_platform_ip4_route_add (NM_PLATFORM_GET, ifindex, NM_IP_CONFIG_SOURCE_USER, network4, plen4, gateway4, 0, metric, mss)); diff --git a/src/platform/tests/test-common.c b/src/platform/tests/test-common.c index 268a5c92d1..c249c5c1a1 100644 --- a/src/platform/tests/test-common.c +++ b/src/platform/tests/test-common.c @@ -563,8 +563,8 @@ _ip_address_add (gboolean external_command, const NMIPAddr *peer_address, guint32 lifetime, guint32 preferred, - const char *label, - guint32 flags) + guint32 flags, + const char *label) { gint64 end_time; @@ -626,7 +626,6 @@ _ip_address_add (gboolean external_command, gboolean success; if (is_v4) { - g_assert (flags == 0); success = nm_platform_ip4_address_add (NM_PLATFORM_GET, ifindex, address->addr4, @@ -634,6 +633,7 @@ _ip_address_add (gboolean external_command, peer_address->addr4, lifetime, preferred, + flags, label); } else { g_assert (label == NULL); @@ -1006,6 +1006,7 @@ nmtstp_ip4_address_add (gboolean external_command, in_addr_t peer_address, guint32 lifetime, guint32 preferred, + guint32 flags, const char *label) { _ip_address_add (external_command, @@ -1016,8 +1017,8 @@ nmtstp_ip4_address_add (gboolean external_command, (NMIPAddr *) &peer_address, lifetime, preferred, - label, - 0); + flags, + label); } void @@ -1038,8 +1039,8 @@ nmtstp_ip6_address_add (gboolean external_command, (NMIPAddr *) &peer_address, lifetime, preferred, - NULL, - flags); + flags, + NULL); } static void diff --git a/src/platform/tests/test-common.h b/src/platform/tests/test-common.h index 0281d3c533..e1aefa2aaa 100644 --- a/src/platform/tests/test-common.h +++ b/src/platform/tests/test-common.h @@ -117,6 +117,7 @@ void nmtstp_ip4_address_add (gboolean external_command, in_addr_t peer_address, guint32 lifetime, guint32 preferred, + guint32 flags, const char *label); void nmtstp_ip6_address_add (gboolean external_command, int ifindex, @@ -125,7 +126,7 @@ void nmtstp_ip6_address_add (gboolean external_command, struct in6_addr peer_address, guint32 lifetime, guint32 preferred, - guint flags); + guint32 flags); void nmtstp_ip4_address_del (gboolean external_command, int ifindex, in_addr_t address, |