summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-10-22 21:23:08 -0400
committerWilliam Jon McCann <mccann@jhu.edu>2007-10-22 21:23:08 -0400
commit7d167e65868cb2aa40273ee8ccd33cca5968438b (patch)
tree1ba45f167c92e65b562add2204eb5caf8e32c9f4
parent7b65ac249a1e28c9af25eb91919d898c3e0f8162 (diff)
dump session leader info
-rw-r--r--src/ck-manager.c9
-rw-r--r--src/ck-session-leader.c15
2 files changed, 21 insertions, 3 deletions
diff --git a/src/ck-manager.c b/src/ck-manager.c
index 396980c..5c77547 100644
--- a/src/ck-manager.c
+++ b/src/ck-manager.c
@@ -106,6 +106,14 @@ dump_state_session_iter (char *id,
ck_session_dump (session, key_file);
}
+static void
+dump_state_leader_iter (char *id,
+ CkSessionLeader *leader,
+ GKeyFile *key_file)
+{
+ ck_session_leader_dump (leader, key_file);
+}
+
static gboolean
do_dump (CkManager *manager,
int fd)
@@ -124,6 +132,7 @@ do_dump (CkManager *manager,
g_hash_table_foreach (manager->priv->seats, (GHFunc) dump_state_seat_iter, key_file);
g_hash_table_foreach (manager->priv->sessions, (GHFunc) dump_state_session_iter, key_file);
+ g_hash_table_foreach (manager->priv->leaders, (GHFunc) dump_state_leader_iter, key_file);
str = g_key_file_to_data (key_file, &str_len, &error);
g_key_file_free (key_file);
diff --git a/src/ck-session-leader.c b/src/ck-session-leader.c
index d9bb375..756feac 100644
--- a/src/ck-session-leader.c
+++ b/src/ck-session-leader.c
@@ -50,14 +50,14 @@
struct CkSessionLeaderPrivate
{
- gboolean cancelled;
-
+ char *id;
uid_t uid;
pid_t pid;
char *service_name;
char *session_id;
char *cookie;
GList *pending_jobs;
+ gboolean cancelled;
};
enum {
@@ -554,5 +554,14 @@ void
ck_session_leader_dump (CkSessionLeader *session_leader,
GKeyFile *key_file)
{
-}
+ char *group_name;
+
+ group_name = g_strdup_printf ("SessionLeader %s", session_leader->priv->session_id);
+ g_key_file_set_string (key_file, group_name, "session", session_leader->priv->session_id);
+ g_key_file_set_integer (key_file, group_name, "uid", session_leader->priv->uid);
+ g_key_file_set_integer (key_file, group_name, "pid", session_leader->priv->pid);
+ g_key_file_set_string (key_file, group_name, "cookie", session_leader->priv->cookie);
+ g_key_file_set_string (key_file, group_name, "service_name", session_leader->priv->service_name);
+ g_free (group_name);
+}