From 64f5ae1a79a8cd86a3aae55e485729da438d84d0 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Tue, 14 Oct 2003 05:16:56 +0000 Subject: 2003-10-14 Havoc Pennington * bus/connection.c: implement pending reply tracking using BusExpireList * bus/bus.c (bus_context_check_security_policy): verify that a reply is pending in order to allow a reply to be sent. Deny messages of unknown type. * bus/dbus-daemon-1.1.in: update to mention new resource limits * bus/bus.c (bus_context_get_max_replies_per_connection): new (bus_context_get_reply_timeout): new --- bus/expirelist.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'bus/expirelist.c') diff --git a/bus/expirelist.c b/bus/expirelist.c index f732ebd1..a1ce226d 100644 --- a/bus/expirelist.c +++ b/bus/expirelist.c @@ -141,7 +141,13 @@ do_expiration_with_current_time (BusExpireList *list, if (elapsed >= (double) list->expire_after) { _dbus_verbose ("Expiring an item %p\n", item); - (* list->expire_func) (list, item, list->data); + + /* If the expire function fails, we just end up expiring + * this item next time we walk through the list. Which is in + * indeterminate time since we don't know what next_interval + * will be. + */ + (* list->expire_func) (list, link, list->data); } else { @@ -201,12 +207,12 @@ typedef struct static void test_expire_func (BusExpireList *list, - BusExpireItem *item, + DBusList *link, void *data) { TestExpireItem *t; - t = (TestExpireItem*) item; + t = (TestExpireItem*) link->data; t->expire_count += 1; } -- cgit