*
*/
#include "loop.h"
+#include "connection.h"
#include <dbus/dbus-list.h>
-#include <dbus/dbus.h>
-
-static DBusList *connections = NULL;
-
-static void
-connection_error_handler (DBusConnection *connection,
- DBusResultCode error_code,
- void *data)
-{
- _dbus_warn ("Error on connection: %s\n",
- dbus_result_to_string (error_code));
-
- /* we don't want to be called again since we're dropping the connection */
- dbus_connection_set_error_function (connection, NULL, NULL, NULL);
-
- _dbus_list_remove (&connections, connection);
- dbus_connection_unref (connection);
-}
-
-static void
-connection_watch_callback (DBusWatch *watch,
- unsigned int condition,
- void *data)
-{
- DBusConnection *connection = data;
-
- dbus_connection_handle_watch (connection, watch, condition);
-}
static void
server_watch_callback (DBusWatch *watch,
}
static void
-add_connection_watch (DBusWatch *watch,
- DBusConnection *connection)
-{
- bus_loop_add_watch (watch, connection_watch_callback, connection,
- NULL);
-}
-
-static void
-remove_connection_watch (DBusWatch *watch,
- DBusConnection *connection)
-{
- bus_loop_remove_watch (watch, connection_watch_callback, connection);
-}
-
-static void
add_server_watch (DBusWatch *watch,
DBusServer *server)
{
bus_loop_remove_watch (watch, server_watch_callback, server);
}
-static dbus_bool_t
-setup_connection (DBusConnection *connection)
-{
- if (!_dbus_list_append (&connections, connection))
- {
- dbus_connection_disconnect (connection);
- return FALSE;
- }
-
- dbus_connection_ref (connection);
-
- dbus_connection_set_watch_functions (connection,
- (DBusAddWatchFunction) add_connection_watch,
- (DBusRemoveWatchFunction) remove_connection_watch,
- connection,
- NULL);
-
- dbus_connection_set_error_function (connection,
- connection_error_handler,
- NULL, NULL);
-
- return TRUE;
-}
-
static void
setup_server (DBusServer *server)
{
DBusConnection *new_connection,
void *data)
{
- if (!setup_connection (new_connection))
+ if (!bus_connection_setup (new_connection))
; /* we won't have ref'd the connection so it will die */
}
setup_server (server);
+ bus_connection_init ();
+
dbus_server_set_new_connection_function (server,
new_connection_callback,
NULL, NULL);