summaryrefslogtreecommitdiff
path: root/dbus/dbus-connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'dbus/dbus-connection.c')
-rw-r--r--dbus/dbus-connection.c74
1 files changed, 38 insertions, 36 deletions
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index dfc5d44b..80fdf1f6 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -38,6 +38,7 @@
#include "dbus-string.h"
#include "dbus-pending-call.h"
#include "dbus-object-tree.h"
+#include "dbus-marshal.h"
#if 0
#define CONNECTION_LOCK(connection) do { \
@@ -357,7 +358,7 @@ _dbus_connection_queue_received_message_link (DBusConnection *connection,
_dbus_connection_wakeup_mainloop (connection);
- _dbus_verbose ("Message %p (%d %s %s %s '%s' reply to %u) added to incoming queue %p, %d incoming\n",
+ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to incoming queue %p, %d incoming\n",
message,
dbus_message_get_type (message),
dbus_message_get_path (message),
@@ -368,7 +369,6 @@ _dbus_connection_queue_received_message_link (DBusConnection *connection,
dbus_message_get_member (message) :
"no member",
dbus_message_get_signature (message),
- dbus_message_get_reply_serial (message),
connection,
connection->n_incoming);
}
@@ -1007,8 +1007,8 @@ _dbus_connection_new_for_transport (DBusTransport *transport)
DBusConnection *
_dbus_connection_ref_unlocked (DBusConnection *connection)
{
- _dbus_assert (connection != NULL);
- _dbus_assert (connection->generation == _dbus_current_generation);
+ _dbus_return_val_if_fail (connection != NULL, NULL);
+ _dbus_return_val_if_fail (connection->generation == _dbus_current_generation, NULL);
#ifdef DBUS_HAVE_ATOMIC_INT
_dbus_atomic_inc (&connection->refcount);
@@ -1445,7 +1445,7 @@ _dbus_connection_preallocate_send_unlocked (DBusConnection *connection)
{
DBusPreallocatedSend *preallocated;
- _dbus_assert (connection != NULL);
+ _dbus_return_val_if_fail (connection != NULL, NULL);
preallocated = dbus_new (DBusPreallocatedSend, 1);
if (preallocated == NULL)
@@ -1540,12 +1540,11 @@ dbus_connection_free_preallocated_send (DBusConnection *connection,
dbus_free (preallocated);
}
-/* Called with lock held, does not update dispatch status */
static void
-_dbus_connection_send_preallocated_unlocked_no_update (DBusConnection *connection,
- DBusPreallocatedSend *preallocated,
- DBusMessage *message,
- dbus_uint32_t *client_serial)
+_dbus_connection_send_preallocated_unlocked (DBusConnection *connection,
+ DBusPreallocatedSend *preallocated,
+ DBusMessage *message,
+ dbus_uint32_t *client_serial)
{
dbus_uint32_t serial;
const char *sig;
@@ -1565,8 +1564,17 @@ _dbus_connection_send_preallocated_unlocked_no_update (DBusConnection *con
connection->n_outgoing += 1;
sig = dbus_message_get_signature (message);
+#ifndef DBUS_DISABLE_ASSERT
+ {
+ DBusString foo;
+ _dbus_verbose (" validating signature '%s'\n", sig);
+ _dbus_string_init_const (&foo, sig);
+ _dbus_assert (_dbus_string_validate_signature (&foo, 0,
+ _dbus_string_get_length (&foo)));
+ }
+#endif
- _dbus_verbose ("Message %p (%d %s %s %s '%s') for %s added to outgoing queue %p, %d pending to send\n",
+ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to outgoing queue %p, %d pending to send\n",
message,
dbus_message_get_type (message),
dbus_message_get_path (message),
@@ -1577,9 +1585,6 @@ _dbus_connection_send_preallocated_unlocked_no_update (DBusConnection *con
dbus_message_get_member (message) :
"no member",
sig,
- dbus_message_get_destination (message) ?
- dbus_message_get_destination (message) :
- "null",
connection,
connection->n_outgoing);
@@ -1595,9 +1600,6 @@ _dbus_connection_send_preallocated_unlocked_no_update (DBusConnection *con
if (client_serial)
*client_serial = dbus_message_get_serial (message);
}
-
- _dbus_verbose ("Message %p serial is %u\n",
- message, dbus_message_get_serial (message));
_dbus_message_lock (message);
@@ -1621,9 +1623,9 @@ _dbus_connection_send_preallocated_and_unlock (DBusConnection *connection,
{
DBusDispatchStatus status;
- _dbus_connection_send_preallocated_unlocked_no_update (connection,
- preallocated,
- message, client_serial);
+ _dbus_connection_send_preallocated_unlocked (connection,
+ preallocated,
+ message, client_serial);
status = _dbus_connection_get_dispatch_status_unlocked (connection);
@@ -1667,9 +1669,9 @@ dbus_connection_send_preallocated (DBusConnection *connection,
}
static dbus_bool_t
-_dbus_connection_send_unlocked_no_update (DBusConnection *connection,
- DBusMessage *message,
- dbus_uint32_t *client_serial)
+_dbus_connection_send_unlocked (DBusConnection *connection,
+ DBusMessage *message,
+ dbus_uint32_t *client_serial)
{
DBusPreallocatedSend *preallocated;
@@ -1680,14 +1682,15 @@ _dbus_connection_send_unlocked_no_update (DBusConnection *connection,
if (preallocated == NULL)
return FALSE;
- _dbus_connection_send_preallocated_unlocked_no_update (connection,
- preallocated,
- message,
- client_serial);
+
+ _dbus_connection_send_preallocated_unlocked (connection,
+ preallocated,
+ message,
+ client_serial);
return TRUE;
}
-dbus_bool_t
+static dbus_bool_t
_dbus_connection_send_and_unlock (DBusConnection *connection,
DBusMessage *message,
dbus_uint32_t *client_serial)
@@ -1867,7 +1870,7 @@ dbus_connection_send_with_reply (DBusConnection *connection,
pending))
goto error;
- if (!_dbus_connection_send_unlocked_no_update (connection, message, NULL))
+ if (!_dbus_connection_send_unlocked (connection, message, NULL))
{
_dbus_connection_detach_pending_call_and_unlock (connection,
pending);
@@ -1944,9 +1947,9 @@ _dbus_connection_block_for_reply (DBusConnection *connection,
long tv_sec, tv_usec;
DBusDispatchStatus status;
- _dbus_assert (connection != NULL);
- _dbus_assert (client_serial != 0);
- _dbus_assert (timeout_milliseconds >= 0 || timeout_milliseconds == -1);
+ _dbus_return_val_if_fail (connection != NULL, NULL);
+ _dbus_return_val_if_fail (client_serial != 0, NULL);
+ _dbus_return_val_if_fail (timeout_milliseconds >= 0 || timeout_milliseconds == -1, FALSE);
if (timeout_milliseconds == -1)
timeout_milliseconds = _DBUS_DEFAULT_TIMEOUT_VALUE;
@@ -2788,9 +2791,8 @@ dbus_connection_dispatch (DBusConnection *connection)
}
if (!_dbus_string_append_printf (&str,
- "Method \"%s\" with signature \"%s\" on interface \"%s\" doesn't exist\n",
+ "Method \"%s\" on interface \"%s\" doesn't exist\n",
dbus_message_get_member (message),
- dbus_message_get_signature (message),
dbus_message_get_interface (message)))
{
_dbus_string_free (&str);
@@ -2821,8 +2823,8 @@ dbus_connection_dispatch (DBusConnection *connection)
goto out;
}
- _dbus_connection_send_preallocated_unlocked_no_update (connection, preallocated,
- reply, NULL);
+ _dbus_connection_send_preallocated_unlocked (connection, preallocated,
+ reply, NULL);
dbus_message_unref (reply);