From: Daniel Wagner <[email protected]>
Ask D-Bus server which PID a session client has.
---
src/session.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/session.c b/src/session.c
index d103b37..a60dc98 100644
--- a/src/session.c
+++ b/src/session.c
@@ -103,6 +103,7 @@ struct session_info {
};
struct connman_session {
+ pid_t pid;
char *owner;
char *session_path;
char *notify_path;
@@ -1566,6 +1567,26 @@ static const GDBusMethodTable session_methods[] = {
{ },
};
+static void session_pid(const char *owner, pid_t pid, void *user_data)
+{
+ char *session_path = user_data;
+ struct connman_session *session;
+
+ DBG("session %s pid %d", session_path, pid);
+
+ session = g_hash_table_lookup(session_hash, session_path);
+ if (session == NULL)
+ goto out;
+
+ if (g_strcmp0(session->owner, owner) != 0)
+ goto out;
+
+ session->pid = pid;
+
+out:
+ g_free(session_path);
+}
+
int __connman_session_create(DBusMessage *msg)
{
const char *owner, *notify_path;
@@ -1704,6 +1725,8 @@ int __connman_session_create(DBusMessage *msg)
info = session->info;
info_last = session->info_last;
+ g_dbus_get_pid(connection, owner, g_strdup(session_path), session_pid);
+
session->owner = g_strdup(owner);
session->session_path = session_path;
session->notify_path = g_strdup(notify_path);
--
1.7.12.rc1.16.g05a20c8
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman