From 8bd6d2a63e1acc6205ead7eb70cdf8beb95c0cb1 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 (cherry picked from commit 4eb3b5b9ddf3cf9ef453340022e461c6bb4e4dec) (cherry picked from commit bb802507e475921f747975cfaf91e292065b69dc) --- clients/cli/connections.c | 1 + 1 file changed, 1 insertion(+) diff --git a/clients/cli/connections.c b/clients/cli/connections.c index 2b9c4a25ad..68c380ba4b 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -2107,6 +2107,7 @@ do_connections_show (const NMCCommand *cmd, NmCli *nmc, int argc, const char *co 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;