ifcfg-rh: fix serializing lock route attributes

The lock attribute is a boolean, it can also be FALSE. We need
to handle that case, and don't add serialize "$NAME lock 0" for them.
This commit is contained in:
Thomas Haller
2022-06-24 12:57:18 +02:00
parent efca0b8fa6
commit ae6fe90851

View File

@@ -2295,7 +2295,8 @@ static char *
get_route_attributes_string(NMIPRoute *route, int family) get_route_attributes_string(NMIPRoute *route, int family)
{ {
gs_free const char **names = NULL; gs_free const char **names = NULL;
GVariant *attr, *lock; GVariant *attr;
GVariant *lock;
GString *str; GString *str;
guint i, len; guint i, len;
@@ -2338,9 +2339,9 @@ get_route_attributes_string(NMIPRoute *route, int family)
} else if (NM_STR_HAS_PREFIX(names[i], "lock-")) { } else if (NM_STR_HAS_PREFIX(names[i], "lock-")) {
const char *n = &(names[i])[NM_STRLEN("lock-")]; const char *n = &(names[i])[NM_STRLEN("lock-")];
attr = nm_ip_route_get_attribute(route, n); if (!nm_ip_route_get_attribute(route, n)) {
if (!attr) { if (g_variant_get_boolean(attr))
g_string_append_printf(str, "%s lock 0", n); g_string_append_printf(str, "%s lock 0", n);
} else { } else {
/* we also have a corresponding attribute with the numeric value. The /* we also have a corresponding attribute with the numeric value. The
* lock setting is handled above. */ * lock setting is handled above. */