2003-01-05 Havoc Pennington <hp@pobox.com>
[platform/upstream/dbus.git] / bus / main.c
index 199a10f..77fb144 100644 (file)
  *
  */
 #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,
@@ -62,21 +35,6 @@ 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)
 {
@@ -91,30 +49,6 @@ remove_server_watch (DBusWatch      *watch,
   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)
 {
@@ -130,7 +64,7 @@ new_connection_callback (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 */
 }
 
@@ -156,6 +90,8 @@ main (int argc, char **argv)
 
   setup_server (server);
 
+  bus_connection_init ();
+  
   dbus_server_set_new_connection_function (server,
                                            new_connection_callback,
                                            NULL, NULL);