Commit graph

17296 commits

Author SHA1 Message Date
Beniamino Galvani
e4b323100e pacrunner: don't log pacrunner-manager address
It's a singleton, the address is not meaningful.

(cherry picked from commit 752e906aa4)
2017-04-11 10:36:57 +02:00
Beniamino Galvani
e895beb0da pacrunner: rework processing of configuration entries
Fix some issues in nm-pacrunner-manager.c:

 - when adding a configuration through nm_pacrunner_manager_send(), we
   kept an association between the interface name and the pacrunner
   configuration object path, so that the configuration for that
   interface could be removed later. Unfortunately not all
   configurations have an interface associated, so we need a more
   generic way to identify configurations. Introduce a new @tag
   argument that serves as key to match configurations

 - the interface name of the last pushed configuration was stored in
   the manager private config and reused later; this could cause
   issues when there are multiple outstanding D-Bus calls. The
   interface is not needed anymore after the previous point.

 - remove() didn't actually remove the configuration from the list

(cherry picked from commit 3ad89223d0)
2017-04-11 10:36:56 +02:00
Beniamino Galvani
0160834ea6 pacrunner: remove @domains from private struct
The domain list is not a property of the global pacrunner instance and
can be stored in a local variable.

(cherry picked from commit 10f6854369)
2017-04-11 10:36:55 +02:00
Beniamino Galvani
31327fee98 config: fix assertion in nm_config_device_state_write()
Fixes: 142ebb1037
(cherry picked from commit ad6930f052)
2017-04-08 10:24:10 +02:00
Dan Williams
8608158ed8 device-bond: fix possible uninitialized variable
src/devices/nm-device-bond.c: In function 'check_changed_options':
src/devices/nm-device-bond.c:529:4: error: 'name' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    g_set_error (error,
    ^
src/devices/nm-device-bond.c:505:14: note: 'name' was declared here
  const char *name, *value_a, *value_b;
              ^
src/devices/nm-device-bond.c:528:8: error: 'value_a' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (!nm_streq0 (value_a, value_b)) {
        ^
src/devices/nm-device-bond.c:505:21: note: 'value_a' was declared here
  const char *name, *value_a, *value_b;
                     ^

(cherry picked from commit f66de1dd0f)
2017-04-07 12:03:22 -05:00
Dan Williams
e6f8494dc6 auth-utils: fix possibly uninitialized variables
src/nm-auth-utils.c:343:6: error: 'is_authorized' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (is_authorized) {
      ^
src/nm-auth-utils.c:320:11: note: 'is_authorized' was declared here
  gboolean is_authorized, is_challenge;
           ^
src/nm-auth-utils.c:346:13: error: 'is_challenge' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   } else if (is_challenge) {
             ^
src/nm-auth-utils.c:320:26: note: 'is_challenge' was declared here
  gboolean is_authorized, is_challenge;
                          ^

(cherry picked from commit 24ab2a4945)
2017-04-07 12:03:14 -05:00
Dan Williams
63bc33122e default-route-manager: fix possibly uninitialized variable
src/nm-default-route-manager.c: In function '_ipx_update_default_route':
src/nm-default-route-manager.c:769:23: error: 'is_assumed' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    if (!default_route && !is_assumed) {
                       ^
src/nm-default-route-manager.c:763:13: note: 'is_assumed' was declared here
    gboolean is_assumed;
             ^

(cherry picked from commit 857f26dd19)
2017-04-07 12:03:04 -05:00
Thomas Haller
0726ab54d6 core: only persist explicit managed state in device's state file
For example, when starting without Wi-Fi plugin, a generic device
is created. On stop, we should not store the unmanaged state
on the state file, otherwise after restart the device is unmanaged.

Only store explicit user decisions.

https://bugzilla.redhat.com/show_bug.cgi?id=1440171
(cherry picked from commit 142ebb1037)
2017-04-07 15:27:26 +02:00
Thomas Haller
b72445d6f6 build: fix broken line wraps in Makefile.am
(cherry picked from commit ab47a2d5fe)
2017-04-07 13:53:01 +02:00
Thomas Haller
f975cb635a build: add missing build dependency for ifupdown
And reorder _OBJECTS dependencies of settings plugins after their
corresponding _LDADD declartion.

https://mail.gnome.org/archives/networkmanager-list/2017-April/msg00016.html
(cherry picked from commit 9f7380e973)
2017-04-07 12:42:53 +02:00
Lubomir Rintel
1d08fba49b release: bump version to 1.7.91 (1.8-rc2) 2017-04-06 13:50:32 +02:00
Lubomir Rintel
d77449314a linux-platform: fix link_get_unmanaged() return value
The function is supposed to set *unamanged to NM_UNMANAGED's and indicate
whether NM_UNMANAGED was present in the return value.

Fixes: e32839838e
(cherry picked from commit b7b0227935)
2017-04-06 13:25:48 +02:00
Francesco Giudici
b2596511be nmcli: merge branch 'fg/nmcli_options'
(cherry picked from commit d68f84073b)
2017-04-05 16:50:31 +02:00
Francesco Giudici
ddbb63afeb nmcli: fix 'nmcli con export' parameters check
get_connection() will already move forward arguments (argc/argv):
remove extra argv++/argc--

Example:
"nmcli con export <vpn_con> <output_file> <extra_arg>"
now, extra_arg is detected, printing error:
"Error: unknown extra argument: 'extra_arg'."

(cherry picked from commit 512ed904c6)
2017-04-05 16:39:19 +02:00
Francesco Giudici
72d5be1789 nmcli: allow cmd specific option parsing in next_arg() func
Options dependant on specific commands (e.g., nmcli connection show
--active) are now allowed to be processed by the next_arg() function.
This would allow autocompletion to expand options belonging to specific
command first, and then global ones.

Note that global options ("--ask" and "--show-secrets") will be auto-completed
everywhere but only if at least a '-' is passed. Command specific ones
(--temporary, --active, --order) will be auto-completed only after the command
they belongs to but without requiring the user to pass a heading '-'.

Example:
'nmcli connection show -a'
will expand '-a' into '--active', but
'nmcli connection add -a`
will expand '-a' into '--ask' (as it is a global option)

This commit fixes also autocompletion for:
nmcli connection modify --temporary

(cherry picked from commit 6a3d77fbe6)
2017-04-05 16:38:34 +02:00
Francesco Giudici
77e1304f73 nmcli: avoid calling twice "check_activated()" on "nmcli connection up"
This happens when the connection is in "activating" state and
the connection is a master one waiting for slaves: "check_activated()"
is called by the active_connection_state_cb() and device_state_cb() callbacks.

If the device has already moved to a state >= NM_DEVICE_STATE_IP_CONFIG, the
call to active_connection_state_cb() will end calling
activate_connection_info_finish(), freeing the "info" object. The subsequent
call to device_state_cb() will result in accessing the freed "info".

Just call check_activated() once after registering the
active_connection_state() and device_state_cb() callbacks.

(cherry picked from commit 3d4d1bedda)
2017-04-05 16:04:21 +02:00
Thomas Haller
ff3eace902 systemd: merge branch systemd into master
(cherry picked from commit 95e7914e67)
2017-04-04 17:21:46 +02:00
Thomas Haller
ae172c89a6 systemd: update code from upstream (2017-04-04)
This is a direct dump from systemd git on 2017-04-04, git commit
91dacd4451309e1f4b06fb2628447ddc8425d972.

======

SYSTEMD_DIR=../systemd
COMMIT=91dacd4451309e1f4b06fb2628447ddc8425d972

(
  cd "$SYSTEMD_DIR"
  git checkout "$COMMIT"
  git reset --hard
  git clean -fdx
)

git ls-files :/src/systemd/src/ | xargs -d '\n' rm -f

nm_copy_sd() {
    mkdir -p "./src/systemd/$(dirname "$1")"
    cp "$SYSTEMD_DIR/$1" "./src/systemd/$1"
}

nm_copy_sd "src/basic/alloc-util.c"
nm_copy_sd "src/basic/alloc-util.h"
nm_copy_sd "src/basic/async.h"
nm_copy_sd "src/basic/escape.c"
nm_copy_sd "src/basic/escape.h"
nm_copy_sd "src/basic/ether-addr-util.c"
nm_copy_sd "src/basic/ether-addr-util.h"
nm_copy_sd "src/basic/extract-word.c"
nm_copy_sd "src/basic/extract-word.h"
nm_copy_sd "src/basic/fileio.c"
nm_copy_sd "src/basic/fileio.h"
nm_copy_sd "src/basic/fd-util.c"
nm_copy_sd "src/basic/fd-util.h"
nm_copy_sd "src/basic/fs-util.c"
nm_copy_sd "src/basic/fs-util.h"
nm_copy_sd "src/basic/hash-funcs.c"
nm_copy_sd "src/basic/hash-funcs.h"
nm_copy_sd "src/basic/hashmap.c"
nm_copy_sd "src/basic/hashmap.h"
nm_copy_sd "src/basic/hexdecoct.c"
nm_copy_sd "src/basic/hexdecoct.h"
nm_copy_sd "src/basic/hostname-util.c"
nm_copy_sd "src/basic/hostname-util.h"
nm_copy_sd "src/basic/in-addr-util.c"
nm_copy_sd "src/basic/in-addr-util.h"
nm_copy_sd "src/basic/io-util.c"
nm_copy_sd "src/basic/io-util.h"
nm_copy_sd "src/basic/list.h"
nm_copy_sd "src/basic/log.h"
nm_copy_sd "src/basic/macro.h"
nm_copy_sd "src/basic/mempool.h"
nm_copy_sd "src/basic/mempool.c"
nm_copy_sd "src/basic/parse-util.c"
nm_copy_sd "src/basic/parse-util.h"
nm_copy_sd "src/basic/path-util.c"
nm_copy_sd "src/basic/path-util.h"
nm_copy_sd "src/basic/prioq.h"
nm_copy_sd "src/basic/prioq.c"
nm_copy_sd "src/basic/random-util.c"
nm_copy_sd "src/basic/random-util.h"
nm_copy_sd "src/basic/refcnt.h"
nm_copy_sd "src/basic/set.h"
nm_copy_sd "src/basic/signal-util.h"
nm_copy_sd "src/basic/siphash24.c"
nm_copy_sd "src/basic/siphash24.h"
nm_copy_sd "src/basic/socket-util.c"
nm_copy_sd "src/basic/socket-util.h"
nm_copy_sd "src/basic/sparse-endian.h"
nm_copy_sd "src/basic/stdio-util.h"
nm_copy_sd "src/basic/string-table.c"
nm_copy_sd "src/basic/string-table.h"
nm_copy_sd "src/basic/string-util.c"
nm_copy_sd "src/basic/string-util.h"
nm_copy_sd "src/basic/strv.c"
nm_copy_sd "src/basic/strv.h"
nm_copy_sd "src/basic/time-util.c"
nm_copy_sd "src/basic/time-util.h"
nm_copy_sd "src/basic/umask-util.h"
nm_copy_sd "src/basic/unaligned.h"
nm_copy_sd "src/basic/utf8.c"
nm_copy_sd "src/basic/utf8.h"
nm_copy_sd "src/basic/util.c"
nm_copy_sd "src/basic/util.h"
nm_copy_sd "src/libsystemd-network/arp-util.c"
nm_copy_sd "src/libsystemd-network/arp-util.h"
nm_copy_sd "src/libsystemd-network/dhcp6-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp6-lease-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp6-network.c"
nm_copy_sd "src/libsystemd-network/dhcp6-option.c"
nm_copy_sd "src/libsystemd-network/dhcp6-protocol.h"
nm_copy_sd "src/libsystemd-network/dhcp-identifier.c"
nm_copy_sd "src/libsystemd-network/dhcp-identifier.h"
nm_copy_sd "src/libsystemd-network/dhcp-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp-lease-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp-network.c"
nm_copy_sd "src/libsystemd-network/dhcp-option.c"
nm_copy_sd "src/libsystemd-network/dhcp-packet.c"
nm_copy_sd "src/libsystemd-network/dhcp-protocol.h"
nm_copy_sd "src/libsystemd-network/lldp-internal.h"
nm_copy_sd "src/libsystemd-network/lldp-neighbor.c"
nm_copy_sd "src/libsystemd-network/lldp-neighbor.h"
nm_copy_sd "src/libsystemd-network/lldp-network.c"
nm_copy_sd "src/libsystemd-network/lldp-network.h"
nm_copy_sd "src/libsystemd-network/network-internal.c"
nm_copy_sd "src/libsystemd-network/network-internal.h"
nm_copy_sd "src/libsystemd-network/sd-dhcp6-client.c"
nm_copy_sd "src/libsystemd-network/sd-dhcp6-lease.c"
nm_copy_sd "src/libsystemd-network/sd-dhcp-client.c"
nm_copy_sd "src/libsystemd-network/sd-dhcp-lease.c"
nm_copy_sd "src/libsystemd-network/sd-ipv4ll.c"
nm_copy_sd "src/libsystemd-network/sd-ipv4acd.c"
nm_copy_sd "src/libsystemd-network/sd-lldp.c"
nm_copy_sd "src/libsystemd/sd-event/sd-event.c"
nm_copy_sd "src/libsystemd/sd-id128/id128-util.c"
nm_copy_sd "src/libsystemd/sd-id128/id128-util.h"
nm_copy_sd "src/libsystemd/sd-id128/sd-id128.c"
nm_copy_sd "src/shared/dns-domain.c"
nm_copy_sd "src/shared/dns-domain.h"
nm_copy_sd "src/systemd/_sd-common.h"
nm_copy_sd "src/systemd/sd-dhcp6-client.h"
nm_copy_sd "src/systemd/sd-dhcp6-lease.h"
nm_copy_sd "src/systemd/sd-dhcp-client.h"
nm_copy_sd "src/systemd/sd-dhcp-lease.h"
nm_copy_sd "src/systemd/sd-event.h"
nm_copy_sd "src/systemd/sd-ndisc.h"
nm_copy_sd "src/systemd/sd-id128.h"
nm_copy_sd "src/systemd/sd-ipv4acd.h"
nm_copy_sd "src/systemd/sd-ipv4ll.h"
nm_copy_sd "src/systemd/sd-lldp.h"
2017-04-04 12:19:34 +02:00
Beniamino Galvani
633881673e device: emit IP_CONFIG_CHANGED signal when default route changes
We now update the default route metric based on the result of the
connectivity check. When we update the metric and there is no other
changes to the IP configuration, NMPolicy is not notified about it and
can't update the best device until an actual change in IP config
happens. This results in a wrong best device set in NMPolicy.

NMDevice has NM_DEVICE_IP[4,6]_CONFIG_CHANGED signals that are used
exclusively by NMPolicy to detect when there is a change in
configuration that requires an update of global DNS and routing
information. Emit those signals also when the default route changes.

(cherry picked from commit 3fe144f934)
2017-04-01 15:50:53 +02:00
Beniamino Galvani
383a50d78f default-route-manager: return whether the default route changed
(cherry picked from commit 74f7eff11b)
2017-04-01 15:50:52 +02:00
Beniamino Galvani
02d7084fc4 device: update the address type in nm_device_hw_addr_set_cloned()
Commit 029a0a21ea ("device: split out cloned MAC decision from
nm_device_hw_addr_set_cloned()") accidentally removed the assignment
of the new device @hw_addr_type, which then was left to
HW_ADDR_TYPE_UNSET. As a consequence, we never restored the initial
MAC address when the connection was deactivated. Fix this.

Fixes: 029a0a21ea
(cherry picked from commit 166988264f)
2017-03-30 10:17:32 +02:00
Beniamino Galvani
7dc010606b device: don't update disconnected devices routes after connectivity check
When the device is not activated it does not make sense to try to
update its default route metric based on connectivity status.

Fixes the following:

 nm_ip4_config_commit: assertion 'ifindex > 0' failed

 #0  raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
 #1  g_logv (breakpoint=1) at gmessages.c:324
 #2  g_logv (log_domain=<> "NetworkManager", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at gmessages.c:1081
 #3  g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at gmessages.c:1119
 #4  g_return_if_fail_warning (log_domain=<optimized out>, pretty_function=<optimized out>, expression=<optimized out>) at gmessages.c:1128
 #5  nm_ip4_config_commit (config=<> [NMIP4Config], ifindex=<optimized out>, routes_full_sync=<optimized out>, default_route_metric=-1) at src/nm-ip4-config.c:339
 #6  nm_device_set_ip4_config (self=<> [NMDeviceTun], new_config=<> [NMIP4Config], default_route_metric=450, commit=1, routes_full_sync=<optimized out>) at src/devices/nm-device.c:9635
 #7  ip4_config_merge_and_apply (self=<> [NMDeviceTun], config=0x0, commit=1) at src/devices/nm-device.c:5541
 #8  update_connectivity_state (self=<> [NMDeviceTun], state=NM_CONNECTIVITY_NONE) at src/devices/nm-device.c:1743
 #9  concheck_periodic_update (self=<> [NMDeviceTun]) at src/devices/nm-device.c:1872
 #10 nm_device_set_ip4_config (self=<> [NMDeviceTun], new_config=0x0, default_route_metric=0, commit=1, routes_full_sync=1) at src/devices/nm-device.c:9669
 #11 _cleanup_generic_post (self=<> [NMDeviceTun], cleanup_type=CLEANUP_TYPE_KEEP) at src/devices/nm-device.c:11863
 #12 nm_device_cleanup (self=<> [NMDeviceTun], reason=NM_DEVICE_STATE_REASON_NOW_UNMANAGED, cleanup_type=<optimized out>) at src/devices/nm-device.c:12006
 #13 _set_state_full (self=<> [NMDeviceTun], state=<optimized out>, reason=<optimized out>, quitting=<optimized out>) at src/devices/nm-device.c:12376
 #14 nm_device_unrealize (self=<> [NMDeviceTun], remove_resources=<optimized out>, error=<>) at src/devices/nm-device.c:3183
 #15 _platform_link_cb_idle (data=<>) at src/nm-manager.c:2359
 #16 g_idle_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at gmain.c:5439
 #17 g_main_context_dispatch (context=<>) at gmain.c:3152
 #18 g_main_context_dispatch (context=<>) at gmain.c:3767
 #19 g_main_context_iterate (context=<>, block=1, dispatch=1, self=<optimized out>) a

Fixes: 6b7e9f9b22

https://bugzilla.redhat.com/show_bug.cgi?id=1436978
(cherry picked from commit e73c15eec9)
2017-03-29 14:32:19 +02:00
Francesco Giudici
f7c72045b7 nmcli: fix nmcli parsing
Fixes the parsing for correct and incorrect commands.
e.g.:
nmcli connection down id <conn>
nmcli -t
...

Fixes: 16902a2be6
(cherry picked from commit ef0d0d08eb)
2017-03-29 14:25:48 +02:00
Francesco Giudici
9a38eb4c66 nmcli: fix nmcli connection edit
fix extra parameters check in nmc_parse_args()
e.g.: nmcli connection edit type ethernet

Fixes: 16902a2be6
(cherry picked from commit 0e73a06646)
2017-03-29 11:37:15 +02:00
Thomas Haller
6198c2a5a4 build: declare build dependencies requiring "nm-core-enum-types.h"
cat <<-EOF > /tmp/glib-mkenums
	#!/bin/bash
	sleep 15 && /usr/bin/glib-mkenums "\$@"
	EOF

	chmod +x /tmp/glib-mkenums

	(export PATH="/tmp:$PATH" &&
	 git clean -fdx &&
	 ./autogen.sh &&
	 make -j20 all-am)

(cherry picked from commit 68ab166f38)
2017-03-29 11:26:27 +02:00
Thomas Haller
7db4dd738d build: declare build dependency for ifcfg-rh tests
(cherry picked from commit 18663c0960)
2017-03-29 11:26:25 +02:00
Beniamino Galvani
12cc8d729d ifcfg-rh: also check BONDING_OPTS to determine the connection type
Connections with "TYPE=Ethernet" and "BONDING_OPTS=..." are regarded
by initscripts as bond masters. To maintain the best compatibility, do
the same.

https://bugzilla.redhat.com/show_bug.cgi?id=1434555
(cherry picked from commit e044071825)
2017-03-29 09:48:47 +02:00
Thomas Haller
c26229f91b libnm: fix showing UDEV properties for device
https://mail.gnome.org/archives/networkmanager-list/2017-March/msg00065.html

Fixes: c7ccdf5fc8
(cherry picked from commit c06308a10c)
2017-03-29 09:43:32 +02:00
Lubomir Rintel
aac581d4ec release: bump version to 1.7.90 (1.8-rc1) 2017-03-28 15:39:21 +02:00
Lubomir Rintel
092cf11226 NEWS: update for a release candidate 2017-03-28 15:39:21 +02:00
Lubomir Rintel
fa292a60aa merge: branch 'lr/cli-ask-rh1351263'
https://bugzilla.redhat.com/show_bug.cgi?id=1351263
2017-03-28 15:32:28 +02:00
Lubomir Rintel
cd2a5c5800 cli/connections: drop the redundant parsing of --show-secrets
This is no longer needed now that --show-secrets is a global option.
2017-03-28 15:32:06 +02:00
Lubomir Rintel
f909ef421b cli: check for global options before each agument
Turn --ask and --show-secrets into global options. This is for user
comfort, see: rh #1351263.
2017-03-28 15:32:05 +02:00
Lubomir Rintel
5a71bc8022 cli: add NmCli argument to next_arg()
Will be useful in next commit.
2017-03-28 15:32:05 +02:00
Lubomir Rintel
16902a2be6 cli: use next_arg() on argument boundary
Shift argc and argc manually between argument ant its value and use
next_arg() between arguments everywhere. Whill be useful to parse global
arguments.
2017-03-28 15:32:05 +02:00
Lubomir Rintel
29af644f9a merge: branch 'lr/device-conn'
https://bugzilla.gnome.org/show_bug.cgi?id=780448
2017-03-28 15:27:05 +02:00
Lubomir Rintel
6b7e9f9b22 device: penalize default route metrics for connectivity failures
This makes it possible to retain Internet connectivity when multiple devices
have a default route, but one with the link type of a higher priority can not
reach the Internet.
2017-03-28 15:26:47 +02:00
Lubomir Rintel
9d43869e47 core: make connectivity checking per-device
This moves tracking of connectivity to NMDevice and makes the NMManager
negotiate the best of known connectivity states of devices. The NMConnectivity
singleton handles its own configuration and scheduling of the permission
checks, but otherwise greatly simplifies it.

This will be useful to determine correct metrics for multiple default routes
depending on actual internet connectivity.

The per-device connection checks is not yet exposed on the D-Bus, since they
probably should be per-address-family as well.
2017-03-28 15:26:47 +02:00
Thomas Haller
4ec7dd987e libnm: add NMSettingUser
This only adds new API for a NMSettingUser. The setting class
is still entirely unused.

The point is getting the new API into 1.8.0 release of libnm.
It's easier to backport the use of the API to a stable branch
then backporting public API.

https://bugzilla.gnome.org/show_bug.cgi?id=776276
https://bugzilla.redhat.com/show_bug.cgi?id=1421429
2017-03-28 14:58:21 +02:00
Thomas Haller
1601d2caf6 libnm: document to allow omitting argument to get-options functions
These functions return static information, and don't require
a @setting argument. The list of options is interesting even
when having now setting instance at hand.

Document this to promise the user that passing %NULL is allowed.

It was allowed since when those functions were added.
2017-03-28 14:58:21 +02:00
Lubomir Rintel
a482fbe1b6 tests/general: allow error margin on comparing floats
Fixes test on Fedora/i686.
2017-03-28 13:52:27 +02:00
Lubomir Rintel
1f623bacbf tests/lldp: skip test if there's no Tun device 2017-03-28 13:52:26 +02:00
Thomas Haller
618dd28950 cli: fix completion of setting names for --fields (2) 2017-03-28 13:42:40 +02:00
Francesco Giudici
5526769950 merge: branch 'fg/nmcli_parsing_rh1391170'
https://bugzilla.redhat.com/show_bug.cgi?id=1391170
2017-03-28 10:55:48 +02:00
Francesco Giudici
8bfb9989cd nmcli: fix colorize_string() signature in order to return static char *
moved from: char *colorize_string (..., gboolean &dealloc)
to: const char *colorize_string (..., char **out_to_free)

No more needed to cast (char *) on a (const char *).

Fixed also get_value_to_print() which relies on colorize_string()
2017-03-28 10:55:00 +02:00
Francesco Giudici
f4d0417c8d nmcli: add -g[et-values] option as a '-m tab -t -f <arg>' shortcut
Quick and easy way to get clean and parsable field values.
2017-03-28 10:55:00 +02:00
Francesco Giudici
a62b72272f nmcli: fix missing CONNECTIONS section name from nmcli -f all -m tab dev show <dev>
When a full section is specified as the field parameter in terse tabular
mode, the section name should be printed followed by all the field values
belonging to that section separated by ':'. The NAME of section CONNECTIONS
was missing.

sample command:
$ nmcli -m tab -t -f CONNECTIONS device show ens3
previous output was:
/org/freedesktop/NetworkManager/Settings/{1}:5059XXX-XXXX.. | ens3-dhcp
now:
CONNECTIONS:/org/freedesktop/NetworkManager/Settings/{1}:5059XXX-XXXX.. | ens3-dhcp
2017-03-28 10:55:00 +02:00
Francesco Giudici
7d96f1f17d nmcli: don't enforce anymore the -f(ields) option in -t(erse) mode 2017-03-28 10:55:00 +02:00
Francesco Giudici
4fa2e1422d nmcli: (trivial) add comment 2017-03-28 10:55:00 +02:00
Francesco Giudici
7b589a0aef nmcli: refactor print_required_fields
When only the main header should be printed and output mode
is 'pretty' skip the construction of the string containing
field values as it will not be used.
2017-03-28 10:55:00 +02:00