summaryrefslogtreecommitdiffstats
path: root/bus/connection.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-10-28 23:51:24 +0000
committerHavoc Pennington <hp@redhat.com>2003-10-28 23:51:24 +0000
commitbebc830fc47cbf191f7518dfd0cd88c4938c2dbf (patch)
tree929dcab1c067ca35be2d51ce8a729098bf33dc69 /bus/connection.c
parente11ae7246655e59f8e04d1ffcb3788176a6d98b8 (diff)
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.c14
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