libnm-core: support variant attributes of type int32 and uint64
This commit is contained in:
@@ -5654,6 +5654,24 @@ nm_utils_parse_variant_attributes (const char *string,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
variant = g_variant_new_uint32 (num);
|
variant = g_variant_new_uint32 (num);
|
||||||
|
} else if (g_variant_type_equal ((*s)->type, G_VARIANT_TYPE_INT32)) {
|
||||||
|
gint64 num = _nm_utils_ascii_str_to_int64 (value, 10, G_MININT32, G_MAXINT32, G_MAXINT64);
|
||||||
|
|
||||||
|
if (num == G_MAXINT64) {
|
||||||
|
g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_FAILED,
|
||||||
|
_("invalid int32 value '%s' for attribute '%s'"), value, (*s)->name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
variant = g_variant_new_int32 (num);
|
||||||
|
} else if (g_variant_type_equal ((*s)->type, G_VARIANT_TYPE_UINT64)) {
|
||||||
|
guint64 num = _nm_utils_ascii_str_to_uint64 (value, 10, 0, G_MAXUINT64, G_MAXUINT64);
|
||||||
|
|
||||||
|
if (num == G_MAXUINT64 && errno != 0) {
|
||||||
|
g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_FAILED,
|
||||||
|
_("invalid uint64 value '%s' for attribute '%s'"), value, (*s)->name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
variant = g_variant_new_uint64 (num);
|
||||||
} else if (g_variant_type_equal ((*s)->type, G_VARIANT_TYPE_BYTE)) {
|
} else if (g_variant_type_equal ((*s)->type, G_VARIANT_TYPE_BYTE)) {
|
||||||
gint64 num = _nm_utils_ascii_str_to_int64 (value, 10, 0, G_MAXUINT8, -1);
|
gint64 num = _nm_utils_ascii_str_to_int64 (value, 10, 0, G_MAXUINT8, -1);
|
||||||
|
|
||||||
|
@@ -4913,6 +4913,10 @@ _nm_utils_format_variant_attributes_full (GString *str,
|
|||||||
|
|
||||||
if (g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT32))
|
if (g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT32))
|
||||||
value = nm_sprintf_buf (buf, "%u", g_variant_get_uint32 (variant));
|
value = nm_sprintf_buf (buf, "%u", g_variant_get_uint32 (variant));
|
||||||
|
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_INT32))
|
||||||
|
value = nm_sprintf_buf (buf, "%d", (int) g_variant_get_int32 (variant));
|
||||||
|
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT64))
|
||||||
|
value = nm_sprintf_buf (buf, "%"G_GUINT64_FORMAT, g_variant_get_uint64 (variant));
|
||||||
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_BYTE))
|
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_BYTE))
|
||||||
value = nm_sprintf_buf (buf, "%hhu", g_variant_get_byte (variant));
|
value = nm_sprintf_buf (buf, "%hhu", g_variant_get_byte (variant));
|
||||||
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_BOOLEAN))
|
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_BOOLEAN))
|
||||||
|
Reference in New Issue
Block a user