mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-04 04:50:30 +01:00
cli: make APInfo parameter to fill_output_access_point() const
It's helpful to control when data/state gets mutated. In particular, when passing on a pointer via several hops. C can help with that at compile time via "const". But the "index" field of APInfo is actually mutable, as it counts the lines. So most of the data is immutable, but the index. Make APInfo const. But to do that, the mutable part must be moved to a separate place. Also, start with the counter initialized to zero instead of one. It is just nicer.
This commit is contained in:
parent
dd42af636a
commit
33584f2134
1 changed files with 27 additions and 20 deletions
|
|
@ -1250,18 +1250,16 @@ sort_access_points(const GPtrArray *aps)
|
|||
|
||||
typedef struct {
|
||||
NmCli *nmc;
|
||||
int index;
|
||||
guint32 output_flags;
|
||||
NMAccessPoint *active_ap;
|
||||
const char *device;
|
||||
GPtrArray *output_data;
|
||||
int *p_index;
|
||||
guint32 output_flags;
|
||||
} APInfo;
|
||||
|
||||
static void
|
||||
fill_output_access_point(gpointer data, gpointer user_data)
|
||||
fill_output_access_point(NMAccessPoint *ap, const APInfo *info)
|
||||
{
|
||||
NMAccessPoint *ap = NM_ACCESS_POINT(data);
|
||||
APInfo *info = user_data;
|
||||
NmcOutputField *arr;
|
||||
gboolean active;
|
||||
NM80211ApFlags flags;
|
||||
|
|
@ -1344,7 +1342,7 @@ fill_output_access_point(gpointer data, gpointer user_data)
|
|||
arr = nmc_dup_fields_array((const NMMetaAbstractInfo *const *) nmc_fields_dev_wifi_list,
|
||||
info->output_flags);
|
||||
|
||||
ap_name = g_strdup_printf("AP[%d]", info->index++); /* AP */
|
||||
ap_name = g_strdup_printf("AP[%d]", ++(*info->p_index)); /* AP */
|
||||
set_val_str(arr, 0, ap_name);
|
||||
set_val_str(arr, 1, ssid_str);
|
||||
set_val_str(arr, 2, ssid_hex_str);
|
||||
|
|
@ -1377,6 +1375,12 @@ fill_output_access_point(gpointer data, gpointer user_data)
|
|||
g_ptr_array_add(info->output_data, arr);
|
||||
}
|
||||
|
||||
static void
|
||||
fill_output_access_point_void(gpointer data, gpointer user_data)
|
||||
{
|
||||
fill_output_access_point(data, user_data);
|
||||
}
|
||||
|
||||
static char *
|
||||
bluetooth_caps_to_string(NMBluetoothCapabilities caps)
|
||||
{
|
||||
|
|
@ -1695,10 +1699,11 @@ show_device_info(NMDevice *device, NmCli *nmc)
|
|||
g_ptr_array_add(out.output_data, arr);
|
||||
|
||||
{
|
||||
gs_unref_ptrarray GPtrArray *aps = NULL;
|
||||
APInfo info = {
|
||||
gs_unref_ptrarray GPtrArray *aps = NULL;
|
||||
int info_index = 0;
|
||||
const APInfo info = {
|
||||
.nmc = nmc,
|
||||
.index = 1,
|
||||
.p_index = &info_index,
|
||||
.output_flags = NMC_OF_FLAG_SECTION_PREFIX,
|
||||
.active_ap = active_ap,
|
||||
.device = nm_device_get_iface(device),
|
||||
|
|
@ -1707,7 +1712,7 @@ show_device_info(NMDevice *device, NmCli *nmc)
|
|||
|
||||
aps = sort_access_points(
|
||||
nm_device_wifi_get_access_points(NM_DEVICE_WIFI(device)));
|
||||
g_ptr_array_foreach(aps, fill_output_access_point, &info);
|
||||
g_ptr_array_foreach(aps, fill_output_access_point_void, (gpointer) &info);
|
||||
}
|
||||
|
||||
print_data_prepare_width(out.output_data);
|
||||
|
|
@ -2994,10 +2999,11 @@ show_access_point_info(NMDeviceWifi *wifi, NmCli *nmc, NmcOutputData *out)
|
|||
g_ptr_array_add(out->output_data, arr);
|
||||
|
||||
{
|
||||
gs_unref_ptrarray GPtrArray *aps = NULL;
|
||||
APInfo info = {
|
||||
gs_unref_ptrarray GPtrArray *aps = NULL;
|
||||
int info_index = 0;
|
||||
const APInfo info = {
|
||||
.nmc = nmc,
|
||||
.index = 1,
|
||||
.p_index = &info_index,
|
||||
.output_flags = 0,
|
||||
.active_ap = active_ap,
|
||||
.device = nm_device_get_iface(NM_DEVICE(wifi)),
|
||||
|
|
@ -3005,7 +3011,7 @@ show_access_point_info(NMDeviceWifi *wifi, NmCli *nmc, NmcOutputData *out)
|
|||
};
|
||||
|
||||
aps = sort_access_points(nm_device_wifi_get_access_points(wifi));
|
||||
g_ptr_array_foreach(aps, fill_output_access_point, &info);
|
||||
g_ptr_array_foreach(aps, fill_output_access_point_void, (gpointer) &info);
|
||||
}
|
||||
|
||||
print_data_prepare_width(out->output_data);
|
||||
|
|
@ -3049,12 +3055,13 @@ wifi_print_aps(NMDeviceWifi *wifi,
|
|||
ap = candidate_ap;
|
||||
}
|
||||
if (ap) {
|
||||
APInfo info = {
|
||||
.nmc = nmc,
|
||||
.index = 1,
|
||||
.output_flags = 0,
|
||||
.device = nm_device_get_iface(NM_DEVICE(wifi)),
|
||||
.output_data = out.output_data,
|
||||
int info_index = 0;
|
||||
const APInfo info = {
|
||||
.nmc = nmc,
|
||||
.p_index = &info_index,
|
||||
.output_flags = 0,
|
||||
.device = nm_device_get_iface(NM_DEVICE(wifi)),
|
||||
.output_data = out.output_data,
|
||||
};
|
||||
|
||||
/* Add headers (field names) */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue