summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2023-03-16 11:02:41 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2023-06-29 10:18:09 +0200
commite96bb430e2b8b28275803cf7e448caff60347260 (patch)
tree8ba15b77edda0c2fc2576204491773a5f8fed1ef
parent043c18bf0f52282a50073df3232d0e44920dc704 (diff)
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 69e3b7b44d..b389b7e913 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 cbf26540fe..08deaf5abd 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,
@@ -3506,6 +3506,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);