/*
- * deviced
+ * libsyscommon
*
- * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* limitations under the License.
*/
-
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
/* 10 seconds */
#define DBUS_REPLY_TIMEOUT (10000)
-int check_systemd_active(void)
-{
- int ret = FALSE;
- GVariant *msg = NULL;
- GVariant *var = NULL;
- char *state;
-
- _I("%s %s", "org.freedesktop.systemd1.Unit", "ActiveState");
-
- msg = dbus_handle_method_sync_with_reply_var("org.freedesktop.systemd1",
- "/org/freedesktop/systemd1/unit/default_2etarget",
- "org.freedesktop.DBus.Properties",
- "Get",
- g_variant_new("(ss)", "org.freedesktop.systemd1.Unit", "ActiveState"));
- if (!msg)
- return -EBADMSG;
-
- if (!dh_get_param_from_var(msg, "(v)", &var)) {
- _E("reply is not variant type");
- ret = -EBADMSG;
- goto out;
- }
- if (!dh_get_param_from_var(var, "(s)", &state)) {
- _E("variant doesn't have string (%s)", g_variant_get_type_string(var));
- ret = -EBADMSG;
- goto out;
- }
-
- if (strncmp(state, "active", 6) == 0)
- ret = TRUE;
-
- g_free(state);
-out:
- if (var)
- g_variant_unref(var);
- if (msg)
- g_variant_unref(msg);
-
- return ret;
-}
-
static GBusType g_default_bus_type = G_BUS_TYPE_SYSTEM;
pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
return TRUE;
}
-GVariant *dbus_handle_make_simple_array(const char *sig, int *param)
-{
- GVariantBuilder *builder = NULL;
- GVariant *var = NULL;
- char format[256];
- int i = 0;
-
- builder = g_variant_builder_new(G_VARIANT_TYPE(sig));
- if (!builder) {
- _E("failed to g_variant_builder_new");
- return NULL;
- }
-
- while (param[i])
- g_variant_builder_add(builder, "i", param[i++]);
-
- snprintf(format, sizeof(format) - 1, "(%s)", sig);
- var = g_variant_new(format, builder);
- g_variant_builder_unref(builder);
- return var;
-}
-
/* todo: looks like garbage... */
static GVariant* _append_variant(const char *signature, const char *param[])
{
ret = g_dbus_connection_call_sync(dh->conn,
dest, path, iface, method,
- var, NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &err);
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ DBUS_REPLY_TIMEOUT,
+ NULL,
+ &err);
if (!ret || err) {
if (err) {
_E("failed to g_dbus_connection_call_sync:%s", err->message);
}
ret = g_dbus_connection_call_sync(dh->conn,
- dest, path, iface, method,
- var, NULL, G_DBUS_CALL_FLAGS_NONE, timeout, NULL, &err);
+ dest, path, iface, method,
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ timeout,
+ NULL,
+ &err);
if (!ret || err) {
if (err) {
_E("failed to g_dbus_connection_call_sync:%s", err->message);
}
ret = g_dbus_connection_call_with_unix_fd_list_sync(dh->conn,
- dest, path, iface, method, var,
- NULL, G_DBUS_CALL_FLAGS_NONE,
+ dest, path, iface, method,
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
-1,
g_infdlist, &g_outfdlist,
- NULL, &err);
+ NULL,
+ &err);
if (!ret || err) {
if (err) {
_E("failed to g_dbus_connection_call_with_unix_fd_list_sync:%s", err->message);
/* send message */
ret = g_dbus_connection_call_with_unix_fd_list_sync(dh->conn,
- dest, path, iface, method, param,
- NULL, G_DBUS_CALL_FLAGS_NONE,
+ dest, path, iface, method,
+ param, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
-1,
g_infdlist, &g_outfdlist,
NULL, &err);
}
int dbus_handle_method_sync_var(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- GVariant *param)
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *param)
{
int result;
gboolean result_bool;
}
int dbus_handle_method_sync_timeout(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- const char *signature,
- const char *param[],
- int timeout)
+ const char *path,
+ const char *iface,
+ const char *method,
+ const char *signature,
+ const char *param[],
+ int timeout)
{
dbus_handle_s *dh = NULL;
GError *err = NULL;
reply = g_dbus_connection_call_sync(dh->conn,
dest, path, iface, method,
- var, NULL, G_DBUS_CALL_FLAGS_NONE, timeout, NULL, &err);
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ timeout,
+ NULL,
+ &err);
if (!reply || err) {
_E("failed to g_dbus_connection_call_sync:%s", err->message);
g_error_free(err);
}
int dbus_handle_method_sync_pairs(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- int num,
- va_list args)
+ const char *path,
+ const char *iface,
+ const char *method,
+ int num,
+ va_list args)
{
GError *err = NULL;
GVariant * reply = NULL;
}
int dbus_handle_method_async_pairs(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- int num,
- va_list args)
+ const char *path,
+ const char *iface,
+ const char *method,
+ int num,
+ va_list args)
{
char *key, *value;
GVariant *var;
var = g_variant_new("(a{ss})", builder);
g_variant_builder_unref(builder);
- g_dbus_connection_call(dh->conn, dest, path, iface, method,
- var, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL,
- NULL,
- NULL);
+ g_dbus_connection_call(dh->conn,
+ dest, path, iface, method,
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ NULL,
+ NULL);
return 0;
}
int dbus_handle_method_async(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- const char *signature,
- const char *param[])
+ const char *path,
+ const char *iface,
+ const char *method,
+ const char *signature,
+ const char *param[])
{
GVariant * var = NULL;
dbus_handle_s *dh = NULL;
if (signature && param)
var = _append_variant(signature, param);
- g_dbus_connection_call(dh->conn, dest, path, iface, method,
- var, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL,
- NULL,
- NULL);
+ g_dbus_connection_call(dh->conn,
+ dest, path, iface, method,
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ NULL,
+ NULL);
return 0;
}
int dbus_handle_method_async_var(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- GVariant *param)
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *param)
{
dbus_handle_s *dh = NULL;
return -1;
}
- g_dbus_connection_call(dh->conn, dest, path, iface, method,
- param, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL,
- NULL,
- NULL);
+ g_dbus_connection_call(dh->conn,
+ dest, path, iface, method,
+ param, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ NULL,
+ NULL);
return 0;
}
}
int dbus_handle_method_async_pairs_with_reply(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- int num,
- va_list args,
- dbus_pending_cb cb,
- int timeout_msec,
- void *data)
+ const char *path,
+ const char *iface,
+ const char *method,
+ int num,
+ va_list args,
+ dbus_pending_cb cb,
+ int timeout_msec,
+ void *data)
{
dbus_handle_s *dh = NULL;
pending_call_data *pdata = NULL;
pdata->func = cb;
pdata->data = data;
}
- g_dbus_connection_call(dh->conn, dest, path, iface, method,
- param, NULL, G_DBUS_CALL_FLAGS_NONE, timeout_msec, NULL,
- (GAsyncReadyCallback)_cb_pending,
- pdata);
+ g_dbus_connection_call(dh->conn,
+ dest, path, iface, method,
+ param, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ timeout_msec,
+ NULL,
+ (GAsyncReadyCallback)_cb_pending,
+ pdata);
return ret;
err:
}
int dbus_handle_method_async_with_reply(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- const char *signature,
- const char *param[],
- dbus_pending_cb cb,
- int timeout_msec,
- void *data)
+ const char *path,
+ const char *iface,
+ const char *method,
+ const char *signature,
+ const char *param[],
+ dbus_pending_cb cb,
+ int timeout_msec,
+ void *data)
{
dbus_handle_s *dh = NULL;
pending_call_data *pdata = NULL;
pdata->func = cb;
pdata->data = data;
}
- g_dbus_connection_call(dh->conn, dest, path, iface, method,
- var, NULL, G_DBUS_CALL_FLAGS_NONE, timeout_msec, NULL,
- (GAsyncReadyCallback)_cb_pending,
- pdata);
+ g_dbus_connection_call(dh->conn,
+ dest, path, iface, method,
+ var, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ timeout_msec,
+ NULL,
+ (GAsyncReadyCallback)_cb_pending,
+ pdata);
return ret;
err:
pdata->func = cb;
pdata->data = data;
}
- g_dbus_connection_call(dh->conn, dest, path, iface, method,
- param, NULL, G_DBUS_CALL_FLAGS_NONE, timeout_msec, NULL,
- (GAsyncReadyCallback)_cb_pending,
- pdata);
+ g_dbus_connection_call(dh->conn,
+ dest, path, iface, method,
+ param, NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ timeout_msec,
+ NULL,
+ (GAsyncReadyCallback)_cb_pending,
+ pdata);
return ret;
err:
vret = g_dbus_connection_call_sync(conn,
"org.freedesktop.DBus", "/", "org.freedesktop.DBus", "GetConnectionUnixProcessID",
- g_variant_new("(s)", sender),
- NULL,
+ g_variant_new("(s)", sender), NULL,
G_DBUS_CALL_FLAGS_NONE,
DBUS_REPLY_TIMEOUT,
NULL,
g_strfreev(strv);
}
+
+int check_systemd_active(void)
+{
+ int ret = FALSE;
+ GVariant *msg = NULL;
+ GVariant *var = NULL;
+ char *state;
+
+ _I("%s %s", "org.freedesktop.systemd1.Unit", "ActiveState");
+
+ msg = dbus_handle_method_sync_with_reply_var("org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1/unit/default_2etarget",
+ "org.freedesktop.DBus.Properties",
+ "Get",
+ g_variant_new("(ss)", "org.freedesktop.systemd1.Unit", "ActiveState"));
+ if (!msg)
+ return -EBADMSG;
+
+ if (!dh_get_param_from_var(msg, "(v)", &var)) {
+ _E("reply is not variant type");
+ ret = -EBADMSG;
+ goto out;
+ }
+ if (!dh_get_param_from_var(var, "(s)", &state)) {
+ _E("variant doesn't have string (%s)", g_variant_get_type_string(var));
+ ret = -EBADMSG;
+ goto out;
+ }
+
+ if (strncmp(state, "active", 6) == 0)
+ ret = TRUE;
+
+ g_free(state);
+out:
+ if (var)
+ g_variant_unref(var);
+ if (msg)
+ g_variant_unref(msg);
+
+ return ret;
+}
+
+GVariant *dbus_handle_make_simple_array(const char *sig, int *param)
+{
+ GVariantBuilder *builder = NULL;
+ GVariant *var = NULL;
+ char format[256];
+ int i = 0;
+
+ builder = g_variant_builder_new(G_VARIANT_TYPE(sig));
+ if (!builder) {
+ _E("failed to g_variant_builder_new");
+ return NULL;
+ }
+
+ while (param[i])
+ g_variant_builder_add(builder, "i", param[i++]);
+
+ snprintf(format, sizeof(format) - 1, "(%s)", sig);
+ var = g_variant_new(format, builder);
+ g_variant_builder_unref(builder);
+ return var;
+}
/*
- * deviced
+ * libsyscommon
*
- * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* limitations under the License.
*/
-
-#ifndef __DBUS_H__
-#define __DBUS_H__
+#ifndef __DBUS_SYSTEM_H__
+#define __DBUS_SYSTEM_H__
#include <glib.h>
#include <gio/gio.h>
int size;
} dbus_byte;
-GVariant *dbus_handle_method_sync_with_reply_var(const char *dest, const char *path, const char *iface, const char *method, GVariant *var);
-
-GVariant *dbus_handle_method_sync_with_reply_var_timeout(const char *dest, const char *path, const char *iface, const char *method, GVariant *var, int timeout);
-
-/* fd */
-gint* dbus_handle_get_unix_fd_list(GDBusMethodInvocation *invocation, int *size);
-
-GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply(const char *dest, const char *path,
- const char *iface, const char *method,
- const char *signature, const char *param[],
- int *in_fdlist, int in_size,
- int **out_fdlist, int *out_size);
-GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest, const char *path,
- const char *iface, const char *method,
- GVariant *param,
- int *in_fdlist, int in_size,
- int **out_fdlist, int *out_size);
-
-int dbus_handle_method_sync(const char *dest, const char *path,
- const char *interface, const char *method,
- const char *sig, const char *param[]);
-
-int dbus_handle_method_sync_var(const char *dest, const char *path, const char *iface, const char *method, GVariant *param);
-
-int dbus_handle_method_sync_timeout(const char *dest, const char *path,
- const char *interface, const char *method,
- const char *sig, const char *param[], int timeout);
-
-int dbus_handle_method_sync_pairs(const char *dest, const char *path,
- const char *interface, const char *method,
- int num, va_list args);
-
-int dbus_handle_method_async_pairs(const char *dest, const char *path,
- const char *interface, const char *method,
- int num, va_list args);
-
-int dbus_handle_method_async(const char *dest, const char *path,
- const char *interface, const char *method,
- const char *sig, const char *param[]);
-
-int dbus_handle_method_async_var(const char *dest, const char *path, const char *iface, const char *method, GVariant *param);
-
-typedef void (*dbus_pending_cb)(GVariant *var, void *user_data, GError *err);
-int dbus_handle_method_async_with_reply(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- const char *signature,
- const char *param[],
- dbus_pending_cb cb,
- int timeout_msec,
- void *data);
-
-
-int dbus_handle_method_async_with_reply_var(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- GVariant *param,
- dbus_pending_cb cb,
- int timeout_msec,
- void *data);
-
-int dbus_handle_method_async_pairs_with_reply(const char *dest,
- const char *path,
- const char *iface,
- const char *method,
- int num,
- va_list args,
- dbus_pending_cb cb,
- int timeout_msec,
- void *data);
-
-int check_systemd_active(void);
-
-/**
- * @brief Dbus handler which is used to register and call methods
-
- * @since_tizen 4.0
- */
typedef void *dbus_handle_h;
-/**
- * @brief Dbus method handler which is used to unregister dbus methods
- * @since_tizen 4.0
- */
typedef void *dbus_object_handle_h;
-/**
- * @brief Structure which contains the dbus method name and callback function.
- * @since_tizen 4.0
- */
typedef struct {
const char *member;
const char *signature_in;
const char *signature_out;
- GVariant *(*func)(GDBusConnection *conn,
- const gchar *sender, const gchar *path, const gchar *iface, const gchar *name,
- GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data);
+ GVariant *(*func) (GDBusConnection *conn,
+ const gchar *sender,
+ const gchar *path,
+ const gchar *iface,
+ const gchar *name,
+ GVariant *param,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data);
} dbus_method_s;
-/**
- * @brief Structure which contains the dbus interface information and its methods.i
- * @since_tizen 4.0
- */
typedef struct {
dbus_object_handle_h oh;
const char *name;
int nr_methods;
} dbus_interface_u;
+typedef struct {
+ guint pid;
+ guint uid;
+ gchar *unique_name;
+ gchar *sec_label;
+} GDBusCredentials;
+
#define dh_get_param_from_var(gvar, signature, ...) ((g_strcmp0(signature, g_variant_get_type_string(gvar)) == 0) ? g_variant_get(gvar, signature, __VA_ARGS__), TRUE : FALSE)
#define dbus_handle_new_g_variant_tuple() g_variant_new_tuple(NULL, 0)
-/**
- * @brief Callback function which is called when the user data needs to be released.
- * @since_tizen 4.0
- */
typedef void (*destroy_notified)(void *data);
+typedef void (*dbus_pending_cb)(GVariant *var, void *user_data, GError *err);
+
typedef struct {
dbus_pending_cb func;
void *data;
} pending_call_data;
-int dbus_handle_request_bus_name(dbus_handle_h handle, const char *bus_name, GBusNameAcquiredCallback acquired_handler, GBusNameLostCallback lost_handler);
-
-dbus_handle_h dbus_handle_get_connection(GBusType bus_type, gboolean priv);
-
-int dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface);
-int dbus_handle_unregister_dbus_object(dbus_handle_h handle, const char *obj_path);
-
-int dbus_handle_add_dbus_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface_u);
-int dbus_handle_register_dbus_object_all(dbus_handle_h handle);
-
-guint subscribe_dbus_signal(dbus_handle_h handle, const char *path, const char *iface, const char *name, GDBusSignalCallback cb, void *data, destroy_notified free_func);
-void unsubscribe_dbus_signal(dbus_handle_h handle, guint id);
+dbus_handle_h dbus_handle_get_connection (GBusType bus_type,
+ gboolean priv);
+
+int dbus_handle_request_bus_name (dbus_handle_h handle,
+ const char *bus_name,
+ GBusNameAcquiredCallback acquired_handler,
+ GBusNameLostCallback lost_handler);
+
+int dbus_handle_register_dbus_object (dbus_handle_h handle,
+ const char *obj_path,
+ const dbus_interface_u *iface);
+
+int dbus_handle_unregister_dbus_object (dbus_handle_h handle,
+ const char *obj_path);
+
+int dbus_handle_add_dbus_object (dbus_handle_h handle,
+ const char *obj_path,
+ const dbus_interface_u *iface_u);
+
+int dbus_handle_register_dbus_object_all (dbus_handle_h handle);
+
+
+int dbus_handle_method_sync (const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method,
+ const char *sig,
+ const char *param[]);
+
+int dbus_handle_method_sync_var (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *param);
+
+int dbus_handle_method_sync_timeout (const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method,
+ const char *sig,
+ const char *param[],
+ int timeout);
+
+int dbus_handle_method_sync_pairs (const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method,
+ int num,
+ va_list args);
+
+int dbus_handle_method_async_pairs (const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method,
+ int num,
+ va_list args);
+
+int dbus_handle_method_async (const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method,
+ const char *sig,
+ const char *param[]);
+
+int dbus_handle_method_async_var (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *param);
+
+int dbus_handle_method_async_with_reply (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ const char *signature,
+ const char *param[],
+ dbus_pending_cb cb,
+ int timeout_msec,
+ void *data);
+
+int dbus_handle_method_async_with_reply_var (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *param,
+ dbus_pending_cb cb,
+ int timeout_msec,
+ void *data);
+
+int dbus_handle_method_async_pairs_with_reply (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ int num,
+ va_list args,
+ dbus_pending_cb cb,
+ int timeout_msec,
+ void *data);
+
+GVariant *dbus_handle_method_sync_with_reply_var (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *var);
+
+GVariant *dbus_handle_method_sync_with_reply_var_timeout (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *var,
+ int timeout);
+
+gint* dbus_handle_get_unix_fd_list (GDBusMethodInvocation *invocation,
+ int *size);
+
+GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ const char *signature,
+ const char *param[],
+ int *in_fdlist,
+ int in_size,
+ int **out_fdlist,
+ int *out_size);
+
+GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest,
+ const char *path,
+ const char *iface,
+ const char *method,
+ GVariant *param,
+ int *in_fdlist,
+ int in_size,
+ int **out_fdlist,
+ int *out_size);
+
+
+guint subscribe_dbus_signal (dbus_handle_h handle,
+ const char *path,
+ const char *iface,
+ const char *name,
+ GDBusSignalCallback cb,
+ void *data,
+ destroy_notified free_func);
+
+void unsubscribe_dbus_signal (dbus_handle_h handle,
+ guint id);
+
+int dbus_handle_emit_dbus_signal (const char *dest,
+ const char *path,
+ const char *iface,
+ const char *name,
+ GVariant *param);
enum ctx_quit_reason {CTX_QUIT_UNKNOWN, CTX_QUIT_NORMAL, CTX_QUIT_TIMEOUT};
void *user_data;
} sig_ctx;
-sig_ctx *dbus_handle_new_signal_ctx(void);
-void dbus_handle_free_signal_ctx(sig_ctx *ctx);
-guint subscribe_dbus_signal_ctx(dbus_handle_h handle, sig_ctx *ctx, const char *sender, const char *path, const char *iface, const char *name, GDBusSignalCallback cb);
-int dbus_handle_signal_ctx_wait(sig_ctx *ctx);
-int dbus_handle_signal_ctx_add_timeout(sig_ctx *ctx, int timeout);
+sig_ctx *dbus_handle_new_signal_ctx (void);
-GVariant *dbus_handle_make_simple_array(const char *sig, int *param);
+void dbus_handle_free_signal_ctx (sig_ctx *ctx);
-int dbus_handle_emit_dbus_signal(const char *dest, const char *path, const char *iface, const char *name, GVariant *param);
+guint subscribe_dbus_signal_ctx (dbus_handle_h handle,
+ sig_ctx *ctx,
+ const char *sender,
+ const char *path,
+ const char *iface,
+ const char *name,
+ GDBusSignalCallback cb);
-typedef struct
-{
- guint pid;
- guint uid;
- gchar *unique_name;
- gchar *sec_label;
-} GDBusCredentials;
+int dbus_handle_signal_ctx_wait (sig_ctx *ctx);
+
+int dbus_handle_signal_ctx_add_timeout (sig_ctx *ctx,
+ int timeout);
+
+
+
+
+int dbus_connection_get_sender_pid (GDBusConnection *conn,
+ const char * sender);
+
+int dbus_handle_get_sender_pid (dbus_handle_h handle,
+ const char * sender);
+
+int dbus_handle_get_sender_credentials (dbus_handle_h handle,
+ const char *name,
+ GDBusCredentials *creds);
+
+int dbus_handle_watch_name (const char *name,
+ GBusNameAppearedCallback name_appeared_handler,
+ GBusNameVanishedCallback name_vanished_handler,
+ void *user_data,
+ GDestroyNotify user_data_free_func);
+
+void dbus_handle_unwatch_name (guint id);
+
+char** dbus_handle_get_owner_list (dbus_handle_h handle,
+ const char *bus_name);
+
+void dbus_handle_check_owner_name (dbus_handle_h handle,
+ const char *owner_name);
+
+int check_systemd_active (void);
+
+GVariant *dbus_handle_make_simple_array (const char *sig,
+ int *param);
-int dbus_connection_get_sender_pid(GDBusConnection *conn, const char * sender);
-int dbus_handle_get_sender_pid(dbus_handle_h handle, const char * sender);
-int dbus_handle_get_sender_credentials(dbus_handle_h handle, const char *name, GDBusCredentials *creds);
-int dbus_handle_watch_name(const char *name, GBusNameAppearedCallback name_appeared_handler, GBusNameVanishedCallback name_vanished_handler, void *user_data, GDestroyNotify user_data_free_func);
-void dbus_handle_unwatch_name(guint id);
-char** dbus_handle_get_owner_list(dbus_handle_h handle, const char *bus_name);
-void dbus_handle_check_owner_name(dbus_handle_h handle, const char *owner_name);
-#endif
+#endif
\ No newline at end of file