diff options
author | Havoc Pennington <hp@redhat.com> | 2003-03-15 20:47:16 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-03-15 20:47:16 +0000 |
commit | f587ce7845edb0eb01451368d01b5bc86b5904cd (patch) | |
tree | f3a549cd61df701882d818b5fc452b1438097f5b /bus/connection.c | |
parent | f05f87a825ab8ed5273674a7f65521ffc526f0d2 (diff) |
2003-03-15 Havoc Pennington <hp@pobox.com>
Make it pass the Hello handling test including all OOM codepaths.
Now to do other messages...
* bus/services.c (bus_service_remove_owner): fix crash when
removing owner from an empty list of owners
(bus_registry_ensure): don't leave service in the list of
a connection's owned services if we fail to put the service
in the hash table.
* bus/connection.c (bus_connection_preallocate_oom_error): set
error flag on the OOM error.
* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
handle _dbus_transport_set_connection failure
* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
to create watches up front and simply enable/disable them as
needed.
(unix_connection_set): this can now fail on OOM
* dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
of enabling/disabling a watch or timeout.
* bus/loop.c (bus_loop_iterate): don't touch disabled
watches/timeouts
* glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
Diffstat (limited to 'bus/connection.c')
-rw-r--r-- | bus/connection.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/bus/connection.c b/bus/connection.c index 1c699c6f..ee3612ae 100644 --- a/bus/connection.c +++ b/bus/connection.c @@ -107,13 +107,13 @@ bus_connection_disconnected (DBusConnection *connection) /* no more watching */ if (!dbus_connection_set_watch_functions (connection, - NULL, NULL, + NULL, NULL, NULL, connection, NULL)) _dbus_assert_not_reached ("setting watch functions to NULL failed"); if (!dbus_connection_set_timeout_functions (connection, - NULL, NULL, + NULL, NULL, NULL, connection, NULL)) _dbus_assert_not_reached ("setting timeout functions to NULL failed"); @@ -288,6 +288,7 @@ bus_connections_setup_connection (BusConnections *connections, if (!dbus_connection_set_watch_functions (connection, (DBusAddWatchFunction) add_connection_watch, (DBusRemoveWatchFunction) remove_connection_watch, + NULL, connection, NULL)) { @@ -298,6 +299,7 @@ bus_connections_setup_connection (BusConnections *connections, if (!dbus_connection_set_timeout_functions (connection, (DBusAddTimeoutFunction) add_connection_timeout, (DBusRemoveTimeoutFunction) remove_connection_timeout, + NULL, connection, NULL)) { dbus_connection_disconnect (connection); @@ -442,6 +444,8 @@ bus_connection_preallocate_oom_error (DBusConnection *connection) return FALSE; } + dbus_message_set_is_error (message, TRUE); + /* set reply serial to placeholder value just so space is already allocated * for it. */ @@ -603,6 +607,9 @@ bus_transaction_send_message (BusTransaction *transaction, BusConnectionData *d; DBusList *link; + _dbus_verbose (" trying to add message %s to transaction\n", + dbus_message_get_name (message)); + if (!dbus_connection_get_is_connected (connection)) return TRUE; /* silently ignore disconnected connections */ @@ -789,6 +796,9 @@ bus_transaction_send_error_reply (BusTransaction *transaction, _dbus_assert (error != NULL); _DBUS_ASSERT_ERROR_IS_SET (error); + + _dbus_verbose (" trying to add error %s to transaction\n", + error->name); reply = dbus_message_new_error_reply (in_reply_to, error->name, |