From 00f63074d6200badb5193b69c60bd211d7a743f3 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 16 Aug 2021 23:15:18 +0200 Subject: [PATCH 1/3] ifcfg: don't limit parsing DNS elements to 10 entries It's not the task of the ifcfg reader to pre-normalize profiles to truncate the DNS server list. It's only nm_connection_verify()'s task to indicate what is valid and what not. Increase the number to something excessive. Note that the parsing scales with O(n^2). So don't have it totally unbounded and have an overall limit (of 10000 entries). --- .../plugins/ifcfg-rh/nms-ifcfg-rh-reader.c | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c index dbfa65da97..e95ba43b05 100644 --- a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c +++ b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c @@ -1974,26 +1974,27 @@ make_ip4_setting(shvarFile *ifcfg, /* DNS servers * Pick up just IPv4 addresses (IPv6 addresses are taken by make_ip6_setting()) */ - for (i = 1; i <= 10; i++) { + for (i = 1; i < 10000; i++) { char tag[256]; numbered_tag(tag, "DNS", i); nm_clear_g_free(&value); v = svGetValueStr(ifcfg, tag, &value); - if (v) { - if (nm_utils_ipaddr_is_valid(AF_INET, v)) { - if (!nm_setting_ip_config_add_dns(s_ip4, v)) - PARSE_WARNING("duplicate DNS server %s", tag); - } else if (nm_utils_ipaddr_is_valid(AF_INET6, v)) { - /* Ignore IPv6 addresses */ - } else { - g_set_error(error, - NM_SETTINGS_ERROR, - NM_SETTINGS_ERROR_INVALID_CONNECTION, - "Invalid DNS server address '%s'", - v); - return NULL; - } + if (!v) + break; + + if (nm_utils_ipaddr_is_valid(AF_INET, v)) { + if (!nm_setting_ip_config_add_dns(s_ip4, v)) + PARSE_WARNING("duplicate DNS server %s", tag); + } else if (nm_utils_ipaddr_is_valid(AF_INET6, v)) { + /* Ignore IPv6 addresses */ + } else { + g_set_error(error, + NM_SETTINGS_ERROR, + NM_SETTINGS_ERROR_INVALID_CONNECTION, + "Invalid DNS server address '%s'", + v); + return NULL; } } @@ -2497,16 +2498,14 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea /* DNS servers * Pick up just IPv6 addresses (IPv4 addresses are taken by make_ip4_setting()) */ - for (i = 1; i <= 10; i++) { + for (i = 1; i < 10000; i++) { char tag[256]; numbered_tag(tag, "DNS", i); nm_clear_g_free(&value); v = svGetValueStr(ifcfg, tag, &value); - if (!v) { - /* all done */ + if (!v) break; - } if (nm_utils_ipaddr_is_valid(AF_INET6, v)) { if (!nm_setting_ip_config_add_dns(s_ip6, v)) From 7de4322d51d7b33890db452b18d52b1ce82ccbfc Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 17 Aug 2021 09:35:54 +0200 Subject: [PATCH 2/3] ifcfg: don't let write_ip[46]_setting() fail --- .../plugins/ifcfg-rh/nms-ifcfg-rh-writer.c | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c index 9129c7acd8..b90dd52084 100644 --- a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c +++ b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c @@ -2685,12 +2685,11 @@ write_dns_setting(shvarFile *ifcfg, NMConnection *connection, int addr_family) } } -static gboolean +static void write_ip4_setting(NMConnection *connection, shvarFile * ifcfg, shvarFile ** out_route_content_svformat, - GString ** out_route_content, - GError ** error) + GString ** out_route_content) { NMSettingIPConfig * s_ip4; const char * value; @@ -2713,7 +2712,7 @@ write_ip4_setting(NMConnection *connection, s_ip4 = nm_connection_get_setting_ip4_config(connection); if (!s_ip4) - return TRUE; + return; method = nm_setting_ip_config_get_method(s_ip4); @@ -2722,7 +2721,7 @@ write_ip4_setting(NMConnection *connection, method = NM_SETTING_IP4_CONFIG_METHOD_AUTO; if (nm_streq(method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED)) - return TRUE; + return; num = nm_setting_ip_config_get_num_addresses(s_ip4); @@ -2881,8 +2880,6 @@ write_ip4_setting(NMConnection *connection, } svSetValueStr(ifcfg, "DHCP_REJECT_SERVERS", str->str); } - - return TRUE; } static void @@ -2968,11 +2965,8 @@ write_ip4_aliases(NMConnection *connection, const char *base_ifcfg_path) } } -static gboolean -write_ip6_setting(NMConnection *connection, - shvarFile * ifcfg, - GString ** out_route6_content, - GError ** error) +static void +write_ip6_setting(NMConnection *connection, shvarFile *ifcfg, GString **out_route6_content) { NMSettingIPConfig * s_ip6; const char * value; @@ -2991,17 +2985,17 @@ write_ip6_setting(NMConnection *connection, s_ip6 = nm_connection_get_setting_ip6_config(connection); if (!s_ip6) - return TRUE; + return; value = nm_setting_ip_config_get_method(s_ip6); g_assert(value); if (!strcmp(value, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { svSetValueStr(ifcfg, "IPV6INIT", "no"); - return TRUE; + return; } else if (!strcmp(value, NM_SETTING_IP6_CONFIG_METHOD_DISABLED)) { svSetValueStr(ifcfg, "IPV6_DISABLED", "yes"); svSetValueStr(ifcfg, "IPV6INIT", "no"); - return TRUE; + return; } else if (!strcmp(value, NM_SETTING_IP6_CONFIG_METHOD_AUTO)) { svSetValueStr(ifcfg, "IPV6INIT", "yes"); svSetValueStr(ifcfg, "IPV6_AUTOCONF", "yes"); @@ -3148,8 +3142,6 @@ write_ip6_setting(NMConnection *connection, write_res_options(ifcfg, s_ip6, "IPV6_RES_OPTIONS"); NM_SET_OUT(out_route6_content, write_route_file(s_ip6)); - - return TRUE; } static void @@ -3441,15 +3433,12 @@ do_write_construct(NMConnection * connection, } else route_ignore = FALSE; - if (!write_ip4_setting(connection, - ifcfg, - !route_ignore && route_path_is_svformat ? &route_content_svformat : NULL, - !route_ignore && route_path_is_svformat ? NULL : &route_content, - error)) - return FALSE; + write_ip4_setting(connection, + ifcfg, + !route_ignore && route_path_is_svformat ? &route_content_svformat : NULL, + !route_ignore && route_path_is_svformat ? NULL : &route_content); - if (!write_ip6_setting(connection, ifcfg, !route_ignore ? &route6_content : NULL, error)) - return FALSE; + write_ip6_setting(connection, ifcfg, !route_ignore ? &route6_content : NULL); write_ip_routing_rules(connection, ifcfg, route_ignore); From 8733d223430284fe54d13aa184a5b480f678b245 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 16 Aug 2021 23:02:59 +0200 Subject: [PATCH 3/3] ifcfg: read/write full IPv6 settings also for method ignore/disabled Do "bother" to read/write settings. For the umpteenth time, it's not up to the reader/writer to decide what properties are valid for a profile or which makes sense. Only nm_connection_verify() can decide that. For example nm_connection_verify() has no problem with ipv6.method=disabled while also setting ipv6.addr-gen-mode. We cannot just shortcut the parsing/writing. The reader only ignores addresses, dns and dns-searches, so that we don't start parsing invalid files, where the setting would have been ignore previously. In particular, echo "DEVICE=eth0" > /etc/sysconfig/network-scripts/ifcfg-xxx nmcli connection load /etc/sysconfig/network-scripts/ifcfg-xxx nmcli -f ipv6.method,ipv6.addr-gen-mode connection show /etc/sysconfig/network-scripts/ifcfg-xxx needs to show eui64 addr-gen-mode. --- .../plugins/ifcfg-rh/nms-ifcfg-rh-reader.c | 66 ++++++++++++------- .../plugins/ifcfg-rh/nms-ifcfg-rh-writer.c | 2 - ...m_test-wired-802-1X-subj-matches.cexpected | 2 + .../ifcfg-Test_Write_Bond_Main.cexpected | 3 + .../ifcfg-Test_Write_Permissions.cexpected | 3 + .../ifcfg-Test_Write_Wifi_LEAP.cexpected | 3 + ...fg-Test_Write_Wifi_WEP_104_ASCII.cexpected | 3 + ...g-Test_Write_Wired_Static_Routes.cexpected | 2 + .../ifcfg-Test_Write_Wired_match.cexpected | 2 + .../ifcfg-Vlan_test-vlan-interface.cexpected | 2 + .../ifcfg-random_wifi_connection.cexpected | 2 + .../ifcfg-random_wifi_connection_2.cexpected | 2 + .../ifcfg-test-ip6-disabled.cexpected | 2 + .../ifcfg-test-sriov-write.cexpected | 3 + .../ifcfg-test-static-routes-legacy.cexpected | 2 + .../ifcfg-test-tc-write-empty.cexpected | 3 + .../ifcfg-test-tc-write.cexpected | 3 + .../ifcfg-test-vlan-vlanid-use.cexpected | 2 + .../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 28 +++++++- 19 files changed, 108 insertions(+), 27 deletions(-) diff --git a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c index e95ba43b05..aaf11777cd 100644 --- a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c +++ b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c @@ -2250,6 +2250,7 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea gboolean ip6_privacy = FALSE, ip6_privacy_prefer_public_ip; NMSettingIP6ConfigPrivacy ip6_privacy_val; guint32 route_table; + gboolean is_disabled; s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new(); @@ -2376,10 +2377,9 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea NULL); /* Don't bother to read IP, DNS and routes when IPv6 is disabled */ - if (NM_IN_STRSET(method, - NM_SETTING_IP6_CONFIG_METHOD_IGNORE, - NM_SETTING_IP6_CONFIG_METHOD_DISABLED)) - return NM_SETTING(g_steal_pointer(&s_ip6)); + is_disabled = NM_IN_STRSET(method, + NM_SETTING_IP6_CONFIG_METHOD_IGNORE, + NM_SETTING_IP6_CONFIG_METHOD_DISABLED); nm_clear_g_free(&value); v = svGetValueStr(ifcfg, "DHCPV6_DUID", &value); @@ -2439,15 +2439,23 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea NULL); list = nm_strsplit_set(value, " "); - for (iter = list, i = 0; iter && *iter; iter++, i++) { - NMIPAddress *addr = NULL; + if (list) { + if (is_disabled) + PARSE_WARNING("ignore IPv6 addresses with method disabled/ignore"); + else { + for (iter = list, i = 0; *iter; iter++, i++) { + nm_auto_unref_ip_address NMIPAddress *addr = NULL; - if (!parse_full_ip6_address(ifcfg, *iter, i, &addr, error)) - return NULL; + if (!parse_full_ip6_address(ifcfg, *iter, i, &addr, is_disabled ? NULL : error)) { + if (is_disabled) + break; + return NULL; + } - if (!nm_setting_ip_config_add_address(s_ip6, addr)) - PARSE_WARNING("duplicate IP6 address"); - nm_ip_address_unref(addr); + if (!nm_setting_ip_config_add_address(s_ip6, addr)) + PARSE_WARNING("duplicate IP6 address"); + } + } } /* Gateway */ @@ -2463,18 +2471,20 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea } if (v) { char *ptr; + if ((ptr = strchr(v, '%')) != NULL) *ptr = '\0'; /* remove %interface prefix if present */ if (!nm_utils_ipaddr_is_valid(AF_INET6, v)) { - g_set_error(error, - NM_SETTINGS_ERROR, - NM_SETTINGS_ERROR_INVALID_CONNECTION, - "Invalid IP6 address '%s'", - v); - return NULL; - } - - g_object_set(s_ip6, NM_SETTING_IP_CONFIG_GATEWAY, v, NULL); + if (!is_disabled) { + g_set_error(error, + NM_SETTINGS_ERROR, + NM_SETTINGS_ERROR_INVALID_CONNECTION, + "Invalid IP6 address '%s'", + v); + return NULL; + } + } else + g_object_set(s_ip6, NM_SETTING_IP_CONFIG_GATEWAY, v, NULL); } } @@ -2508,11 +2518,17 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea break; if (nm_utils_ipaddr_is_valid(AF_INET6, v)) { + if (is_disabled) { + PARSE_WARNING("ignore DNS server addresses with method disabled/ignore"); + break; + } if (!nm_setting_ip_config_add_dns(s_ip6, v)) PARSE_WARNING("duplicate DNS server %s", tag); } else if (nm_utils_ipaddr_is_valid(AF_INET, v)) { /* Ignore IPv4 addresses */ } else { + if (is_disabled) + continue; g_set_error(error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION, @@ -2541,9 +2557,13 @@ make_ip6_setting(shvarFile *ifcfg, shvarFile *network_ifcfg, gboolean routes_rea searches = nm_strsplit_set(v, " "); if (searches) { - for (iter = searches; *iter; iter++) { - if (!nm_setting_ip_config_add_dns_search(s_ip6, *iter)) - PARSE_WARNING("duplicate DNS domain '%s'", *iter); + if (is_disabled) { + PARSE_WARNING("ignore IPV6_DOMAIN with method disabled/ignore"); + } else { + for (iter = searches; *iter; iter++) { + if (!nm_setting_ip_config_add_dns_search(s_ip6, *iter)) + PARSE_WARNING("duplicate DNS domain '%s'", *iter); + } } } } diff --git a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c index b90dd52084..d2358ba6c0 100644 --- a/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c +++ b/src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c @@ -2991,11 +2991,9 @@ write_ip6_setting(NMConnection *connection, shvarFile *ifcfg, GString **out_rout g_assert(value); if (!strcmp(value, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { svSetValueStr(ifcfg, "IPV6INIT", "no"); - return; } else if (!strcmp(value, NM_SETTING_IP6_CONFIG_METHOD_DISABLED)) { svSetValueStr(ifcfg, "IPV6_DISABLED", "yes"); svSetValueStr(ifcfg, "IPV6INIT", "no"); - return; } else if (!strcmp(value, NM_SETTING_IP6_CONFIG_METHOD_AUTO)) { svSetValueStr(ifcfg, "IPV6INIT", "yes"); svSetValueStr(ifcfg, "IPV6_AUTOCONF", "yes"); diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected index 240cd5c18d..d2f5c453c1 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected @@ -16,6 +16,8 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="System test-wired-802-1X-subj-matches" UUID=${UUID} DEVICE=eth0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected index b288c04a47..ccc0f35a62 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected @@ -11,6 +11,9 @@ GATEWAY=1.1.1.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write Bond Main" UUID=${UUID} DEVICE=bond0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected index 80e969212b..d4a978b673 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected @@ -5,6 +5,9 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write Permissions" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected index d3db19b229..f1b01a215d 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected @@ -11,6 +11,9 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write Wifi LEAP" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected index 32db726256..60540fbebd 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected @@ -10,6 +10,9 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write Wifi WEP 104 ASCII" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Static_Routes.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Static_Routes.cexpected index cc29a2cc60..fe864c435f 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Static_Routes.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Static_Routes.cexpected @@ -17,6 +17,8 @@ IPV4_FAILURE_FATAL=no ACD_TIMEOUT=400 ARPING_WAIT=1 IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="Test Write Wired Static Routes" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_match.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_match.cexpected index 9499278e3e..908cb917c0 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_match.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_match.cexpected @@ -8,6 +8,8 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="Test Write Wired with Match setting" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected index 44eb777ce4..6ad151aa55 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected @@ -17,6 +17,8 @@ PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="Vlan test-vlan-interface" UUID=${UUID} DEVICE=vlan43 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected index ead3a04747..1f5e04ff77 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected @@ -8,6 +8,8 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="random wifi connection" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected index 7bc1ae6cdd..3dcdbda042 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected @@ -8,6 +8,8 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="random wifi connection 2" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected index cae51b8995..b3199c01b9 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected @@ -6,6 +6,8 @@ DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6_DISABLED=yes IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="Test Write Wired Disabled IP6" UUID=${UUID} ONBOOT=yes diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sriov-write.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sriov-write.cexpected index c882c4796e..a77c615d60 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sriov-write.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sriov-write.cexpected @@ -12,6 +12,9 @@ GATEWAY=1.1.1.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write SR-IOV config" UUID=${UUID} DEVICE=eth0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected index 8197f3208a..41714df6f6 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected @@ -6,6 +6,8 @@ BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME=test-static-routes-legacy UUID=ba60d05a-7898-820d-c2db-427a88f8f2a5 DEVICE=eth0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write-empty.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write-empty.cexpected index 4df768b463..1125ef5517 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write-empty.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write-empty.cexpected @@ -9,6 +9,9 @@ GATEWAY=1.1.1.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write TC config" UUID=${UUID} DEVICE=eth0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected index a67ca598b7..d87efd7214 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-tc-write.cexpected @@ -10,6 +10,9 @@ GATEWAY=1.1.1.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy NAME="Test Write TC config" UUID=${UUID} DEVICE=eth0 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use.cexpected b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use.cexpected index a7be14ce34..2eaec850d1 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use.cexpected +++ b/src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-vlanid-use.cexpected @@ -9,6 +9,8 @@ HWADDR= PROXY_METHOD=none BROWSER_ONLY=no IPV6INIT=no +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no NAME="Vlan test-vlan-vlanid-use" UUID=${UUID} DEVICE=eth0.9 diff --git a/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index 7d44d5dc75..bc34ec124a 100644 --- a/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -5287,7 +5287,12 @@ test_write_wired_match(void) s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new(); nm_connection_add_setting(connection, NM_SETTING(s_ip6)); - g_object_set(s_ip6, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL); + g_object_set(s_ip6, + NM_SETTING_IP_CONFIG_METHOD, + NM_SETTING_IP6_CONFIG_METHOD_IGNORE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, + NULL); /* Match setting */ s_match = (NMSettingMatch *) nm_setting_match_new(); @@ -5480,7 +5485,12 @@ test_write_ip6_disabled(void) s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new(); nm_connection_add_setting(connection, NM_SETTING(s_ip6)); - g_object_set(s_ip6, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_DISABLED, NULL); + g_object_set(s_ip6, + NM_SETTING_IP_CONFIG_METHOD, + NM_SETTING_IP6_CONFIG_METHOD_DISABLED, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, + NULL); nmtst_assert_connection_verifies(connection); @@ -5755,6 +5765,8 @@ test_write_wired_static_routes(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); nmtst_assert_connection_verifies(connection); @@ -5834,6 +5846,8 @@ test_write_wired_dhcp_8021x_peap_mschapv2(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); /* 802.1x setting */ @@ -6331,6 +6345,8 @@ test_write_wifi_open(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); nmtst_assert_connection_verifies(connection); @@ -6498,6 +6514,8 @@ test_write_wifi_wep(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); nmtst_assert_connection_verifies(connection); @@ -7781,6 +7799,8 @@ test_write_wifi_wpa_then_open(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); nmtst_assert_connection_verifies(connection); @@ -7904,6 +7924,8 @@ test_write_wifi_wpa_then_wep_with_perms(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); nmtst_assert_connection_verifies(connection); @@ -8303,6 +8325,8 @@ test_write_wifi_wep_agent_keys(void) NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + (int) NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NULL); /* Wifi setting */