1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4#ifdef HAVE_UNISTD_H 5#include <unistd.h> 6#endif 7 8#include <dbus/dbus.h> 9#include "dbus/dbus-sysdeps.h" 10 11int 12main (int argc, char *argv[]) 13{ 14 DBusConnection *conn = NULL; 15 DBusError error; 16 17 _dbus_setenv ("DBUS_SESSION_BUS_ADDRESS", NULL); 18 19 dbus_error_init (&error); 20 21 conn = dbus_bus_get (DBUS_BUS_SESSION, &error); 22 23#ifdef DBUS_ENABLE_X11_AUTOLAUNCH 24 if (dbus_error_is_set (&error)) 25 { 26 fprintf (stderr, "*** Failed to autolaunch session bus: %s\n", 27 error.message); 28 dbus_error_free (&error); 29 return 1; 30 } 31#else 32 /* We don't necessarily expect it to *work* without X (although it might - 33 * for instance on Mac OS it might have used launchd). Just check that the 34 * results are consistent. */ 35 36 if (dbus_error_is_set (&error) && conn != NULL) 37 { 38 fprintf (stderr, "*** Autolaunched session bus, but an error was set!\n"); 39 return 1; 40 } 41#endif 42 43 if (!dbus_error_is_set (&error) && conn == NULL) 44 { 45 fprintf (stderr, "*** Failed to autolaunch session bus but no error was set\n"); 46 return 1; 47 } 48 49 return 0; 50} 51