diff options
author | Havoc Pennington <hp@redhat.com> | 2003-10-28 23:51:24 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-10-28 23:51:24 +0000 |
commit | bebc830fc47cbf191f7518dfd0cd88c4938c2dbf (patch) | |
tree | 929dcab1c067ca35be2d51ce8a729098bf33dc69 /bus/connection.c | |
parent | e11ae7246655e59f8e04d1ffcb3788176a6d98b8 (diff) | |
download | dbus-bebc830fc47cbf191f7518dfd0cd88c4938c2dbf.tar.gz |
2003-10-28 Havoc Pennington <hp@redhat.com>
* bus/expirelist.c (do_expiration_with_current_time): detect
failure of the expire_func due to OOM
* bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
* bus/dispatch.c (check_send_exit_to_service): fix to handle the
NoReply error that's now created by the bus when the service exits
Diffstat (limited to 'bus/connection.c')
-rw-r--r-- | bus/connection.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/bus/connection.c b/bus/connection.c index db9cbaa8..71102db1 100644 --- a/bus/connection.c +++ b/bus/connection.c @@ -80,9 +80,9 @@ typedef struct int stamp; /**< connections->stamp last time we were traversed */ } BusConnectionData; -static void bus_pending_reply_expired (BusExpireList *list, - DBusList *link, - void *data); +static dbus_bool_t bus_pending_reply_expired (BusExpireList *list, + DBusList *link, + void *data); static void bus_connection_drop_pending_replies (BusConnections *connections, DBusConnection *connection); @@ -1392,7 +1392,7 @@ bus_pending_reply_send_no_reply (BusConnections *connections, return retval; } -static void +static dbus_bool_t bus_pending_reply_expired (BusExpireList *list, DBusList *link, void *data) @@ -1414,20 +1414,22 @@ bus_pending_reply_expired (BusExpireList *list, transaction = bus_transaction_new (connections->context); if (transaction == NULL) - return; + return FALSE; if (!bus_pending_reply_send_no_reply (connections, transaction, pending)) { bus_transaction_cancel_and_free (transaction); - return; + return FALSE; } _dbus_list_remove_link (&connections->pending_replies->items, link); bus_pending_reply_free (pending); bus_transaction_execute_and_free (transaction); + + return TRUE; } static void |