diff options
| author | Michael Biebl <biebl@debian.org> | 2024-01-25 09:46:18 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2024-01-25 09:46:18 +0100 |
| commit | 70e18d99b8e3e77bb37e218d7ac582130156f8ef (patch) | |
| tree | d40c587e6d3f0e094ff558e415f1bb9803643214 /src/core/settings | |
| parent | d4d8b2b91f7ba000d97a8b2aab48c85000c11314 (diff) | |
New upstream version 1.45.90 upstream/1.45.90
Diffstat (limited to 'src/core/settings')
5 files changed, 58 insertions, 26 deletions
diff --git a/src/core/settings/nm-settings.c b/src/core/settings/nm-settings.c index 8796de36..7fc20298 100644 --- a/src/core/settings/nm-settings.c +++ b/src/core/settings/nm-settings.c @@ -3530,7 +3530,7 @@ load_plugins(NMSettings *self, const char *const *plugins, GError **error) continue; } - if (nm_strv_find_first(plugins, iter - plugins, pname) >= 0) { + if (nm_strv_contains(plugins, iter - plugins, pname)) { /* the plugin is already mentioned in the list previously. * Don't load a duplicate. */ continue; 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 84a9479d..04e79725 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 @@ -306,7 +306,7 @@ check_if_bond_slave(shvarFile *ifcfg, NMSettingConnection *s_con) } g_object_set(s_con, - NM_SETTING_CONNECTION_MASTER, + NM_SETTING_CONNECTION_CONTROLLER, v, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_SETTING_BOND_SETTING_NAME, @@ -340,7 +340,7 @@ check_if_team_slave(shvarFile *ifcfg, NMSettingConnection *s_con) } g_object_set(s_con, - NM_SETTING_CONNECTION_MASTER, + NM_SETTING_CONNECTION_CONTROLLER, v, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_SETTING_TEAM_SETTING_NAME, @@ -512,7 +512,7 @@ make_connection_setting(const char *file, old_value, v); } else { - g_object_set(s_con, NM_SETTING_CONNECTION_MASTER, v, NULL); + g_object_set(s_con, NM_SETTING_CONNECTION_CONTROLLER, v, NULL); g_object_set(s_con, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_SETTING_BRIDGE_SETTING_NAME, @@ -535,7 +535,7 @@ make_connection_setting(const char *file, old_value, v); } else { - g_object_set(s_con, NM_SETTING_CONNECTION_MASTER, v, NULL); + g_object_set(s_con, NM_SETTING_CONNECTION_CONTROLLER, v, NULL); g_object_set(s_con, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_SETTING_OVS_PORT_SETTING_NAME, @@ -555,7 +555,7 @@ make_connection_setting(const char *file, old_value, v); } else { - g_object_set(s_con, NM_SETTING_CONNECTION_MASTER, v, NULL); + g_object_set(s_con, NM_SETTING_CONNECTION_CONTROLLER, v, NULL); g_object_set(s_con, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_SETTING_VRF_SETTING_NAME, 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 08deaf5a..e703bb73 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 @@ -1346,6 +1346,7 @@ write_ethtool_setting(NMConnection *connection, shvarFile *ifcfg, GError **error guint32 u32; gboolean b; gboolean any_option = FALSE; + char prop_name[300]; s_con = nm_connection_get_setting_connection(connection); if (s_con) { @@ -1426,6 +1427,30 @@ write_ethtool_setting(NMConnection *connection, shvarFile *ifcfg, GError **error any_option = TRUE; } + is_first = TRUE; + for (ethtool_id = _NM_ETHTOOL_ID_CHANNELS_FIRST; ethtool_id <= _NM_ETHTOOL_ID_CHANNELS_LAST; + ethtool_id++) { + if (nm_setting_option_get_uint32(NM_SETTING(s_ethtool), + nm_ethtool_data[ethtool_id]->optname, + &u32)) { + nm_sprintf_buf(prop_name, "ethtool.%s", nm_ethtool_data[ethtool_id]->optname); + set_error_unsupported(error, connection, prop_name, FALSE); + return FALSE; + } + } + + is_first = TRUE; + for (ethtool_id = _NM_ETHTOOL_ID_EEE_FIRST; ethtool_id <= _NM_ETHTOOL_ID_EEE_LAST; + ethtool_id++) { + if (nm_setting_option_get_boolean(NM_SETTING(s_ethtool), + nm_ethtool_data[ethtool_id]->optname, + &b)) { + nm_sprintf_buf(prop_name, "ethtool.%s", nm_ethtool_data[ethtool_id]->optname); + set_error_unsupported(error, connection, prop_name, FALSE); + return FALSE; + } + } + if (!any_option) { /* Write an empty dummy "-A" option without arguments. This is to * ensure that the reader will create an (all default) NMSettingEthtool. @@ -2235,34 +2260,38 @@ write_connection_setting(NMSettingConnection *s_con, shvarFile *ifcfg, const cha master = NULL; } - if (nm_setting_connection_is_slave_type(s_con, NM_SETTING_BOND_SETTING_NAME)) { + if (nm_streq0(nm_setting_connection_get_port_type(s_con), NM_SETTING_BOND_SETTING_NAME)) { svSetValueStr(ifcfg, "MASTER_UUID", master); svSetValueStr(ifcfg, "MASTER", master_iface); svSetValueStr(ifcfg, "SLAVE", "yes"); - } else if (nm_setting_connection_is_slave_type(s_con, NM_SETTING_BRIDGE_SETTING_NAME)) { + } else if (nm_streq0(nm_setting_connection_get_port_type(s_con), + NM_SETTING_BRIDGE_SETTING_NAME)) { svSetValueStr(ifcfg, "BRIDGE_UUID", master); svSetValueStr(ifcfg, "BRIDGE", master_iface); - } else if (nm_setting_connection_is_slave_type(s_con, NM_SETTING_TEAM_SETTING_NAME)) { + } else if (nm_streq0(nm_setting_connection_get_port_type(s_con), + NM_SETTING_TEAM_SETTING_NAME)) { svSetValueStr(ifcfg, "TEAM_MASTER_UUID", master); svSetValueStr(ifcfg, "TEAM_MASTER", master_iface); if (NM_IN_STRSET(type, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_VLAN_SETTING_NAME)) svUnsetValue(ifcfg, "TYPE"); - } else if (nm_setting_connection_is_slave_type(s_con, NM_SETTING_OVS_PORT_SETTING_NAME)) { + } else if (nm_streq0(nm_setting_connection_get_port_type(s_con), + NM_SETTING_OVS_PORT_SETTING_NAME)) { svSetValueStr(ifcfg, "OVS_PORT_UUID", master); svSetValueStr(ifcfg, "OVS_PORT", master_iface); - } else if (nm_setting_connection_is_slave_type(s_con, NM_SETTING_VRF_SETTING_NAME)) { + } else if (nm_streq0(nm_setting_connection_get_port_type(s_con), + NM_SETTING_VRF_SETTING_NAME)) { svSetValueStr(ifcfg, "VRF_UUID", master); svSetValueStr(ifcfg, "VRF", master_iface); } else { _LOGW("don't know how to set master for a %s slave", - nm_setting_connection_get_slave_type(s_con)); + nm_setting_connection_get_port_type(s_con)); } } if (nm_streq0(type, NM_SETTING_TEAM_SETTING_NAME)) svSetValueStr(ifcfg, "DEVICETYPE", TYPE_TEAM); else if (master_iface - && nm_setting_connection_is_slave_type(s_con, NM_SETTING_TEAM_SETTING_NAME)) + && nm_streq0(nm_setting_connection_get_port_type(s_con), NM_SETTING_TEAM_SETTING_NAME)) svSetValueStr(ifcfg, "DEVICETYPE", TYPE_TEAM_PORT); /* secondary connection UUIDs */ 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 8c1e9d94..1e6b6c25 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 @@ -2231,7 +2231,7 @@ test_clear_master(void) s_con = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_CONNECTION); g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, "br0"); - g_assert_cmpstr(nm_setting_connection_get_slave_type(s_con), ==, "bridge"); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, "bridge"); /* 2. write the connection to a new file */ _writer_new_connec_exp(connection, @@ -2248,7 +2248,7 @@ test_clear_master(void) NULL); g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, NULL); - g_assert_cmpstr(nm_setting_connection_get_slave_type(s_con), ==, NULL); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, NULL); nmtst_assert_connection_verifies_after_normalization(connection, 0, 0); @@ -3623,6 +3623,11 @@ test_roundtrip_ethtool(void) optname = nm_ethtool_data[ethtool_id]->optname; vtype = nm_ethtool_id_get_variant_type(ethtool_id); + if (nm_ethtool_optname_is_channels(optname) || nm_ethtool_optname_is_eee(optname)) { + /* Not supported */ + continue; + } + if (NM_IN_SET(ethtool_id, NM_ETHTOOL_ID_COALESCE_ADAPTIVE_RX, NM_ETHTOOL_ID_COALESCE_ADAPTIVE_TX)) { @@ -7664,9 +7669,7 @@ test_read_bridge_component(void) s_con = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_CONNECTION); g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, "br0"); - g_assert_cmpstr(nm_setting_connection_get_slave_type(s_con), - ==, - NM_SETTING_BRIDGE_SETTING_NAME); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, NM_SETTING_BRIDGE_SETTING_NAME); s_port = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_BRIDGE_PORT); g_assert(nm_setting_bridge_port_get_hairpin_mode(s_port)); @@ -8259,7 +8262,7 @@ test_read_bond_slave(void) g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, "bond0"); - g_assert_cmpstr(nm_setting_connection_get_slave_type(s_con), ==, NM_SETTING_BOND_SETTING_NAME); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, NM_SETTING_BOND_SETTING_NAME); } static void @@ -8315,7 +8318,7 @@ test_read_bond_port(void) s_con = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_CONNECTION); g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, "bond99"); - g_assert_cmpstr(nm_setting_connection_get_slave_type(s_con), ==, NM_SETTING_BOND_SETTING_NAME); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, NM_SETTING_BOND_SETTING_NAME); s_port = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_BOND_PORT); g_assert_cmpuint(nm_setting_bond_port_get_queue_id(s_port), ==, 1); @@ -8554,7 +8557,7 @@ test_read_bond_slave_ib(void) s_con = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_CONNECTION); g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, "bond0"); - g_assert_cmpstr(nm_setting_connection_get_slave_type(s_con), ==, NM_SETTING_BOND_SETTING_NAME); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, NM_SETTING_BOND_SETTING_NAME); } static void diff --git a/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c b/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c index 866b1ffd..b26bad69 100644 --- a/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c +++ b/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c @@ -2004,7 +2004,7 @@ test_read_bridge_component(void) g_assert_cmpstr(nm_setting_connection_get_id(s_con), ==, expected_id); g_assert_cmpstr(nm_setting_connection_get_uuid(s_con), ==, expected_uuid); g_assert_cmpstr(nm_setting_connection_get_master(s_con), ==, "br0"); - g_assert(nm_setting_connection_is_slave_type(s_con, NM_SETTING_BRIDGE_SETTING_NAME)); + g_assert_cmpstr(nm_setting_connection_get_port_type(s_con), ==, NM_SETTING_BRIDGE_SETTING_NAME); s_wired = nm_connection_get_setting_wired(connection); g_assert(s_wired); @@ -2046,9 +2046,9 @@ test_write_bridge_component(void) TRUE, NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME, - NM_SETTING_CONNECTION_MASTER, + NM_SETTING_CONNECTION_CONTROLLER, "br0", - NM_SETTING_CONNECTION_SLAVE_TYPE, + NM_SETTING_CONNECTION_PORT_TYPE, NM_SETTING_BRIDGE_SETTING_NAME, NULL); @@ -2357,9 +2357,9 @@ test_read_minimal_slave(void) NM_SETTING_WIRED_SETTING_NAME, &s_con); g_object_set(s_con, - NM_SETTING_CONNECTION_MASTER, + NM_SETTING_CONNECTION_CONTROLLER, "br0", - NM_SETTING_CONNECTION_SLAVE_TYPE, + NM_SETTING_CONNECTION_PORT_TYPE, "bridge", NULL); nmtst_connection_normalize(con_archetype); |