summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-transport-unix.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-03-16 20:16:47 +0000
committerHavoc Pennington <hp@redhat.com>2003-03-16 20:16:47 +0000
commitebb57e719c32becd95a1efe3dd269c21e5a011b6 (patch)
tree1712e557855a60576828b45683505d329631a462 /dbus/dbus-transport-unix.c
parent021305e5686fc4847fec942922d2115ae5c9c2bb (diff)
2003-03-16 Havoc Pennington <hp@pobox.com>
* dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak this. always run the test suite before commit... * bus/*: adapt to DBusConnection API changes * glib/dbus-gmain.c: adapt to DBusConnection API changes, requires renaming stuff to avoid dbus_connection_dispatch name conflict. * dbus/dbus-transport.c (_dbus_transport_queue_messages): new function * dbus/dbus-message.c (_dbus_message_loader_queue_messages): separate from _dbus_message_loader_return_buffer() * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove this, because it's now always broken to use; the number of messages in queue vs. the number still buffered by the message loader is undefined/meaningless. Should use dbus_connection_get_dispatch_state(). (dbus_connection_dispatch): rename from dbus_connection_dispatch_message
Diffstat (limited to 'dbus/dbus-transport-unix.c')
-rw-r--r--dbus/dbus-transport-unix.c36
1 files changed, 2 insertions, 34 deletions
diff --git a/dbus/dbus-transport-unix.c b/dbus/dbus-transport-unix.c
index ed68658b..9ea5ce11 100644
--- a/dbus/dbus-transport-unix.c
+++ b/dbus/dbus-transport-unix.c
@@ -178,37 +178,6 @@ do_io_error (DBusTransport *transport)
_dbus_transport_unref (transport);
}
-static void
-queue_messages (DBusTransport *transport)
-{
- DBusList *link;
-
- /* Queue any messages */
- while ((link = _dbus_message_loader_pop_message_link (transport->loader)))
- {
- DBusMessage *message;
-
- message = link->data;
-
- _dbus_verbose ("queueing received message %p\n", message);
-
- _dbus_message_add_size_counter (message, transport->live_messages_size);
-
- /* pass ownership of link and message ref to connection */
- _dbus_connection_queue_received_message_link (transport->connection,
- link);
- }
-
- if (_dbus_message_loader_get_is_corrupted (transport->loader))
- {
- _dbus_verbose ("Corrupted message stream, disconnecting\n");
- do_io_error (transport);
- }
-
- /* check read watch in case we've now exceeded max outstanding messages */
- check_read_watch (transport);
-}
-
/* return value is whether we successfully read any new data. */
static dbus_bool_t
read_data_into_auth (DBusTransport *transport)
@@ -398,8 +367,6 @@ recover_unused_bytes (DBusTransport *transport)
orig_len);
}
- queue_messages (transport);
-
return;
nomem:
@@ -777,7 +744,8 @@ do_reading (DBusTransport *transport)
total += bytes_read;
- queue_messages (transport);
+ if (_dbus_transport_queue_messages (transport) == DBUS_DISPATCH_NEED_MEMORY)
+ goto out;
/* Try reading more data until we get EAGAIN and return, or
* exceed max bytes per iteration. If in blocking mode of