]> git.meshlink.io Git - catta/blobdiff - avahi-daemon/dbus-protocol.c
update diagram a bit
[catta] / avahi-daemon / dbus-protocol.c
index e8d30ac9eeb42e6f2296930046bdefcb80fac4d6..242ad59028c5363b03779a544851782d62a27939 100644 (file)
 
 #include <glib.h>
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #define DBUS_API_SUBJECT_TO_CHANGE
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib-lowlevel.h>
     
+#include "dbus-protocol.h"
+
 static DBusConnection *bus = NULL;
 
 static DBusHandlerResult
@@ -66,7 +72,11 @@ signal_filter (DBusConnection *conn, DBusMessage *message, void *user_data)
                dbus_message_get_member (message));
 
     if (dbus_message_is_signal (message,
+#ifdef DBUS_USE_NEW_API
+                               DBUS_INTERFACE_LOCAL,
+#else
                                 DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL,
+#endif
                                 "Disconnected"))
     {
         /* No, we shouldn't quit, but until we get somewhere
@@ -80,7 +90,11 @@ signal_filter (DBusConnection *conn, DBusMessage *message, void *user_data)
     {
         return do_register (conn, message);
     } else if (dbus_message_is_signal (message,
+#ifdef DBUS_USE_NEW_API
+                                      DBUS_INTERFACE_DBUS,
+#else
                                        DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS,
+#endif
                                        "ServiceAcquired"))
     {
         char *name;
@@ -108,7 +122,7 @@ signal_filter (DBusConnection *conn, DBusMessage *message, void *user_data)
 }
 
 int
-dbus_protocol_setup ()
+dbus_protocol_setup (GMainLoop *loop)
 {
     DBusError error;
 
@@ -121,20 +135,24 @@ dbus_protocol_setup ()
         g_warning ("dbus_bus_get(): %s", error.message);
         dbus_error_free (&error);
 
-        goto finish;
+       return 1;
     }
 
     dbus_connection_setup_with_g_main (bus, NULL);
     dbus_connection_set_exit_on_disconnect (bus, FALSE);
 
+#ifdef DBUS_USE_NEW_API
+    dbus_bus_request_name (bus, DBUS_SERVICE_AVAHI, 0, &error);
+#else
     dbus_bus_acquire_service (bus, DBUS_SERVICE_AVAHI, 0, &error);
+#endif
 
     if (dbus_error_is_set (&error))
     {
         g_warning ("dbus_error_is_set (): %s", error.message);
         dbus_error_free (&error);
 
-        goto finish;
+       return 1;
     }
 
     dbus_connection_add_filter (bus, signal_filter, loop, NULL);
@@ -147,8 +165,10 @@ dbus_protocol_setup ()
         g_warning ("dbus_bus_add_match (): %s", error.message);
         dbus_error_free (&error);
 
-        goto finish;
+       return 1;
     }
+
+    return 0;
 }
 
 void