+static void
+bus_check_connection_overflow (BusContext *context,
+ DBusList *connections)
+{
+ BusTransaction *transaction;
+ DBusConnection *recipient;
+ DBusError error;
+
+ transaction = bus_transaction_new (context);
+ if (transaction == NULL)
+ return;
+
+ dbus_error_init (&error);
+
+ while ((recipient = _dbus_list_pop_first (&connections)))
+ if (_dbus_connection_is_overflowed (recipient))
+ {
+ if (!bus_driver_send_connection_overflow (recipient, transaction, &error))
+ {
+ bus_transaction_cancel_and_free (transaction);
+ transaction = NULL;
+ break;
+ }
+ }
+
+ if (transaction != NULL)
+ bus_transaction_execute_and_free (transaction);
+}
+