summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2013-09-16 14:16:13 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2013-11-27 15:35:42 +0000
commit0fa46f68b8bbd2913ac9620328518fc5f9e16f85 (patch)
treed4b24e6913f25e914a1d466a9b4c92ee7b851c81 /doc
parent969f3918dcc4a4f6ad03dd078f9bb6a108846513 (diff)
downloaddbus-0fa46f68b8bbd2913ac9620328518fc5f9e16f85.tar.gz
Do not require messages without INTERFACE to be dispatched
Previously, if we have interfaces: interface com.example.foo: method Ambiguous() interface com.example.bar: method Ambiguous() method Unambiguous() implementations were required to deliver a message with no INTERFACE and METHOD=Unambiguous to "bar". A message with no INTERFACE and METHOD=Ambiguous could either be delivered to "foo", delivered to "bar" or treated as an error. Relax this to allow an error for the unambiguous case, too, and strongly recommend specifying the interface (which is best-practice). Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68597 Reviewed-by: Chengwei Yang <chengwei.yang@intel.com> Vaguely-acked-by: Thiago Macieira, David Zeuthen [and desrt objected that it didn't go far enough] Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Diffstat (limited to 'doc')
-rw-r--r--doc/dbus-specification.xml16
1 files changed, 10 insertions, 6 deletions
diff --git a/doc/dbus-specification.xml b/doc/dbus-specification.xml
index 125001ad..865a8bff 100644
--- a/doc/dbus-specification.xml
+++ b/doc/dbus-specification.xml
@@ -1688,12 +1688,16 @@
<para>
A method call message is required to have a <literal>MEMBER</literal> header field
indicating the name of the method. Optionally, the message has an
- <literal>INTERFACE</literal> field giving the interface the method is a part of. In the
- absence of an <literal>INTERFACE</literal> field, if two interfaces on the same object have
- a method with the same name, it is undefined which of the two methods
- will be invoked. Implementations may also choose to return an error in
- this ambiguous case. However, if a method name is unique
- implementations must not require an interface field.
+ <literal>INTERFACE</literal> field giving the interface the method is a part of.
+ Including the <literal>INTERFACE</literal> in all method call
+ messages is strongly recommended.
+ </para>
+ <para>
+ In the absence of an <literal>INTERFACE</literal> field, if two
+ or more interfaces on the same object have a method with the same
+ name, it is undefined which of those methods will be invoked.
+ Implementations may choose to either return an error, or deliver the
+ message as though it had an arbitrary one of those interfaces.
</para>
<para>
Method call messages also include a <literal>PATH</literal> field