On Tue, 2012-08-21 at 13:31 +0200, Mikel Astiz wrote:
> > On Tue, 2012-08-21 at 09:26 +0200, Mikel Astiz wrote:
> > > >         if the Transfer's Filename matches the temporary file.
> > >
> > > I'd rather check the object path instead of the filename (of course you
> > need to start the transfer first).
> > 
> > And that's where you run into the race condition that I described in my mail
> > to the Bluez list: by the time that the SignalWatch is set up, the client 
> > might
> > already have missed the signals that it wants to receive.
> 
> I still don't get the problem. I was proposing to install the watch
> with the session prefix, not the full transfer path.

That wasn't clear from the statement above. The prefix match would work
as you suggested.

But then there still is the problem of actually *using* the prefix
match: as I said on the Bluez list, common D-Bus binding (Python, GIO
D-Bus) do not support matching by prefix (or at least not easily - GIO
apparently allows manually setting up match rules).

In SyncEvolution, the src/gdbusxx C++ binding uses GIO D-Bus and
currently only supports a full object path match. It always passes a
path to g_dbus_connection_signal_subscribe(), even if it is empty. To
allow what I suggested earlier (match any path), that probably needs to
be changed so that an empty std::string is translated into NULL for
g_dbus_connection_signal_subscribe().

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.


_______________________________________________
SyncEvolution mailing list
SyncEvolution@syncevolution.org
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to