summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2023-03-16 11:02:41 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2023-03-16 11:44:09 +0100
commit7d2e0dbcf809f1927d57ae48f6ccb5c30bd8498c (patch)
tree14a6c240e711ac62ac0f3a98f4256f9d9839320c
parent69ec7b2f0453bdffcae728bdc4966bdac3e4645b (diff)
downloadNetworkManager-bg/link-setting-ifcfg.tar.gz
ifcfg-rh: fail to save connections with the 'link' settingbg/link-setting-ifcfg
Fail to save a connection with a 'link' setting instead of just ignoring it. Now: $ nmcli connection add type ethernet ifname foobar Connection 'ethernet-foobar' (c3f6f067-e1d5-4bb1-8d67-e09109253a79) successfully added. $ nmcli connection modify ethernet-foobar link.tx-queue-length 1234 Error: Failed to modify connection 'ethernet-foobar': failed to update connection: The ifcfg-rh plugin doesn't support setting 'link'. If you are modifying an existing connection profile saved in ifcfg-rh format, please migrate the connection to keyfile using 'nmcli connection migrate c3f6f067-e1d5-4bb1-8d67-e09109253a79' or via the Update2() D-Bus API and try again. $ nmcli connection migrate c3f6f067-e1d5-4bb1-8d67-e09109253a79 Connection 'ethernet-foobar' (c3f6f067-e1d5-4bb1-8d67-e09109253a79) successfully migrated. $ nmcli connection modify ethernet-foobar link.tx-queue-length 1234 $ Fixes: 39bfcf7aab97 ('all: add "link" setting')
-rw-r--r--man/nm-settings-ifcfg-rh.xsl2
-rw-r--r--src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c7
2 files changed, 7 insertions, 2 deletions
diff --git a/man/nm-settings-ifcfg-rh.xsl b/man/nm-settings-ifcfg-rh.xsl
index 4685b56cc7..33138b090b 100644
--- a/man/nm-settings-ifcfg-rh.xsl
+++ b/man/nm-settings-ifcfg-rh.xsl
@@ -334,7 +334,7 @@ DEVICETYPE=TeamPort
<xsl:template match="setting">
<xsl:variable name="setting_name" select="../@name"/>
- <xsl:variable name="unsupported" select="'6lowpan, 802-11-olpc-mesh, adsl, bluetooth, cdma, dummy, generic, gsm, ip-tunnel, loopback, macsec, macvlan, ovs-bridge, ovs-dpdk, ovs-interface, ovs-patch, ovs-port, ppp, pppoe, serial, tun, veth, vpn, vrf, vxlan, wifi-p2p, wimax, wireguard, wpan'"/>
+ <xsl:variable name="unsupported" select="'6lowpan, 802-11-olpc-mesh, adsl, bluetooth, cdma, dummy, generic, gsm, ip-tunnel, link, loopback, macsec, macvlan, ovs-bridge, ovs-dpdk, ovs-interface, ovs-patch, ovs-port, ppp, pppoe, serial, tun, veth, vpn, vrf, vxlan, wifi-p2p, wimax, wireguard, wpan'"/>
<xsl:if test="not (contains(concat(' ', $unsupported, ','), concat(' ', @name, ',')))">
<table>
<title><xsl:value-of select="@name"/> setting</title>
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 3756cd09f9..4aecba86f4 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
@@ -61,7 +61,7 @@
/*****************************************************************************/
-static void _nm_unused
+static void
set_error_unsupported(GError **error,
NMConnection *connection,
const char *name,
@@ -3483,6 +3483,11 @@ do_write_construct(NMConnection *connection,
write_sriov_setting(connection, ifcfg);
write_tc_setting(connection, ifcfg);
+ if (_nm_connection_get_setting(connection, NM_TYPE_SETTING_LINK)) {
+ set_error_unsupported(error, connection, "link", TRUE);
+ return FALSE;
+ }
+
route_path_is_svformat = utils_has_route_file_new_syntax(route_path);
has_complex_routes_v4 = utils_has_complex_routes(ifcfg_name, AF_INET);