1 From 113ccd0ca92ab8fe8a6e6c2db190cbcbeebe912d Mon Sep 17 00:00:00 2001
2 From: Zhang zhengguang <zhengguang.zhang@intel.com>
3 Date: Sat, 11 Oct 2014 15:06:14 +0800
4 Subject: [PATCH 26/32] multi-user: Add function to get dbus user id
7 Change-Id: Ic41643e5f8b6e1a28ce00e0456d961fe2de7a7fb
9 include/dbus.h | 4 ++++
10 src/dbus.c | 25 +++++++++++++++++++++++++
11 2 files changed, 29 insertions(+)
13 diff --git a/include/dbus.h b/include/dbus.h
14 index 26f94d6..3087fe4 100644
17 @@ -180,6 +180,10 @@ int connman_dbus_get_connection_unix_user(DBusConnection *connection,
18 connman_dbus_get_connection_unix_user_cb_t func,
21 +int connman_dbus_get_connection_unix_user_sync(DBusConnection *connection,
22 + const char *bus_name,
23 + unsigned int *user_id);
25 typedef void (* connman_dbus_get_context_cb_t) (const unsigned char *context,
26 void *user_data, int err);
28 diff --git a/src/dbus.c b/src/dbus.c
29 index d80a46c..260cec6 100644
32 @@ -524,6 +524,31 @@ err:
36 +int connman_dbus_get_connection_unix_user_sync(DBusConnection *connection,
37 + const char *bus_name,
38 + unsigned int *user_id)
43 + dbus_error_init(&err);
45 + uid = dbus_bus_get_unix_user(connection, bus_name, &err);
47 + if (uid == (unsigned long)-1) {
48 + DBG("Can not get unix user ID!");
49 + if (dbus_error_is_set(&err)) {
50 + DBG("%s", err.message);
51 + dbus_error_free(&err);
56 + *user_id = (unsigned int)uid;
61 static unsigned char *parse_context(DBusMessage *msg)
63 DBusMessageIter iter, array;