diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c index 47c0f7c15..bfd5b2e54 100644 --- a/libnm-util/nm-utils.c +++ b/libnm-util/nm-utils.c @@ -666,11 +666,8 @@ nm_utils_convert_ip4_addr_struct_array_to_string (const GValue *src_value, GValu g_string_append (printable, ", "); memset (buf, 0, sizeof (buf)); - addr.s_addr = g_array_index (array, guint32, 1); - if (!inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN)) - nm_warning ("%s: error converting IP4 address 0x%X", - __func__, ntohl (addr.s_addr)); - g_string_append_printf (printable, "mask = %s", buf); + g_string_append_printf (printable, "px = %u", + g_array_index (array, guint32, 1)); if (array->len > 2) { g_string_append (printable, ", "); @@ -746,6 +743,32 @@ nm_utils_convert_string_hash_to_string (const GValue *src_value, GValue *dest_va g_string_free (printable, FALSE); } +static void +nm_utils_convert_byte_array_to_string (const GValue *src_value, GValue *dest_value) +{ + GArray *array; + GString *printable; + guint i = 0; + + g_return_if_fail (g_type_is_a (G_VALUE_TYPE (src_value), DBUS_TYPE_G_UCHAR_ARRAY)); + + array = (GArray *) g_value_get_boxed (src_value); + + printable = g_string_new ("["); + while (array && (i < MIN (array->len, 35))) { + if (i > 0) + g_string_append_c (printable, ' '); + g_string_append_printf (printable, "0x%02X", + g_array_index (array, unsigned char, i++)); + } + if (i < array->len) + g_string_append (printable, " ... "); + g_string_append_c (printable, ']'); + + g_value_take_string (dest_value, printable->str); + g_string_free (printable, FALSE); +} + void _nm_utils_register_value_transformations (void) { @@ -770,6 +793,9 @@ _nm_utils_register_value_transformations (void) g_value_register_transform_func (DBUS_TYPE_G_MAP_OF_STRING, G_TYPE_STRING, nm_utils_convert_string_hash_to_string); + g_value_register_transform_func (DBUS_TYPE_G_UCHAR_ARRAY, + G_TYPE_STRING, + nm_utils_convert_byte_array_to_string); registered = TRUE; } }