summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-08-02 14:58:33 +0000
committerHavoc Pennington <hp@redhat.com>2003-08-02 14:58:33 +0000
commitff8908f1e98eda82b0a77abb449ecff36abf14aa (patch)
tree635f5ea825d337e55cc84d2109e703b3d6332974
parent9c5d01f0fe1ba855c0f7518c4f27d75a609b8faa (diff)
downloaddbus-ff8908f1e98eda82b0a77abb449ecff36abf14aa.tar.gz
2003-08-02 Havoc Pennington <hp@pobox.com>
* 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
-rw-r--r--ChangeLog9
-rw-r--r--dbus/dbus-message.c45
-rw-r--r--dbus/dbus-message.h6
-rw-r--r--dbus/dbus-protocol.h3
-rw-r--r--doc/dbus-specification.sgml7
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 <hp@pobox.com>
+
+ * 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 <hp@pobox.com>
* 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 @@
</row>
<row>
<entry>3</entry>
- <entry>Error.</entry>
+ <entry>Error reply. If the first argument exists and is a
+ string, it is an error message.</entry>
</row>
<row>
<entry>4</entry>
@@ -231,10 +232,6 @@
<tbody>
<row>
<entry>0x1</entry>
- <entry>This message is an error reply. If the first argument exists and is a string, it is an error message.</entry>
- </row>
- <row>
- <entry>0x2</entry>
<entry>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