ip-config: expose IP peer address on D-Bus
This commit is contained in:
@@ -995,7 +995,8 @@ nm_ip4_config_replace (NMIP4Config *dst, const NMIP4Config *src, gboolean *relev
|
|||||||
if (nm_platform_ip4_address_cmp (src_addr = nm_ip4_config_get_address (src, i),
|
if (nm_platform_ip4_address_cmp (src_addr = nm_ip4_config_get_address (src, i),
|
||||||
dst_addr = nm_ip4_config_get_address (dst, i))) {
|
dst_addr = nm_ip4_config_get_address (dst, i))) {
|
||||||
are_equal = FALSE;
|
are_equal = FALSE;
|
||||||
if (!addresses_are_duplicate (src_addr, dst_addr)) {
|
if ( !addresses_are_duplicate (src_addr, dst_addr)
|
||||||
|
|| (nm_platform_ip4_address_get_peer (src_addr) != nm_platform_ip4_address_get_peer (dst_addr))) {
|
||||||
has_relevant_changes = TRUE;
|
has_relevant_changes = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2162,6 +2163,12 @@ get_property (GObject *object, guint prop_id,
|
|||||||
g_variant_builder_add (&addr_builder, "{sv}",
|
g_variant_builder_add (&addr_builder, "{sv}",
|
||||||
"prefix",
|
"prefix",
|
||||||
g_variant_new_uint32 (address->plen));
|
g_variant_new_uint32 (address->plen));
|
||||||
|
if ( address->peer_address
|
||||||
|
&& address->peer_address != address->address) {
|
||||||
|
g_variant_builder_add (&addr_builder, "{sv}",
|
||||||
|
"peer",
|
||||||
|
g_variant_new_string (nm_utils_inet4_ntop (address->peer_address, NULL)));
|
||||||
|
}
|
||||||
|
|
||||||
if (*address->label) {
|
if (*address->label) {
|
||||||
g_variant_builder_add (&addr_builder, "{sv}",
|
g_variant_builder_add (&addr_builder, "{sv}",
|
||||||
|
@@ -1013,7 +1013,9 @@ nm_ip6_config_replace (NMIP6Config *dst, const NMIP6Config *src, gboolean *relev
|
|||||||
dst_addr = nm_ip6_config_get_address (dst, i))) {
|
dst_addr = nm_ip6_config_get_address (dst, i))) {
|
||||||
are_equal = FALSE;
|
are_equal = FALSE;
|
||||||
if ( !addresses_are_duplicate (src_addr, dst_addr)
|
if ( !addresses_are_duplicate (src_addr, dst_addr)
|
||||||
|| src_addr->plen != dst_addr->plen) {
|
|| src_addr->plen != dst_addr->plen
|
||||||
|
|| !IN6_ARE_ADDR_EQUAL (nm_platform_ip6_address_get_peer (src_addr),
|
||||||
|
nm_platform_ip6_address_get_peer (dst_addr))) {
|
||||||
has_relevant_changes = TRUE;
|
has_relevant_changes = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1931,6 +1933,12 @@ get_property (GObject *object, guint prop_id,
|
|||||||
g_variant_builder_add (&addr_builder, "{sv}",
|
g_variant_builder_add (&addr_builder, "{sv}",
|
||||||
"prefix",
|
"prefix",
|
||||||
g_variant_new_uint32 (address->plen));
|
g_variant_new_uint32 (address->plen));
|
||||||
|
if ( !IN6_IS_ADDR_UNSPECIFIED (&address->peer_address)
|
||||||
|
&& !IN6_ARE_ADDR_EQUAL (&address->peer_address, &address->address)) {
|
||||||
|
g_variant_builder_add (&addr_builder, "{sv}",
|
||||||
|
"peer",
|
||||||
|
g_variant_new_string (nm_utils_inet6_ntop (&address->peer_address, NULL)));
|
||||||
|
}
|
||||||
|
|
||||||
g_variant_builder_add (&array_builder, "a{sv}", &addr_builder);
|
g_variant_builder_add (&array_builder, "a{sv}", &addr_builder);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user