cli: Implement display of global metered state in nmcli general

This commit introduces the display of the global metered state in the
`nmcli general` command output.
Key changes:
- Parse and display the global metered state
This commit is contained in:
Stanislas FAYE 2024-02-02 18:16:08 +01:00
parent 7e7d3a7981
commit 3bdb8666f2
3 changed files with 10 additions and 3 deletions

View file

@ -81,5 +81,4 @@ extern const NmcMetaGenericInfo *const metagen_ip6_config[];
extern const NmcMetaGenericInfo *const metagen_dhcp_config[];
const char *nm_connectivity_to_string(NMConnectivityState connectivity);
#endif /* NMC_COMMON_H */

View file

@ -116,6 +116,7 @@ _metagen_general_status_get_fcn(NMC_META_GENERIC_INFO_GET_FCN_ARGS)
gboolean v_bool;
NMState state;
NMConnectivityState connectivity;
NMMetered metered;
switch (info->info_type) {
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_RUNNING:
@ -170,6 +171,11 @@ _metagen_general_status_get_fcn(NMC_META_GENERIC_INFO_GET_FCN_ARGS)
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WIMAX:
/* deprecated fields. Don't return anything. */
return NULL;
case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_METERED:
metered = nm_client_get_metered(nmc->client);
NMC_HANDLE_COLOR(NM_META_COLOR_NONE);
value = nmc_device_metered_to_string(metered);
goto translate_and_out;
default:
break;
}
@ -206,12 +212,13 @@ static const NmcMetaGenericInfo
_METAGEN_GENERAL_STATUS(NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WWAN, "WWAN"),
_METAGEN_GENERAL_STATUS(NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WIMAX_HW, "WIMAX-HW"),
_METAGEN_GENERAL_STATUS(NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WIMAX, "WIMAX"),
_METAGEN_GENERAL_STATUS(NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_METERED, "METERED"),
};
#define NMC_FIELDS_NM_STATUS_ALL \
"RUNNING,VERSION,STATE,STARTUP,CONNECTIVITY,NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN"
"RUNNING,VERSION,STATE,STARTUP,CONNECTIVITY,NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN,METERED"
#define NMC_FIELDS_NM_STATUS_SWITCH "NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN"
#define NMC_FIELDS_NM_STATUS_RADIO "WIFI-HW,WIFI,WWAN-HW,WWAN"
#define NMC_FIELDS_NM_STATUS_COMMON "STATE,CONNECTIVITY,WIFI-HW,WIFI,WWAN-HW,WWAN"
#define NMC_FIELDS_NM_STATUS_COMMON "STATE,CONNECTIVITY,WIFI-HW,WIFI,WWAN-HW,WWAN,METERED"
#define NMC_FIELDS_NM_NETWORKING "NETWORKING"
#define NMC_FIELDS_NM_WIFI "WIFI"
#define NMC_FIELDS_NM_WWAN "WWAN"

View file

@ -93,6 +93,7 @@ typedef enum {
NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WWAN,
NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WIMAX_HW,
NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_WIMAX,
NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_METERED,
_NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_NUM,
NMC_GENERIC_INFO_TYPE_GENERAL_PERMISSIONS_PERMISSION = 0,