libnm-util: add transform for byte arrays; fix IP4 address transform for prefix
This commit is contained in:
@@ -666,11 +666,8 @@ nm_utils_convert_ip4_addr_struct_array_to_string (const GValue *src_value, GValu
|
|||||||
g_string_append (printable, ", ");
|
g_string_append (printable, ", ");
|
||||||
|
|
||||||
memset (buf, 0, sizeof (buf));
|
memset (buf, 0, sizeof (buf));
|
||||||
addr.s_addr = g_array_index (array, guint32, 1);
|
g_string_append_printf (printable, "px = %u",
|
||||||
if (!inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN))
|
g_array_index (array, guint32, 1));
|
||||||
nm_warning ("%s: error converting IP4 address 0x%X",
|
|
||||||
__func__, ntohl (addr.s_addr));
|
|
||||||
g_string_append_printf (printable, "mask = %s", buf);
|
|
||||||
|
|
||||||
if (array->len > 2) {
|
if (array->len > 2) {
|
||||||
g_string_append (printable, ", ");
|
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);
|
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
|
void
|
||||||
_nm_utils_register_value_transformations (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_value_register_transform_func (DBUS_TYPE_G_MAP_OF_STRING,
|
||||||
G_TYPE_STRING,
|
G_TYPE_STRING,
|
||||||
nm_utils_convert_string_hash_to_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;
|
registered = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user