summaryrefslogtreecommitdiff
path: root/clients
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-03-31 13:21:47 +0200
committerThomas Haller <thaller@redhat.com>2017-04-05 16:53:06 +0200
commitaae721d0dfee94df777b527be3903121164dab34 (patch)
tree20087fefd45161debbe87a628d757252a6ae1d35 /clients
parentf973f0841a52f5dce0d0eebf99fcba911c83f9c5 (diff)
downloadNetworkManager-aae721d0dfee94df777b527be3903121164dab34.tar.gz
cli: pass arguments for print_data separately of NmcOutputData
Don't pass on large structs of input arguments. It only convolutes which arguments are passed, and where they come from.
Diffstat (limited to 'clients')
-rw-r--r--clients/cli/common.c16
-rw-r--r--clients/cli/connections.c50
-rw-r--r--clients/cli/devices.c103
-rw-r--r--clients/cli/general.c22
-rw-r--r--clients/cli/nmcli.h4
-rw-r--r--clients/cli/settings.c4
-rw-r--r--clients/cli/utils.c15
-rw-r--r--clients/cli/utils.h6
8 files changed, 110 insertions, 110 deletions
diff --git a/clients/cli/common.c b/clients/cli/common.c
index e2e6dc1dd3..9be3c9525d 100644
--- a/clients/cli/common.c
+++ b/clients/cli/common.c
@@ -103,7 +103,7 @@ print_ip4_config (NMIPConfig *cfg4,
tmpl = nmc_fields_ip4_config;
tmpl_len = sizeof (nmc_fields_ip4_config);
- out.indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_IP4_CONFIG_ALL,
+ out_indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_IP4_CONFIG_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -164,7 +164,7 @@ print_ip4_config (NMIPConfig *cfg4,
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (nmc_config, &out);
+ print_data (nmc_config, out_indices, NULL, 0, &out);
return TRUE;
}
@@ -190,7 +190,7 @@ print_ip6_config (NMIPConfig *cfg6,
tmpl = nmc_fields_ip6_config;
tmpl_len = sizeof (nmc_fields_ip6_config);
- out.indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_IP6_CONFIG_ALL,
+ out_indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_IP6_CONFIG_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -247,7 +247,7 @@ print_ip6_config (NMIPConfig *cfg6,
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (nmc_config, &out);
+ print_data (nmc_config, out_indices, NULL, 0, &out);
return TRUE;
}
@@ -275,7 +275,7 @@ print_dhcp4_config (NMDhcpConfig *dhcp4,
tmpl = nmc_fields_dhcp4_config;
tmpl_len = sizeof (nmc_fields_dhcp4_config);
- out.indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DHCP4_CONFIG_ALL,
+ out_indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DHCP4_CONFIG_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -292,7 +292,7 @@ print_dhcp4_config (NMDhcpConfig *dhcp4,
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (nmc_config, &out);
+ print_data (nmc_config, out_indices, NULL, 0, &out);
return TRUE;
}
@@ -322,7 +322,7 @@ print_dhcp6_config (NMDhcpConfig *dhcp6,
tmpl = nmc_fields_dhcp6_config;
tmpl_len = sizeof (nmc_fields_dhcp6_config);
- out.indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DHCP6_CONFIG_ALL,
+ out_indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DHCP6_CONFIG_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -339,7 +339,7 @@ print_dhcp6_config (NMDhcpConfig *dhcp6,
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (nmc_config, &out);
+ print_data (nmc_config, out_indices, NULL, 0, &out);
return TRUE;
}
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 6284a9d3c5..db146a8900 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -629,20 +629,13 @@ quit (void)
g_main_loop_quit (loop); /* quit main loop */
}
-static const char *
+static char *
construct_header_name (const char *base, const char *spec)
{
- static char header_name[128];
-
if (spec == NULL)
- return base;
-
- g_strlcpy (header_name, base, sizeof (header_name));
- g_strlcat (header_name, " (", sizeof (header_name));
- g_strlcat (header_name, spec, sizeof (header_name));
- g_strlcat (header_name, ")", sizeof (header_name));
+ return g_strdup (base);
- return header_name;
+ return g_strdup_printf ("%s (%s)", base, spec);
}
static const char *
@@ -792,15 +785,16 @@ nmc_connection_profile_details (NMConnection *connection, NmCli *nmc, gboolean s
/* Main header */
{
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free char *header_name = NULL;
- out.header_name = construct_header_name (base_hdr, nm_connection_get_id (connection));
- out.indices = parse_output_fields (NMC_FIELDS_SETTINGS_NAMES_ALL,
+ header_name = construct_header_name (base_hdr, nm_connection_get_id (connection));
+ out_indices = parse_output_fields (NMC_FIELDS_SETTINGS_NAMES_ALL,
nmc_fields_settings_names, FALSE, NULL, NULL);
nmc_fields_settings_names[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
print_required_fields (&nmc->nmc_config, NMC_OF_FLAG_MAIN_HEADER_ONLY,
- out.indices, out.header_name,
- out.indent, nmc_fields_settings_names);
+ out_indices, header_name,
+ 0, nmc_fields_settings_names);
}
/* Loop through the required settings and print them. */
@@ -1221,15 +1215,16 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
/* Main header */
{
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free char *header_name = NULL;
- out.header_name = construct_header_name (base_hdr, nm_active_connection_get_uuid (acon));
- out.indices = parse_output_fields (NMC_FIELDS_CON_ACTIVE_DETAILS_ALL,
- nmc_fields_con_active_details_groups, FALSE, NULL, NULL);
+ header_name = construct_header_name (base_hdr, nm_active_connection_get_uuid (acon));
+ out_indices = parse_output_fields (NMC_FIELDS_CON_ACTIVE_DETAILS_ALL,
+ nmc_fields_con_active_details_groups, FALSE, NULL, NULL);
nmc_fields_con_active_details_groups[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
print_required_fields (&nmc->nmc_config, NMC_OF_FLAG_MAIN_HEADER_ONLY,
- out.indices, out.header_name,
- out.indent, nmc_fields_con_active_details_groups);
+ out_indices, header_name,
+ 0, nmc_fields_con_active_details_groups);
}
/* Loop through the groups and print them. */
@@ -1249,7 +1244,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
/* Add field names */
tmpl = nmc_fields_con_active_details_general;
tmpl_len = sizeof (nmc_fields_con_active_details_general);
- out.indices = parse_output_fields (group_fld ? group_fld : NMC_FIELDS_CON_ACTIVE_DETAILS_GENERAL_ALL,
+ out_indices = parse_output_fields (group_fld ? group_fld : NMC_FIELDS_CON_ACTIVE_DETAILS_GENERAL_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1258,7 +1253,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
fill_output_active_connection (acon, out.output_data, TRUE, NMC_OF_FLAG_SECTION_PREFIX);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
@@ -1320,7 +1315,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
tmpl = nmc_fields_con_active_details_vpn;
tmpl_len = sizeof (nmc_fields_con_active_details_vpn);
- out.indices = parse_output_fields (group_fld ? group_fld : NMC_FIELDS_CON_ACTIVE_DETAILS_VPN_ALL,
+ out_indices = parse_output_fields (group_fld ? group_fld : NMC_FIELDS_CON_ACTIVE_DETAILS_VPN_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1359,7 +1354,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
}
@@ -1814,13 +1809,11 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
tmpl = nmc_fields_con_show;
tmpl_len = sizeof (nmc_fields_con_show);
- out.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &err);
+ out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &err);
if (err)
goto finish;
/* Add headers */
- out.header_name = active_only ? _("NetworkManager active profiles")
- : _("NetworkManager connection profiles");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1839,7 +1832,10 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
g_ptr_array_free (sorted_cons, TRUE);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices,
+ active_only ? _("NetworkManager active profiles")
+ : _("NetworkManager connection profiles"),
+ 0, &out);
} else {
gboolean new_line = FALSE;
gboolean without_fields = (nmc->required_fields == NULL);
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index c934c51cec..cd0e326d3b 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -913,20 +913,13 @@ bluetooth_caps_to_string (NMBluetoothCapabilities caps)
return ret_str;
}
-static const char *
+static char *
construct_header_name (const char *base, const char *spec)
{
- static char header_name[128];
-
if (spec == NULL)
- return base;
+ return g_strdup (base);
- g_strlcpy (header_name, base, sizeof (header_name));
- g_strlcat (header_name, " (", sizeof (header_name));
- g_strlcat (header_name, spec, sizeof (header_name));
- g_strlcat (header_name, ")", sizeof (header_name));
-
- return header_name;
+ return g_strdup_printf ("%s (%s)", base, spec);
}
static const char *
@@ -976,7 +969,7 @@ print_bond_bridge_info (NMDevice *device,
tmpl = nmc_fields_dev_show_master_prop;
tmpl_len = sizeof (nmc_fields_dev_show_master_prop);
- out.indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DEV_SHOW_MASTER_PROP_ALL,
+ out_indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DEV_SHOW_MASTER_PROP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -987,7 +980,7 @@ print_bond_bridge_info (NMDevice *device,
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
g_string_free (slaves_str, FALSE);
@@ -1046,7 +1039,7 @@ print_team_info (NMDevice *device,
tmpl = nmc_fields_dev_show_team_prop;
tmpl_len = sizeof (nmc_fields_dev_show_team_prop);
- out.indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DEV_SHOW_TEAM_PROP_ALL,
+ out_indices = parse_output_fields (one_field ? one_field : NMC_FIELDS_DEV_SHOW_TEAM_PROP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1058,7 +1051,7 @@ print_team_info (NMDevice *device,
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
g_string_free (slaves_str, FALSE);
@@ -1106,18 +1099,19 @@ show_device_info (NMDevice *device, NmCli *nmc)
{
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free char *header_name = NULL;
/* Main header (pretty only) */
- out.header_name = construct_header_name (base_hdr, nm_device_get_iface (device));
+ header_name = construct_header_name (base_hdr, nm_device_get_iface (device));
/* Lazy way to retrieve sorted array from 0 to the number of dev fields */
- out.indices = parse_output_fields (NMC_FIELDS_DEV_SHOW_GENERAL_ALL,
+ out_indices = parse_output_fields (NMC_FIELDS_DEV_SHOW_GENERAL_ALL,
nmc_fields_dev_show_general, FALSE, NULL, NULL);
nmc_fields_dev_show_general[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
print_required_fields (&nmc->nmc_config, NMC_OF_FLAG_MAIN_HEADER_ONLY,
- out.indices, out.header_name,
- out.indent, nmc_fields_dev_show_general);
+ out_indices, header_name,
+ 0, nmc_fields_dev_show_general);
}
/* Loop through the required sections and print them. */
@@ -1139,7 +1133,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_general;
tmpl_len = sizeof (nmc_fields_dev_show_general);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_GENERAL_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_GENERAL_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1179,7 +1173,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
@@ -1189,7 +1183,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_cap;
tmpl_len = sizeof (nmc_fields_dev_show_cap);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_CAP_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_CAP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1214,7 +1208,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
@@ -1233,7 +1227,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_wifi_prop;
tmpl_len = sizeof (nmc_fields_dev_show_wifi_prop);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_WIFI_PROP_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_WIFI_PROP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1255,7 +1249,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
@@ -1270,7 +1264,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_wifi_list;
tmpl_len = sizeof (nmc_fields_dev_wifi_list);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_WIFI_LIST_FOR_DEV_LIST,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_WIFI_LIST_FOR_DEV_LIST,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1291,7 +1285,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
}
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
} else if (NM_IS_DEVICE_ETHERNET (device)) {
@@ -1301,7 +1295,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_wired_prop;
tmpl_len = sizeof (nmc_fields_dev_show_wired_prop);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_WIRED_PROP_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_WIRED_PROP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1314,7 +1308,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
}
@@ -1368,7 +1362,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_vlan_prop;
tmpl_len = sizeof (nmc_fields_dev_show_vlan_prop);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_VLAN_PROP_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_VLAN_PROP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1380,7 +1374,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
@@ -1392,7 +1386,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_bluetooth;
tmpl_len = sizeof (nmc_fields_dev_show_bluetooth);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_BLUETOOTH_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_BLUETOOTH_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1403,7 +1397,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
was_output = TRUE;
}
}
@@ -1418,7 +1412,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
tmpl = nmc_fields_dev_show_connections;
tmpl_len = sizeof (nmc_fields_dev_show_connections);
- out.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_CONNECTIONS_ALL,
+ out_indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_CONNECTIONS_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1454,7 +1448,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
g_string_free (ac_paths_str, FALSE);
was_output = TRUE;
@@ -1548,7 +1542,7 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
tmpl = nmc_fields_dev_status;
tmpl_len = sizeof (nmc_fields_dev_status);
- out.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
+ out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: 'device status': %s"), error->message);
@@ -1557,7 +1551,6 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
}
/* Add headers */
- out.header_name = _("Status of devices");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1566,7 +1559,7 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
fill_output_device_status (devices[i], out.output_data);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, _("Status of devices"), 0, &out);
g_free (devices);
@@ -2542,7 +2535,6 @@ show_access_point_info (NMDevice *device, NmCli *nmc, NmcOutputData *out)
}
print_data_prepare_width (out->output_data);
- print_data (&nmc->nmc_config, out);
}
/*
@@ -2676,6 +2668,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
size_t tmpl_len;
const char *base_hdr = _("Wi-Fi scan list");
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free char *header_name = NULL;
devices = nmc_get_devices_sorted (nmc->client);
@@ -2720,7 +2713,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
tmpl = nmc_fields_dev_wifi_list;
tmpl_len = sizeof (nmc_fields_dev_wifi_list);
- out.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
+ out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: 'device wifi': %s"), error->message);
@@ -2732,13 +2725,14 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
return nmc->return_value;
if (ifname) {
+
device = find_wifi_device_by_iface (devices, ifname, NULL);
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
return NMC_RESULT_ERROR_NOT_FOUND;
}
/* Main header name */
- out.header_name = construct_header_name (base_hdr, ifname);
+ header_name = construct_header_name (base_hdr, ifname);
if (NM_IS_DEVICE_WIFI (device)) {
if (bssid_user) {
@@ -2773,10 +2767,11 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
fill_output_access_point (ap, info);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, header_name, 0, &out);
g_free (info);
} else {
show_access_point_info (device, nmc, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
}
} else {
if ( nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC
@@ -2800,13 +2795,14 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
for (i = 0; devices[i]; i++) {
NMDevice *dev = devices[i];
NMC_OUTPUT_DATA_DEFINE_SCOPED (out2);
+ gs_free char *header_name2 = NULL;
if (!NM_IS_DEVICE_WIFI (dev))
continue;
/* Main header name */
- out2.header_name = construct_header_name (base_hdr, nm_device_get_iface (dev));
- out2.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
+ header_name2 = construct_header_name (base_hdr, nm_device_get_iface (dev));
+ out2_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out2.output_data, arr);
@@ -2835,7 +2831,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
if (empty_line)
g_print ("\n"); /* Empty line between devices' APs */
print_data_prepare_width (out2.output_data);
- print_data (&nmc->nmc_config, &out2);
+ print_data (&nmc->nmc_config, out2_indices, header_name2, 0, &out2);
empty_line = TRUE;
}
if (!ap) {
@@ -2847,16 +2843,18 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
for (i = 0; devices[i]; i++) {
NMDevice *dev = devices[i];
NMC_OUTPUT_DATA_DEFINE_SCOPED (out2);
+ gs_free char *header_name2 = NULL;
/* Main header name */
- out2.header_name = construct_header_name (base_hdr,
- nm_device_get_iface (dev));
- out2.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
+ header_name2 = construct_header_name (base_hdr,
+ nm_device_get_iface (dev));
+ out2_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
if (NM_IS_DEVICE_WIFI (dev)) {
if (empty_line)
g_print ("\n"); /* Empty line between devices' APs */
show_access_point_info (dev, nmc, &out2);
+ print_data (&nmc->nmc_config, out2_indices, header_name2, 0, &out2);
empty_line = TRUE;
}
}
@@ -3718,6 +3716,7 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, char *fields_str, int *coun
const char *str;
int i;
NMC_OUTPUT_DATA_DEFINE_SCOPED (out);
+ gs_free char *header_name = NULL;
neighbors = nm_device_get_lldp_neighbors (device);
@@ -3728,9 +3727,9 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, char *fields_str, int *coun
tmpl_len = sizeof (nmc_fields_dev_lldp_list);
/* Main header name */
- out.header_name = construct_header_name (_("Device LLDP neighbors"),
- nm_device_get_iface (device));
- out.indices = parse_output_fields (fields_str, nmc_fields_dev_lldp_list, FALSE, NULL, NULL);
+ header_name = construct_header_name (_("Device LLDP neighbors"),
+ nm_device_get_iface (device));
+ out_indices = parse_output_fields (fields_str, nmc_fields_dev_lldp_list, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -3789,7 +3788,7 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, char *fields_str, int *coun
}
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, header_name, 0, &out);
return neighbors->len;
}
@@ -3836,7 +3835,7 @@ do_device_lldp_list (NmCli *nmc, int argc, char **argv)
else
fields_str = nmc->required_fields;
- out.indices = parse_output_fields (fields_str, nmc_fields_dev_lldp_list, FALSE, NULL, &error);
+ out_indices = parse_output_fields (fields_str, nmc_fields_dev_lldp_list, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: 'device lldp list': %s"), error->message);
diff --git a/clients/cli/general.c b/clients/cli/general.c
index 7c6752a279..732476d25d 100644
--- a/clients/cli/general.c
+++ b/clients/cli/general.c
@@ -336,7 +336,7 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
tmpl = nmc_fields_nm_status;
tmpl_len = sizeof (nmc_fields_nm_status);
- out.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
+ out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: only these fields are allowed: %s"), fields_all);
@@ -354,7 +354,6 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (nmc->client);
wwan_enabled = nm_client_wwan_get_enabled (nmc->client);
- out.header_name = pretty_header_name ?: _("NetworkManager status");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -383,7 +382,9 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices,
+ pretty_header_name ?: _("NetworkManager status"),
+ 0, &out);
return TRUE;
}
@@ -486,7 +487,7 @@ print_permissions (void *user_data)
tmpl = nmc_fields_nm_permissions;
tmpl_len = sizeof (nmc_fields_nm_permissions);
- out.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
+ out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: 'general permissions': %s"), error->message);
@@ -495,7 +496,6 @@ print_permissions (void *user_data)
return FALSE;
}
- out.header_name = _("NetworkManager permissions");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -509,7 +509,10 @@ print_permissions (void *user_data)
g_ptr_array_add (out.output_data, arr);
}
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config,
+ out_indices,
+ _("NetworkManager permissions"),
+ 0, &out);
quit ();
return G_SOURCE_REMOVE;
@@ -598,7 +601,7 @@ show_general_logging (NmCli *nmc)
tmpl = nmc_fields_nm_logging;
tmpl_len = sizeof (nmc_fields_nm_logging);
- out.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
+ out_indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: 'general logging': %s"), error->message);
@@ -615,7 +618,6 @@ show_general_logging (NmCli *nmc)
return FALSE;
}
- out.header_name = _("NetworkManager logging");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -625,7 +627,9 @@ show_general_logging (NmCli *nmc)
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices,
+ _("NetworkManager logging"),
+ 0, &out);
return TRUE;
}
diff --git a/clients/cli/nmcli.h b/clients/cli/nmcli.h
index 373019263e..a06e3d8eaf 100644
--- a/clients/cli/nmcli.h
+++ b/clients/cli/nmcli.h
@@ -144,9 +144,6 @@ typedef struct _NmcConfig {
typedef struct _NmcOutputData {
GPtrArray *output_data; /* GPtrArray of arrays of NmcOutputField structs - accumulates data for output */
- GArray *indices; /* Array of field indices to the array of allowed fields */
- const char *header_name; /* Name of the output */
- int indent; /* Indent by this number of spaces */
} NmcOutputData;
/* NmCli - main structure */
@@ -193,6 +190,7 @@ void nmc_exit (void);
void nmc_empty_output_fields (NmcOutputData *output_data);
#define NMC_OUTPUT_DATA_DEFINE_SCOPED(out) \
+ gs_unref_array GArray *out##_indices = NULL; \
nm_auto (nmc_empty_output_fields) NmcOutputData out = { \
.output_data = g_ptr_array_new_full (20, g_free), \
}
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 2412492152..29fe763874 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -1021,7 +1021,7 @@ setting_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean
tmpl_len = sizeof (NmcOutputField) * (setting_info->properties_num + 1);
tmpl = g_memdup (_get_nmc_output_fields (setting_info), tmpl_len);
- out.indices = parse_output_fields (one_prop ?: (s_all = _all_properties (setting_info)),
+ out_indices = parse_output_fields (one_prop ?: (s_all = _all_properties (setting_info)),
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (out.output_data, arr);
@@ -1043,7 +1043,7 @@ setting_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean
g_ptr_array_add (out.output_data, arr);
print_data_prepare_width (out.output_data);
- print_data (&nmc->nmc_config, &out);
+ print_data (&nmc->nmc_config, out_indices, NULL, 0, &out);
return TRUE;
}
diff --git a/clients/cli/utils.c b/clients/cli/utils.c
index 180e5c3a33..68cf81c01a 100644
--- a/clients/cli/utils.c
+++ b/clients/cli/utils.c
@@ -840,11 +840,6 @@ nmc_empty_output_fields (NmcOutputData *output_data)
/* Empty output_data array */
if (output_data->output_data->len > 0)
g_ptr_array_remove_range (output_data->output_data, 0, output_data->output_data->len);
-
- if (output_data->indices) {
- g_array_free (output_data->indices, TRUE);
- output_data->indices = NULL;
- }
}
static const char *
@@ -1123,7 +1118,11 @@ print_data_prepare_width (GPtrArray *output_data)
}
void
-print_data (const NmcConfig *nmc_config, const NmcOutputData *out)
+print_data (const NmcConfig *nmc_config,
+ const GArray *indices,
+ const char *header_name,
+ int indent,
+ const NmcOutputData *out)
{
guint i;
@@ -1131,8 +1130,8 @@ print_data (const NmcConfig *nmc_config, const NmcOutputData *out)
const NmcOutputField *field_values = g_ptr_array_index (out->output_data, i);
print_required_fields (nmc_config, field_values[0].flags,
- out->indices, out->header_name,
- out->indent, field_values);
+ indices, header_name,
+ indent, field_values);
}
}
diff --git a/clients/cli/utils.h b/clients/cli/utils.h
index 1eef0513e5..c5ef0713ee 100644
--- a/clients/cli/utils.h
+++ b/clients/cli/utils.h
@@ -75,6 +75,10 @@ void print_required_fields (const NmcConfig *nmc_config,
int indent,
const NmcOutputField *field_values);
void print_data_prepare_width (GPtrArray *output_data);
-void print_data (const NmcConfig *nmc_config, const NmcOutputData *out);
+void print_data (const NmcConfig *nmc_config,
+ const GArray *indices,
+ const char *header_name,
+ int indent,
+ const NmcOutputData *out);
#endif /* NMC_UTILS_H */