summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-03-30 13:02:24 +0200
committerThomas Haller <thaller@redhat.com>2017-03-30 13:09:59 +0200
commit98ce4a8d5d59dc3daf28e98ba74f8bed24d69ef7 (patch)
treef8bc7e98f97143f76fb817604d5d6dfd61bef396
parente847d0f121feb29fb55b6d632e2b5b4e48916989 (diff)
downloadNetworkManager-98ce4a8d5d59dc3daf28e98ba74f8bed24d69ef7.tar.gz
cli: separate input and in-out arguments in print_data()
Don't pass down the entire NmCli instance. The output_data array is modified by print_data(), the rest is read-only input.
-rw-r--r--clients/cli/common.c8
-rw-r--r--clients/cli/connections.c10
-rw-r--r--clients/cli/devices.c33
-rw-r--r--clients/cli/general.c6
-rw-r--r--clients/cli/settings.c2
-rw-r--r--clients/cli/utils.c38
-rw-r--r--clients/cli/utils.h5
7 files changed, 51 insertions, 51 deletions
diff --git a/clients/cli/common.c b/clients/cli/common.c
index cef229257c..a60a954625 100644
--- a/clients/cli/common.c
+++ b/clients/cli/common.c
@@ -162,7 +162,7 @@ print_ip4_config (NMIPConfig *cfg4,
set_val_arr (arr, 6, wins_arr);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */
nmc_empty_output_fields (nmc);
@@ -246,7 +246,7 @@ print_ip6_config (NMIPConfig *cfg6,
set_val_arr (arr, 5, domain_arr);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */
nmc_empty_output_fields (nmc);
@@ -292,7 +292,7 @@ print_dhcp4_config (NMDhcpConfig *dhcp4,
set_val_arr (arr, 1, options_arr);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */
nmc_empty_output_fields (nmc);
@@ -340,7 +340,7 @@ print_dhcp6_config (NMDhcpConfig *dhcp6,
set_val_arr (arr, 1, options_arr);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */
nmc_empty_output_fields (nmc);
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index c81e317761..0ea4cd870e 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -795,7 +795,7 @@ nmc_connection_profile_details (NMConnection *connection, NmCli *nmc, gboolean s
nmc_fields_settings_names, FALSE, NULL, NULL);
nmc_fields_settings_names[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
- print_required_fields (nmc, nmc_fields_settings_names);
+ print_required_fields (&nmc->nmc_config, &nmc->print_fields, nmc_fields_settings_names);
/* Loop through the required settings and print them. */
for (i = 0; i < print_settings_array->len; i++) {
@@ -1222,7 +1222,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
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_fields_con_active_details_groups);
+ print_required_fields (&nmc->nmc_config, &nmc->print_fields, nmc_fields_con_active_details_groups);
/* Loop through the groups and print them. */
for (i = 0; i < print_groups->len; i++) {
@@ -1250,7 +1250,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
/* Fill in values */
fill_output_active_connection (acon, nmc, TRUE, NMC_OF_FLAG_SECTION_PREFIX);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
@@ -1349,7 +1349,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
set_val_arr (arr, 6, vpn_data_array);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
}
@@ -1831,7 +1831,7 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
fill_output_connection (sorted_cons->pdata[i], nmc, active_only);
g_ptr_array_free (sorted_cons, TRUE);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
} 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 9e7f615644..13e9b8befa 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -984,7 +984,7 @@ print_bond_bridge_info (NMDevice *device,
set_val_str (arr, 1, slaves_str->str);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_string_free (slaves_str, FALSE);
nmc_empty_output_fields (nmc);
@@ -1054,7 +1054,7 @@ print_team_info (NMDevice *device,
set_val_str (arr, 2, sanitize_team_config (nm_device_team_get_config (NM_DEVICE_TEAM (device))));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_string_free (slaves_str, FALSE);
nmc_empty_output_fields (nmc);
@@ -1110,7 +1110,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
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_fields_dev_show_general);
+ print_required_fields (&nmc->nmc_config, &nmc->print_fields, nmc_fields_dev_show_general);
/* Loop through the required sections and print them. */
for (k = 0; k < sections_array->len; k++) {
@@ -1171,7 +1171,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_strc (arr, 24, nmc_device_metered_to_string (nm_device_get_metered (device)));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
@@ -1203,7 +1203,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_strc (arr, 3, (caps & NM_DEVICE_CAP_IS_SOFTWARE) ? _("yes") : _("no"));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
@@ -1241,7 +1241,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
((wcaps & NM_WIFI_DEVICE_CAP_FREQ_5GHZ) ? _("yes") : _("no")));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
@@ -1269,7 +1269,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info);
g_ptr_array_free (aps, FALSE);
g_free (info);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
} else if (NM_IS_DEVICE_ETHERNET (device)) {
@@ -1289,7 +1289,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_arrc (arr, 2, ((const char **) nm_device_ethernet_get_s390_subchannels (NM_DEVICE_ETHERNET (device))));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
}
@@ -1353,7 +1353,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_str (arr, 2, vlan_id_str);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
@@ -1373,7 +1373,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_str (arr, 1, bluetooth_caps_to_string (nm_device_bt_get_capabilities (NM_DEVICE_BT (device))));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE;
}
}
@@ -1422,7 +1422,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_arr (arr, 2, (ac_arr));
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_string_free (ac_paths_str, FALSE);
was_output = TRUE;
@@ -1530,8 +1530,7 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
for (i = 0; devices[i]; i++)
fill_output_device_status (devices[i], nmc);
- /* Now print all data */
- print_data (nmc);
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_free (devices);
@@ -2496,7 +2495,7 @@ show_access_point_info (NMDevice *device, NmCli *nmc)
g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info);
g_ptr_array_free (aps, FALSE);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
nmc_empty_output_fields (nmc);
g_free (info);
}
@@ -2726,7 +2725,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
fill_output_access_point (ap, info);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_free (info);
} else {
show_access_point_info (device, nmc);
@@ -2786,7 +2785,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
}
if (empty_line)
g_print ("\n"); /* Empty line between devices' APs */
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
nmc_empty_output_fields (nmc);
empty_line = TRUE;
}
@@ -3734,7 +3733,7 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, char *fields_str, int *coun
g_ptr_array_add (nmc->output_data, arr);
}
- print_data (nmc);
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
nmc_empty_output_fields (nmc);
return neighbors->len;
diff --git a/clients/cli/general.c b/clients/cli/general.c
index 3ffad8416c..9824dfd188 100644
--- a/clients/cli/general.c
+++ b/clients/cli/general.c
@@ -381,7 +381,7 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
return TRUE;
}
@@ -504,7 +504,7 @@ print_permissions (void *user_data)
set_val_strc (arr, 1, permission_result_to_string (perm_result));
g_ptr_array_add (nmc->output_data, arr);
}
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
quit ();
return G_SOURCE_REMOVE;
@@ -617,7 +617,7 @@ show_general_logging (NmCli *nmc)
set_val_str (arr, 1, domains);
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
return TRUE;
}
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 87bbff0819..2a929f6662 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -918,7 +918,7 @@ setting_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean
g_ptr_array_add (nmc->output_data, arr);
- print_data (nmc); /* Print all data */
+ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
return TRUE;
}
diff --git a/clients/cli/utils.c b/clients/cli/utils.c
index fc427bbdfa..b93fa10e95 100644
--- a/clients/cli/utils.c
+++ b/clients/cli/utils.c
@@ -863,7 +863,7 @@ get_value_to_print (NmcColorOption color_option,
* of 'field_values' array.
*/
void
-print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
+print_required_fields (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, const NmcOutputField field_values[])
{
GString *str;
int width1, width2;
@@ -872,11 +872,11 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
char *indent_str;
const char *not_set_str = "--";
int i;
- const NmcPrintFields fields = nmc->print_fields;
- gboolean multiline = nmc->nmc_config.multiline_output;
- gboolean terse = (nmc->nmc_config.print_output == NMC_PRINT_TERSE);
- gboolean pretty = (nmc->nmc_config.print_output == NMC_PRINT_PRETTY);
- gboolean escape = nmc->nmc_config.escape_values;
+ const NmcPrintFields fields = *print_fields;
+ gboolean multiline = nmc_config->multiline_output;
+ gboolean terse = (nmc_config->print_output == NMC_PRINT_TERSE);
+ gboolean pretty = (nmc_config->print_output == NMC_PRINT_PRETTY);
+ gboolean escape = nmc_config->escape_values;
gboolean main_header_add = field_values[0].flags & NMC_OF_FLAG_MAIN_HEADER_ADD;
gboolean main_header_only = field_values[0].flags & NMC_OF_FLAG_MAIN_HEADER_ONLY;
gboolean field_names = field_values[0].flags & NMC_OF_FLAG_FIELD_NAMES;
@@ -938,7 +938,7 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
for (p = (const char **) field_values[idx].value, j = 1; p && *p; p++, j++) {
val = *p ? *p : not_set_str;
- print_val = colorize_string (nmc->nmc_config.use_colors, field_values[idx].color, field_values[idx].color_fmt,
+ print_val = colorize_string (nmc_config->use_colors, field_values[idx].color, field_values[idx].color_fmt,
val, &val_to_free);
tmp = g_strdup_printf ("%s%s%s[%d]:",
section_prefix ? (const char*) field_values[0].value : "",
@@ -958,7 +958,7 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
gs_free char *val_to_free = NULL;
val = val && *val ? val : not_set_str;
- print_val = colorize_string (nmc->nmc_config.use_colors, field_values[idx].color, field_values[idx].color_fmt,
+ print_val = colorize_string (nmc_config->use_colors, field_values[idx].color, field_values[idx].color_fmt,
val, &val_to_free);
tmp = g_strdup_printf ("%s%s%s:",
section_prefix ? hdr_name : "",
@@ -986,7 +986,7 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
for (i = 0; i < fields.indices->len; i++) {
int idx = g_array_index (fields.indices, int, i);
gs_free char *val_to_free = NULL;
- const char *value = get_value_to_print (nmc->nmc_config.use_colors, (NmcOutputField *) field_values+idx, field_names,
+ const char *value = get_value_to_print (nmc_config->use_colors, (NmcOutputField *) field_values+idx, field_names,
not_set_str, &val_to_free);
if (terse) {
@@ -1041,18 +1041,18 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
* print_required_fields() function.
*/
void
-print_data (NmCli *nmc)
+print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPtrArray *output_data)
{
int i, j;
size_t len;
NmcOutputField *row;
int num_fields = 0;
- if (!nmc->output_data || nmc->output_data->len < 1)
+ if (!output_data || output_data->len < 1)
return;
/* How many fields? */
- row = g_ptr_array_index (nmc->output_data, 0);
+ row = g_ptr_array_index (output_data, 0);
while (row->name) {
num_fields++;
row++;
@@ -1061,27 +1061,27 @@ print_data (NmCli *nmc)
/* Find out maximal string lengths */
for (i = 0; i < num_fields; i++) {
size_t max_width = 0;
- for (j = 0; j < nmc->output_data->len; j++) {
+ for (j = 0; j < output_data->len; j++) {
gboolean field_names;
gs_free char * val_to_free = NULL;
const char *value;
- row = g_ptr_array_index (nmc->output_data, j);
+ row = g_ptr_array_index (output_data, j);
field_names = row[0].flags & NMC_OF_FLAG_FIELD_NAMES;
value = get_value_to_print (NMC_USE_COLOR_NO, row+i, field_names, "--", &val_to_free);
len = nmc_string_screen_width (value, NULL);
max_width = len > max_width ? len : max_width;
}
- for (j = 0; j < nmc->output_data->len; j++) {
- row = g_ptr_array_index (nmc->output_data, j);
+ for (j = 0; j < output_data->len; j++) {
+ row = g_ptr_array_index (output_data, j);
row[i].width = max_width + 1;
}
}
/* Now we can print the data. */
- for (i = 0; i < nmc->output_data->len; i++) {
- row = g_ptr_array_index (nmc->output_data, i);
- print_required_fields (nmc, row);
+ for (i = 0; i < output_data->len; i++) {
+ row = g_ptr_array_index (output_data, i);
+ print_required_fields (nmc_config, print_fields, row);
}
}
diff --git a/clients/cli/utils.h b/clients/cli/utils.h
index f9056352b5..7a8599fbfc 100644
--- a/clients/cli/utils.h
+++ b/clients/cli/utils.h
@@ -68,7 +68,8 @@ GArray *parse_output_fields (const char *fields_str,
char *nmc_get_allowed_fields (const NmcOutputField fields_array[], int group_idx);
NmcOutputField *nmc_dup_fields_array (NmcOutputField fields[], size_t size, guint32 flags);
void nmc_empty_output_fields (NmCli *nmc);
-void print_required_fields (NmCli *nmc, const NmcOutputField field_values[]);
-void print_data (NmCli *nmc);
+void print_required_fields (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, const NmcOutputField field_values[]);
+void print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPtrArray *output_data);
+
#endif /* NMC_UTILS_H */