libnm: be more accepting parsing boolean values in nm_utils_parse_variant_attributes()

We should use the same str2bool parser everywhere: _nm_utils_ascii_str_to_bool().
Incidentally, this function allows more forms of expressing a boolean
value.

  $ nmcli connection modify "$CON" ipv4.routes '1.2.3.4/32 1.2.3.1 onlink=1'
  Error: failed to modify ipv4.routes: invalid option 'onlink=1': invalid boolean value '1' for attribute 'onlink'.

(cherry picked from commit 26e7abc65e)
This commit is contained in:
Thomas Haller 2017-11-24 12:27:53 +01:00
parent 00bc168307
commit 3b1be2b4cd

View file

@ -4688,13 +4688,10 @@ nm_utils_parse_variant_attributes (const char *string,
}
variant = g_variant_new_byte ((guchar) num);
} else if (g_variant_type_equal ((*s)->type, G_VARIANT_TYPE_BOOLEAN)) {
gboolean b;
int b;
if (nm_streq (value, "true"))
b = TRUE;
else if (nm_streq (value, "false"))
b = FALSE;
else {
b = _nm_utils_ascii_str_to_bool (value, -1);
if (b == -1) {
g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_FAILED,
_("invalid boolean value '%s' for attribute '%s'"), value, name);
return NULL;