summaryrefslogtreecommitdiffstats
path: root/bus
diff options
context:
space:
mode:
Diffstat (limited to 'bus')
-rw-r--r--bus/Makefile.am2
-rw-r--r--bus/connection.c26
-rw-r--r--bus/test-main.c6
-rw-r--r--bus/test.h1
4 files changed, 15 insertions, 20 deletions
diff --git a/bus/Makefile.am b/bus/Makefile.am
index bc728801..a6c4b17b 100644
--- a/bus/Makefile.am
+++ b/bus/Makefile.am
@@ -40,6 +40,8 @@ BUS_SOURCES= \
dispatch.h \
driver.c \
driver.h \
+ expirelist.c \
+ expirelist.h \
policy.c \
policy.h \
services.c \
diff --git a/bus/connection.c b/bus/connection.c
index a824576c..68e4158a 100644
--- a/bus/connection.c
+++ b/bus/connection.c
@@ -26,6 +26,7 @@
#include "services.h"
#include "utils.h"
#include "signals.h"
+#include "expirelist.h"
#include <dbus/dbus-list.h>
#include <dbus/dbus-hash.h>
#include <dbus/dbus-timeout.h>
@@ -672,8 +673,9 @@ bus_connections_expire_incomplete (BusConnections *connections)
_dbus_assert (d != NULL);
- elapsed = ((double) tv_sec - (double) d->connection_tv_sec) * 1000.0 +
- ((double) tv_usec - (double) d->connection_tv_usec) / 1000.0;
+ elapsed = ELAPSED_MILLISECONDS_SINCE (d->connection_tv_sec,
+ d->connection_tv_usec,
+ tv_sec, tv_usec);
if (elapsed >= (double) auth_timeout)
{
@@ -693,25 +695,9 @@ bus_connections_expire_incomplete (BusConnections *connections)
link = next;
}
}
-
- if (next_interval >= 0)
- {
- _dbus_timeout_set_interval (connections->expire_timeout,
- next_interval);
- _dbus_timeout_set_enabled (connections->expire_timeout, TRUE);
- _dbus_verbose ("Enabled incomplete connections timeout with interval %d, %d incomplete connections\n",
- next_interval, connections->n_incomplete);
- }
- else if (dbus_timeout_get_enabled (connections->expire_timeout))
- {
- _dbus_timeout_set_enabled (connections->expire_timeout, FALSE);
-
- _dbus_verbose ("Disabled incomplete connections timeout, %d incomplete connections\n",
- connections->n_incomplete);
- }
- else
- _dbus_verbose ("No need to disable incomplete connections timeout\n");
+ bus_expire_timeout_set_interval (connections->expire_timeout,
+ next_interval);
}
static dbus_bool_t
diff --git a/bus/test-main.c b/bus/test-main.c
index 3f280d4e..31a9e158 100644
--- a/bus/test-main.c
+++ b/bus/test-main.c
@@ -76,6 +76,12 @@ main (int argc, char **argv)
if (!_dbus_threads_init_debug ())
die ("initializing debug threads");
#endif
+
+ printf ("%s: Running expire list test\n", argv[0]);
+ if (!bus_expire_list_test (&test_data_dir))
+ die ("expire list");
+
+ check_memleaks (argv[0]);
printf ("%s: Running config file parser test\n", argv[0]);
if (!bus_config_parser_test (&test_data_dir))
diff --git a/bus/test.h b/bus/test.h
index fc972fe3..585f1c8e 100644
--- a/bus/test.h
+++ b/bus/test.h
@@ -37,6 +37,7 @@ dbus_bool_t bus_dispatch_sha1_test (const DBusString *test_data_d
dbus_bool_t bus_policy_test (const DBusString *test_data_dir);
dbus_bool_t bus_config_parser_test (const DBusString *test_data_dir);
dbus_bool_t bus_signals_test (const DBusString *test_data_dir);
+dbus_bool_t bus_expire_list_test (const DBusString *test_data_dir);
dbus_bool_t bus_setup_debug_client (DBusConnection *connection);
void bus_test_clients_foreach (BusConnectionForeachFunction function,
void *data);