summary refs log tree commit diff
path: root/src/libnm-glib-aux/nm-dbus-aux.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-glib-aux/nm-dbus-aux.h')
-rw-r--r--src/libnm-glib-aux/nm-dbus-aux.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-dbus-aux.h b/src/libnm-glib-aux/nm-dbus-aux.h
index 65a91311..420a0c55 100644
--- a/src/libnm-glib-aux/nm-dbus-aux.h
+++ b/src/libnm-glib-aux/nm-dbus-aux.h
@@ -84,6 +84,29 @@ void nm_dbus_connection_call_get_name_owner(GDBusConnection *                  d
                                             NMDBusConnectionCallGetNameOwnerCb callback,
                                             gpointer                           user_data);
 
+static inline void
+nm_dbus_connection_call_request_name(GDBusConnection *   dbus_connection,
+                                     const char *        name,
+                                     guint32             flags,
+                                     int                 timeout_msec,
+                                     GCancellable *      cancellable,
+                                     GAsyncReadyCallback callback,
+                                     gpointer            user_data)
+{
+    g_dbus_connection_call(dbus_connection,
+                           DBUS_SERVICE_DBUS,
+                           DBUS_PATH_DBUS,
+                           DBUS_INTERFACE_DBUS,
+                           "RequestName",
+                           g_variant_new("(su)", name, flags),
+                           G_VARIANT_TYPE("(u)"),
+                           G_DBUS_CALL_FLAGS_NONE,
+                           timeout_msec,
+                           cancellable,
+                           callback,
+                           user_data);
+}
+
 static inline guint
 nm_dbus_connection_signal_subscribe_properties_changed(GDBusConnection *   dbus_connection,
                                                        const char *        bus_name,
@@ -215,4 +238,30 @@ gboolean _nm_dbus_error_is(GError *error, ...) G_GNUC_NULL_TERMINATED;
 
 /*****************************************************************************/
 
+GDBusConnection *nm_g_bus_get_blocking(GCancellable *cancellable, GError **error);
+
+/*****************************************************************************/
+
+typedef struct {
+    GVariant *result;
+    GError *  error;
+} NMDBusConnectionCallBlockingData;
+
+void
+nm_dbus_connection_call_blocking_callback(GObject *source, GAsyncResult *res, gpointer user_data);
+
+GVariant *nm_dbus_connection_call_blocking(NMDBusConnectionCallBlockingData *data, GError **error);
+
+/*****************************************************************************/
+
+static inline gboolean
+nm_g_variant_tuple_get_u(GVariant *v, guint32 *out_u)
+{
+    if (g_variant_is_of_type(v, G_VARIANT_TYPE("(u)"))) {
+        g_variant_get(v, "(u)", out_u);
+        return TRUE;
+    }
+    return FALSE;
+}
+
 #endif /* __NM_DBUS_AUX_H__ */