migration from private to rsa
[external/dbus-glib.git] / test / core / peer-server.c
1 #include <config.h>
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #include <dbus/dbus.h>
7 #include <dbus/dbus-glib.h>
8 #include <dbus/dbus-glib-lowlevel.h>
9
10 #include "my-object.h"
11
12 GMainLoop *loop;
13
14 static void
15 new_connection_func (DBusServer *server, DBusConnection *conn, gpointer user_data)
16 {
17   GObject *obj;
18
19   obj = g_object_new (MY_TYPE_OBJECT, NULL);
20
21   dbus_connection_ref (conn);
22   dbus_connection_setup_with_g_main (conn, NULL);
23
24   dbus_g_connection_register_g_object
25     (dbus_connection_get_g_connection (conn), "/", obj);
26 }
27
28 int
29 main (int argc, char **argv)
30 {
31   DBusError error;
32   DBusServer *server;
33   char *addr;
34
35   dbus_error_init (&error);
36
37   g_thread_init (NULL); dbus_g_thread_init ();
38   g_type_init ();
39
40   loop = g_main_loop_new (NULL, TRUE);
41
42   server = dbus_server_listen ("unix:tmpdir=/tmp", &error);
43   if (!server) 
44     {
45       g_warning ("Cannot create server: %s", error.message);
46       return 1;
47     }
48   addr = dbus_server_get_address (server);
49   fprintf (stdout, "%s\n", addr);
50   fflush (stdout);
51   free (addr);
52   dbus_server_setup_with_g_main (server, NULL);
53   dbus_server_set_new_connection_function (server, new_connection_func, NULL, NULL);
54   
55   g_main_loop_run (loop);
56   
57   g_main_loop_unref (loop);
58   return 0;
59 }