From: Simon McVittie Date: Thu, 8 Nov 2012 14:09:23 +0000 (+0000) Subject: Check that credentials pass through D-Bus on supported platforms X-Git-Tag: 2.35.4~91 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2fe36a22388216a04dfd74a59a72d8636c1098e4;p=platform%2Fupstream%2Fglib.git Check that credentials pass through D-Bus on supported platforms Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687920 --- diff --git a/gio/tests/gdbus-peer.c b/gio/tests/gdbus-peer.c index cc32261..799c673 100644 --- a/gio/tests/gdbus-peer.c +++ b/gio/tests/gdbus-peer.c @@ -45,6 +45,13 @@ #include #endif +#if (defined(__linux__) || \ + defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || \ + defined(__OpenBSD__)) +#define SHOULD_HAVE_CREDENTIALS_PASSING +#endif + #include "gdbus-tests.h" #include "gdbus-example-objectmanager-generated.h" @@ -303,6 +310,20 @@ on_new_connection (GDBusServer *server, g_ptr_array_add (data->current_connections, g_object_ref (connection)); +#ifdef SHOULD_HAVE_CREDENTIALS_PASSING + { + GCredentials *credentials; + + credentials = g_dbus_connection_get_peer_credentials (connection); + + g_assert (credentials != NULL); + g_assert_cmpuint (g_credentials_get_unix_user (credentials, NULL), ==, + getuid ()); + g_assert_cmpuint (g_credentials_get_unix_pid (credentials, NULL), ==, + getpid ()); + } +#endif + /* export object on the newly established connection */ error = NULL; reg_id = g_dbus_connection_register_object (connection,