libnm: support radio flags

This commit is contained in:
Beniamino Galvani 2022-03-21 10:20:11 +01:00
parent 580ef03bee
commit 4a8a3847ad
3 changed files with 54 additions and 1 deletions

View file

@ -1820,4 +1820,10 @@ global:
libnm_1_36_0 {
global:
nm_setting_ovs_dpdk_get_n_rxq;
} libnm_1_34_0;
} libnm_1_34_0;
libnm_1_38_0 {
global:
nm_client_get_radio_flags;
nm_radio_flags_get_type;
} libnm_1_36_0;

View file

@ -198,6 +198,7 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMClient,
PROP_WWAN_HARDWARE_ENABLED,
PROP_WIMAX_ENABLED,
PROP_WIMAX_HARDWARE_ENABLED,
PROP_RADIO_FLAGS,
PROP_ACTIVE_CONNECTIONS,
PROP_CONNECTIVITY,
PROP_CONNECTIVITY_CHECK_URI,
@ -307,6 +308,7 @@ typedef struct {
guint32 connectivity;
guint32 state;
guint32 metered;
guint32 radio_flags;
bool connectivity_check_available;
bool connectivity_check_enabled;
bool networking_enabled;
@ -4235,6 +4237,24 @@ nm_client_wireless_hardware_get_enabled(NMClient *client)
return NM_CLIENT_GET_PRIVATE(client)->nm.wireless_hardware_enabled;
}
/**
* nm_client_get_radio_flags:
* @client: a #NMClient
*
* Get radio flags.
*
* Returns: the #NMRadioFlags.
*
* Since: 1.38
**/
NMRadioFlags
nm_client_get_radio_flags(NMClient *client)
{
g_return_val_if_fail(NM_IS_CLIENT(client), NM_RADIO_FLAG_NONE);
return NM_CLIENT_GET_PRIVATE(client)->nm.radio_flags;
}
/**
* nm_client_wwan_get_enabled:
* @client: a #NMClient
@ -7454,6 +7474,9 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
case PROP_WIRELESS_HARDWARE_ENABLED:
g_value_set_boolean(value, nm_client_wireless_hardware_get_enabled(self));
break;
case PROP_RADIO_FLAGS:
g_value_set_uint(value, priv->nm.radio_flags);
break;
case PROP_WWAN_ENABLED:
g_value_set_boolean(value, nm_client_wwan_get_enabled(self));
break;
@ -8046,6 +8069,10 @@ const NMLDBusMetaIface _nml_dbus_meta_iface_nm = NML_DBUS_META_IFACE_INIT_PROP(
_priv.nm.property_o[PROPERTY_O_IDX_NM_PRIMAY_CONNECTION],
nm_active_connection_get_type),
NML_DBUS_META_PROPERTY_INIT_IGNORE("PrimaryConnectionType", "s"),
NML_DBUS_META_PROPERTY_INIT_U("RadioFlags",
PROP_RADIO_FLAGS,
NMClient,
_priv.nm.radio_flags),
NML_DBUS_META_PROPERTY_INIT_B("Startup", PROP_STARTUP, NMClient, _priv.nm.startup),
NML_DBUS_META_PROPERTY_INIT_U("State", PROP_STATE, NMClient, _priv.nm.state),
NML_DBUS_META_PROPERTY_INIT_S("Version", PROP_VERSION, NMClient, _priv.nm.version),
@ -8313,6 +8340,21 @@ nm_client_class_init(NMClientClass *client_class)
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
/**
* NMClient:radio-flags:
*
* Flags for radio interfaces. See #NMRadioFlags.
*
* Since: 1.38
**/
obj_properties[PROP_RADIO_FLAGS] = g_param_spec_uint(NM_CLIENT_RADIO_FLAGS,
"",
"",
0,
G_MAXUINT32,
NM_RADIO_FLAG_NONE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
/**
* NMClient:active-connections: (type GPtrArray(NMActiveConnection))
*

View file

@ -61,6 +61,8 @@ _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY
#define NM_CLIENT_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled"
#define NM_CLIENT_WIMAX_HARDWARE_ENABLED "wimax-hardware-enabled"
#define NM_CLIENT_RADIO_FLAGS "radio-flags"
#define NM_CLIENT_ACTIVE_CONNECTIONS "active-connections"
#define NM_CLIENT_CONNECTIVITY "connectivity"
#define NM_CLIENT_CONNECTIVITY_CHECK_URI "connectivity-check-uri"
@ -213,6 +215,9 @@ void nm_client_wimax_set_enabled(NMClient *client, gboolean enabled);
NM_DEPRECATED_IN_1_22
gboolean nm_client_wimax_hardware_get_enabled(NMClient *client);
NM_AVAILABLE_IN_1_38
NMRadioFlags nm_client_get_radio_flags(NMClient *client);
NM_AVAILABLE_IN_1_10
gboolean nm_client_connectivity_check_get_available(NMClient *client);