summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-05-05 14:20:25 -0400
committerWilliam Jon McCann <jmccann@redhat.com>2008-05-05 14:20:25 -0400
commit844de7d4b6d29d57a5425dcc7d0d3f6d4b005311 (patch)
treed59bf3cacfaac9630ec534c64a94cd8bef31f9f4 /src
parent8ec523138671a8fe93748a0b75adaaca96e2392e (diff)
export login session id to the bus
Diffstat (limited to 'src')
-rw-r--r--src/ck-manager.c9
-rw-r--r--src/ck-session.c2
-rw-r--r--src/ck-session.h6
-rw-r--r--src/ck-session.xml3
-rwxr-xr-xsrc/test-method-access-policy13
5 files changed, 29 insertions, 4 deletions
diff --git a/src/ck-manager.c b/src/ck-manager.c
index df5a86a..0bcac88 100644
--- a/src/ck-manager.c
+++ b/src/ck-manager.c
@@ -1981,6 +1981,7 @@ ck_manager_get_session_for_cookie (CkManager *manager,
_("Unable to get information about the calling process"));
dbus_g_method_return_error (context, error);
g_error_free (error);
+ g_debug ("CkManager: Unable to lookup caller info - failing");
return FALSE;
}
@@ -1999,10 +2000,14 @@ ck_manager_get_session_for_cookie (CkManager *manager,
dbus_g_method_return_error (context, error);
g_error_free (error);
+
+ g_debug ("CkManager: Unable to lookup info for caller - failing");
+
return FALSE;
}
/* FIXME: should we restrict this by uid? */
+
ck_process_stat_free (stat);
leader = g_hash_table_lookup (manager->priv->leaders, cookie);
@@ -2013,6 +2018,7 @@ ck_manager_get_session_for_cookie (CkManager *manager,
_("Unable to find session for cookie"));
dbus_g_method_return_error (context, error);
g_error_free (error);
+ g_debug ("CkManager: Unable to lookup cookie for caller - failing");
return FALSE;
}
@@ -2024,11 +2030,14 @@ ck_manager_get_session_for_cookie (CkManager *manager,
_("Unable to find session for cookie"));
dbus_g_method_return_error (context, error);
g_error_free (error);
+ g_debug ("CkManager: Unable to lookup session for cookie - failing");
return FALSE;
}
ck_session_get_id (session, &ssid, NULL);
+ g_debug ("CkManager: Found session '%s'", ssid);
+
dbus_g_method_return (context, ssid);
g_free (ssid);
diff --git a/src/ck-session.c b/src/ck-session.c
index 8ba8791..dd4f13a 100644
--- a/src/ck-session.c
+++ b/src/ck-session.c
@@ -505,7 +505,7 @@ ck_session_get_login_session_id (CkSession *session,
GError **error)
{
g_return_val_if_fail (CK_IS_SESSION (session), FALSE);
-
+ g_debug ("Got: %s", session->priv->login_session_id);
if (login_session_id != NULL) {
*login_session_id = g_strdup (session->priv->login_session_id);
}
diff --git a/src/ck-session.h b/src/ck-session.h
index 66ca705..c9ebd08 100644
--- a/src/ck-session.h
+++ b/src/ck-session.h
@@ -113,9 +113,6 @@ gboolean ck_session_set_remote_host_name (CkSession *se
gboolean ck_session_set_session_type (CkSession *session,
const char *type,
GError **error);
-gboolean ck_session_get_login_session_id (CkSession *session,
- char **login_session_id,
- GError **error);
/* Exported methods */
@@ -144,6 +141,9 @@ gboolean ck_session_get_x11_display_device (CkSession *se
gboolean ck_session_get_display_device (CkSession *session,
char **display,
GError **error);
+gboolean ck_session_get_login_session_id (CkSession *session,
+ char **login_session_id,
+ GError **error);
gboolean ck_session_get_session_type (CkSession *session,
char **type,
GError **error);
diff --git a/src/ck-session.xml b/src/ck-session.xml
index 5fc85d0..b42f30b 100644
--- a/src/ck-session.xml
+++ b/src/ck-session.xml
@@ -7,6 +7,9 @@
<method name="GetSeatId">
<arg name="sid" direction="out" type="o"/>
</method>
+ <method name="GetLoginSessionId">
+ <arg name="lsid" direction="out" type="s"/>
+ </method>
<method name="GetSessionType">
<arg name="type" direction="out" type="s"/>
</method>
diff --git a/src/test-method-access-policy b/src/test-method-access-policy
index a950fc8..b206332 100755
--- a/src/test-method-access-policy
+++ b/src/test-method-access-policy
@@ -289,6 +289,19 @@ except:
pass
print "\t\t\t%s" % res
+print "Testing Session.GetLoginSessionId:",
+res = "PASS"
+try:
+ session.GetLoginSessionId ()
+except dbus.exceptions.DBusException, e:
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+ res = "FAIL"
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+ res = "UKNOWN METHOD"
+except:
+ pass
+print "\t\t%s" % res
+
print "Testing Session.GetSessionType:",
res = "PASS"
try: