From 4eb3b5b9ddf3cf9ef453340022e461c6bb4e4dec Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 8 Oct 2020 17:41:19 +0200 Subject: [PATCH] cli: fix showing active state for `nmcli con show` with fields With "connection.multi-connect", a profile can be activated multiple times on a device with `nmcli connection show`. Also, a profile may be in the process of deactivating on one device, while activating on another one. So, in general it's possible that `nmcli connection show` lists the same profile on multiple lines (reflecting their multiple activation states). If the user requests no fields that are part of the activation state, then the active connections are ignored. For example with `nmcli -f UUID,NAME connection show`. In that case, each profile is listed only once. On the other hand, with `nmcli -g UUID,NAME,DEVICE connection show` the user again requested also to see the activation state, and a profile can appear multiple times. To handle that, we need to consider which fields were requested. There was a bug where the "ACTIVE" field was not treated as part of the activation state. That results in `nmcli -f UUID,NAME,ACTIVE connection show` always returning "no". Fix that. Fixes: a1b25a47b08c ('cli: rework printing of `nmcli connection` for multiple active connections') https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/547 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/642 --- clients/cli/connections.c | 1 + 1 file changed, 1 insertion(+) diff --git a/clients/cli/connections.c b/clients/cli/connections.c index 1fb87bce50..3714485a16 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -2180,6 +2180,7 @@ do_connections_show(const NMCCommand *cmd, NmCli *nmc, int argc, const char *con if (NM_IN_SET(info->info_type, NMC_GENERIC_INFO_TYPE_CON_SHOW_DEVICE, NMC_GENERIC_INFO_TYPE_CON_SHOW_STATE, + NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE, NMC_GENERIC_INFO_TYPE_CON_SHOW_ACTIVE_PATH)) { show_active_fields = TRUE; break;