NetworkManager/clients
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
..
cli cli: hide nm_cli global variable from public headers 2020-04-04 19:28:41 +02:00
cloud-setup license: Add license using SPDX identifiers to meson build files 2020-02-17 13:16:57 +01:00
common 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
tests clients/tests: comment return code by signal in test output 2020-03-23 13:30:13 +01:00
tui meson: merge branch 'inigomartinez/meson-license' 2020-03-28 12:45:19 +01:00
meson.build license: Add license using SPDX identifiers to meson build files 2020-02-17 13:16:57 +01:00
nm-online.c all: use nm_clear_pointer() instead of g_clear_pointer() 2020-03-23 11:22:38 +01:00