about summary refs log tree commit diff
path: root/src/libnm-client-impl/nm-client.c
diff options
context:
space:
mode:
authorSebastien Bacher <seb128@ubuntu.com>2022-05-17 15:30:19 +0200
committerSebastien Bacher <seb128@ubuntu.com>2022-05-17 15:30:19 +0200
commit1e636d8e5e986b9f2260c36bb87fb499d724085c (patch)
treeac613b9372adf622496a7d616050d7e1c09b4fba /src/libnm-client-impl/nm-client.c
parentf4966e573c855d4667e6c236d8197d9949020e21 (diff)
parent1a31bc3c63474ca02c83b02add85ea4e740e5597 (diff)
Merge remote-tracking branch 'debian/debian/master' into ubuntu/master
Diffstat (limited to 'src/libnm-client-impl/nm-client.c')
-rw-r--r--src/libnm-client-impl/nm-client.c62
1 files changed, 53 insertions, 9 deletions
diff --git a/src/libnm-client-impl/nm-client.c b/src/libnm-client-impl/nm-client.c
index 2cf12db5..b18f47be 100644
--- a/src/libnm-client-impl/nm-client.c
+++ b/src/libnm-client-impl/nm-client.c
@@ -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;
@@ -764,7 +766,7 @@ _nm_client_set_property_sync_legacy(NMClient   *self,
                 NMClientPrivate *_priv = NM_CLIENT_GET_PRIVATE(self);         \
                                                                               \
                 nm_assert(g_source_get_context(_source) == _priv->x_context); \
-                nm_assert(g_main_context_is_owner(_priv->x_context));         \
+                nm_assert(nm_g_main_context_can_acquire(_priv->x_context));   \
             }                                                                 \
         }                                                                     \
     }                                                                         \
@@ -778,7 +780,7 @@ _nm_client_set_property_sync_legacy(NMClient   *self,
                                                                                         \
             nm_assert((g_main_context_get_thread_default() ?: g_main_context_default()) \
                       == _priv->x_context);                                             \
-            nm_assert(g_main_context_is_owner(_priv->x_context));                       \
+            nm_assert(nm_g_main_context_can_acquire(_priv->x_context));                 \
         }                                                                               \
     }                                                                                   \
     G_STMT_END
@@ -4236,6 +4238,24 @@ nm_client_wireless_hardware_get_enabled(NMClient *client)
 }
 
 /**
+ * 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
  *
@@ -6261,7 +6281,6 @@ nm_client_get_capabilities(NMClient *client, gsize *length)
     NMClientPrivate *priv;
 
     g_return_val_if_fail(NM_IS_CLIENT(client), NULL);
-    g_return_val_if_fail(length, NULL);
 
     priv = NM_CLIENT_GET_PRIVATE(client);
 
@@ -7306,9 +7325,9 @@ _init_start_check_complete(NMClient *self)
 static void
 _init_start_cancelled_cb(GCancellable *cancellable, gpointer user_data)
 {
-    NMClient        *self = user_data;
-    NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE(self);
-    GError          *error;
+    NMClient        *self  = user_data;
+    NMClientPrivate *priv  = NM_CLIENT_GET_PRIVATE(self);
+    GError          *error = NULL;
 
     nm_assert(NM_IS_CLIENT(self));
     nm_assert(priv->init_data);
@@ -7328,8 +7347,8 @@ _init_start_cancelled_cb(GCancellable *cancellable, gpointer user_data)
 static gboolean
 _init_start_cancel_on_idle_cb(gpointer user_data)
 {
-    NMClient *self = user_data;
-    GError   *error;
+    NMClient *self  = user_data;
+    GError   *error = NULL;
 
     nm_utils_error_set_cancelled(&error, FALSE, NULL);
     _init_start_complete(self, error);
@@ -7350,7 +7369,10 @@ _init_start_with_bus(NMClient *self)
                                    NULL);
         if (id == 0) {
             priv->init_data->cancel_on_idle_source =
-                nm_g_idle_source_new(G_PRIORITY_DEFAULT, _init_start_cancel_on_idle_cb, self, NULL);
+                nm_g_idle_source_new(G_PRIORITY_DEFAULT_IDLE,
+                                     _init_start_cancel_on_idle_cb,
+                                     self,
+                                     NULL);
             g_source_attach(priv->init_data->cancel_on_idle_source, priv->main_context);
             return;
         }
@@ -7452,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;
@@ -8044,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),
@@ -8312,6 +8341,21 @@ nm_client_class_init(NMClientClass *client_class)
                              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))
      *
      * The active connections.