NetworkManager/clients/common
Thomas Haller 421784d2f1 cli: support backslash escaping for cli options like vpn.data, vpn.secrets, bond.options, ethernet.s390-options
This is obviously a change in behavior, as we now honor backslash
escape sequences. With this change, all string values can be expressed,
both as option keys and values.

Previously, you could for example not set vpn.secrets to have a ','
and you could not set vpn.data to

  nmcli connection modify "$PROFILE" +vpn.data 'ipsec-ike = aes256-sha2_256-modp2048,aes256-sha2_256-modp1536'

Use a relatively simple backslash escaping scheme. The main goal of
the scheme is that it doesn't change behavior for the majority of cases.
It only changes behavior for setting an option if:

  - the string contains a backslash

  - and if the backslash proceeds one of the few characters that support
    escaping now (white space, ',', '\\', and '=').

The only downside here is that backslash is only treated special, if it
preceeds a character that requires escaping. That makes the behavior
non intuitive. However, it allows to write most backslashes without
escaping them as "\\\\" and thus keep previous behavior.

The nmcli getters now also escape the options accordingly. That means,
the string printed by the getter is also a valid input for the setter.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/390
2020-04-04 19:53:03 +02:00
..
tests license: Add license using SPDX identifiers to meson build files 2020-02-17 13:16:57 +01:00
meson.build license: Add license using SPDX identifiers to meson build files 2020-02-17 13:16:57 +01:00
nm-client-utils.c clients: avoid compiler warning about redefining NDEBUG for qrcodegen 2020-01-15 22:25:21 +01:00
nm-client-utils.h cli: add "nmcli d wifi show" 2019-10-18 17:38:57 +02:00
nm-meta-setting-access.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-meta-setting-access.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-meta-setting-desc.c cli: support backslash escaping for cli options like vpn.data, vpn.secrets, bond.options, ethernet.s390-options 2020-04-04 19:53:03 +02:00
nm-meta-setting-desc.h clients: add missing 'extern' keyword 2020-02-03 11:00:34 +01:00
nm-polkit-listener.c all: add nm_utils_error_is_cancelled() and nm_utils_error_is_cancelled_or_disposing() 2020-02-10 19:11:50 +01:00
nm-polkit-listener.h clients: polkit-agent: implement polkit agent without using libpolkit 2019-12-24 10:13:51 +01:00
nm-secret-agent-simple.c clients/secret-agent: don't require secrets for OWE connections 2019-12-05 14:00:10 +01:00
nm-secret-agent-simple.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-vpn-helpers.c clients: use nm_utils_ifname_valid() to validate interface name in nm_vpn_wireguard_import() 2020-02-26 17:51:13 +01:00
nm-vpn-helpers.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
qrcodegen.c cli: add "nmcli d wifi show" 2019-10-18 17:38:57 +02:00
qrcodegen.h cli: add "nmcli d wifi show" 2019-10-18 17:38:57 +02:00
settings-docs.h.in Add domain_match mode for wifi certificate domain comparison 2020-03-23 20:31:09 +01:00
settings-docs.xsl cli: fix marking settings docs for translation 2017-04-23 23:45:02 +02:00