From ff8908f1e98eda82b0a77abb449ecff36abf14aa Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 2 Aug 2003 14:58:33 +0000 Subject: 2003-08-02 Havoc Pennington * dbus/dbus-message.c (dbus_message_get_no_reply) (dbus_message_set_no_reply): add these and remove set_is_error/get_is_error * dbus/dbus-protocol.h, doc/dbus-specification.sgml: remove the ERROR flag, since there's now an ERROR type --- ChangeLog | 9 +++++++++ dbus/dbus-message.c | 45 +++++++++++++++++++++++---------------------- dbus/dbus-message.h | 6 +++--- dbus/dbus-protocol.h | 3 +-- doc/dbus-specification.sgml | 7 ++----- 5 files changed, 38 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e961823..a5051388 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2003-08-02 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_get_no_reply) + (dbus_message_set_no_reply): add these and remove + set_is_error/get_is_error + + * dbus/dbus-protocol.h, doc/dbus-specification.sgml: + remove the ERROR flag, since there's now an ERROR type + 2003-08-01 Havoc Pennington * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index c39ca3b4..8ea653f0 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -1117,8 +1117,6 @@ dbus_message_new_error (DBusMessage *reply_to, return NULL; } } - - dbus_message_set_is_error (message, TRUE); return message; } @@ -3764,15 +3762,18 @@ dbus_message_set_sender (DBusMessage *message, } /** - * Sets a flag indicating that the message is an error reply - * message, i.e. an "exception" rather than a normal response. + * Sets a flag indicating that the message does not want a reply; if + * this flag is set, the other end of the connection may (but is not + * required to) optimize by not sending method return or error + * replies. If this flag is set, there is no way to know whether the + * message successfully arrived at the remote end. * * @param message the message - * @param is_error_reply #TRUE if this is an error message. + * @param no_reply #TRUE if no reply is desired */ void -dbus_message_set_is_error (DBusMessage *message, - dbus_bool_t is_error_reply) +dbus_message_set_no_reply (DBusMessage *message, + dbus_bool_t no_reply) { char *header; @@ -3781,21 +3782,21 @@ dbus_message_set_is_error (DBusMessage *message, header = _dbus_string_get_data_len (&message->header, FLAGS_OFFSET, 1); - if (is_error_reply) - *header |= DBUS_HEADER_FLAG_ERROR; + if (no_reply) + *header |= DBUS_HEADER_FLAG_NO_REPLY_EXPECTED; else - *header &= ~DBUS_HEADER_FLAG_ERROR; + *header &= ~DBUS_HEADER_FLAG_NO_REPLY_EXPECTED; } /** - * Returns #TRUE if the message is an error - * reply to some previous message we sent. + * Returns #TRUE if the message does not expect + * a reply. * * @param message the message - * @returns #TRUE if the message is an error + * @returns #TRUE if the message sender isn't waiting for a reply */ dbus_bool_t -dbus_message_get_is_error (DBusMessage *message) +dbus_message_get_no_reply (DBusMessage *message) { const char *header; @@ -3803,7 +3804,7 @@ dbus_message_get_is_error (DBusMessage *message) header = _dbus_string_get_const_data_len (&message->header, FLAGS_OFFSET, 1); - return (*header & DBUS_HEADER_FLAG_ERROR) != 0; + return (*header & DBUS_HEADER_FLAG_NO_REPLY_EXPECTED) != 0; } /** @@ -3908,7 +3909,7 @@ dbus_message_has_sender (DBusMessage *message, /** * Sets a #DBusError based on the contents of the given * message. The error is only set if the message - * is an error message, as in dbus_message_get_is_error(). + * is an error message, as in DBUS_MESSAGE_TYPE_ERROR. * The name of the error is set to the name of the message, * and the error message is set to the first argument * if the argument exists and is a string. @@ -3931,7 +3932,7 @@ dbus_set_error_from_message (DBusError *error, _dbus_return_val_if_fail (message != NULL, FALSE); _dbus_return_val_if_error_is_set (error, FALSE); - if (!dbus_message_get_is_error (message)) + if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_ERROR) return FALSE; str = NULL; @@ -5921,11 +5922,11 @@ _dbus_message_test (const char *test_data_dir) _dbus_assert (dbus_message_get_serial (message) == 1234); _dbus_assert (dbus_message_has_destination (message, "org.freedesktop.DBus.Test")); - _dbus_assert (dbus_message_get_is_error (message) == FALSE); - dbus_message_set_is_error (message, TRUE); - _dbus_assert (dbus_message_get_is_error (message) == TRUE); - dbus_message_set_is_error (message, FALSE); - _dbus_assert (dbus_message_get_is_error (message) == FALSE); + _dbus_assert (dbus_message_get_no_reply (message) == FALSE); + dbus_message_set_no_reply (message, TRUE); + _dbus_assert (dbus_message_get_no_reply (message) == TRUE); + dbus_message_set_no_reply (message, FALSE); + _dbus_assert (dbus_message_get_no_reply (message) == FALSE); dbus_message_unref (message); diff --git a/dbus/dbus-message.h b/dbus/dbus-message.h index d2c14c78..de5dc833 100644 --- a/dbus/dbus-message.h +++ b/dbus/dbus-message.h @@ -75,9 +75,9 @@ const char* dbus_message_get_destination (DBusMessage *message); dbus_bool_t dbus_message_set_sender (DBusMessage *message, const char *sender); const char* dbus_message_get_sender (DBusMessage *message); -void dbus_message_set_is_error (DBusMessage *message, - dbus_bool_t is_error_reply); -dbus_bool_t dbus_message_get_is_error (DBusMessage *message); +void dbus_message_set_no_reply (DBusMessage *message, + dbus_bool_t no_reply); +dbus_bool_t dbus_message_get_no_reply (DBusMessage *message); dbus_bool_t dbus_message_has_name (DBusMessage *message, const char *name); dbus_bool_t dbus_message_has_destination (DBusMessage *message, diff --git a/dbus/dbus-protocol.h b/dbus/dbus-protocol.h index dcb7a042..e027cf56 100644 --- a/dbus/dbus-protocol.h +++ b/dbus/dbus-protocol.h @@ -68,8 +68,7 @@ extern "C" { #define DBUS_MESSAGE_TYPE_SIGNAL 4 /* Header flags */ -#define DBUS_HEADER_FLAG_ERROR 0x1 -#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x2 +#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x1 /* Header fields */ #define DBUS_HEADER_FIELD_NAME "name" diff --git a/doc/dbus-specification.sgml b/doc/dbus-specification.sgml index a53be53d..0dd4fbc4 100644 --- a/doc/dbus-specification.sgml +++ b/doc/dbus-specification.sgml @@ -208,7 +208,8 @@ 3 - Error. + Error reply. If the first argument exists and is a + string, it is an error message. 4 @@ -231,10 +232,6 @@ 0x1 - This message is an error reply. If the first argument exists and is a string, it is an error message. - - - 0x2 This message does not expect method return replies or error replies; the reply can be omitted as an optimization. However, it is compliant with this specification -- cgit