Bug 57292 - D-Bus Introspection XML file not matching
Summary: D-Bus Introspection XML file not matching
Status: RESOLVED FIXED
Alias: None
Product: SyncEvolution
Classification: Unclassified
Component: SyncEvolution (show other bugs)
Version: 1.3.99.1
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: Patrick Ohly
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-19 20:18 UTC by Eugenio Parodi
Modified: 2012-11-30 14:07 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Eugenio Parodi 2012-11-19 20:18:54 UTC
Trying to retrieve the "D-Bus Introspection XML file" with this command:

  dbus-send --session \
            --dest=org._01.pim.contacts \
            --print-reply=literal \
            /org/01/pim/contacts \
            org.freedesktop.DBus.Introspectable.Introspect

I noticed that some of the functions seems incomplete
(some return values are not shown as expected):

1)   GetSortOrder
     <method name="GetSortOrder"/>
Should be
     <method name="GetSortOrder">                                         
          <arg type="s" direction="out"/>
     </method>

2)   GetAllPeers
     <method name="GetAllPeers"/>
Should be (I think)
     <method name="GetAllPeers">
          <arg type="as" direction="out"/>
     </method>

3)   Search
The return object seems missing.
Comment 1 Patrick Ohly 2012-11-21 19:05:43 UTC
The problem is in the C++ D-Bus binding. If the method that gets bound to D-Bus returns a value, that value is ignored in the signature:
 int foo() => no out parameter

It works when the method is declared as having a retval:
 void foo (int &result) => integer out parameter

This problem exists for both the libdbus and the GIO D-Bus bindings. In SyncEvolution it affects methods like GetVersions().

I have patches ready.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.