summaryrefslogtreecommitdiffstats
path: root/bus/main.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-01-06 01:08:14 +0000
committerHavoc Pennington <hp@redhat.com>2003-01-06 01:08:14 +0000
commit96a9f80300b7794475a5451a60a07555ea3526be (patch)
treeb70ac0b9f56edeebab51aa5389894c36cace2fe0 /bus/main.c
parentc92339de11a2f27198aee3b4242aa6fccc12a004 (diff)
2003-01-05 Havoc Pennington <hp@pobox.com>
* bus/connection.c: implement routines for handling connections, first thing is keeping a list of owned services on each connection and setting up watches etc. * bus/services.c: implement a mapping from service names to lists of connections * dbus/dbus-hash.c: add DBUS_HASH_POINTER * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions to use static mutexes for global data * dbus/dbus-connection.c (dbus_connection_set_data): add new collection of functions to set/get application-specific data on the DBusConnection.
Diffstat (limited to 'bus/main.c')
-rw-r--r--bus/main.c72
1 files changed, 4 insertions, 68 deletions
diff --git a/bus/main.c b/bus/main.c
index 199a10f0..77fb1440 100644
--- a/bus/main.c
+++ b/bus/main.c
@@ -21,35 +21,8 @@
*
*/
#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);