|
From: Michael B. <mic...@cm...> - 2008-02-13 13:52:52
|
Daniel Gollub schrieb: > On Tuesday 12 February 2008, Michael Bell wrote: >> Only an idea, is it possible to register connect functions for the main >> sink and the object sinks at the same plugin? If yes then we could use >> the main sink to detect the network connect and the object sink to check >> which type of synchronization is necessary. So the correct sync type can >> be configured before OpenSync calls get_changeinfo. > > Good catch! > > I'm quite sure (without checking the code) this is the root cause. SyncML > plugin flags the Main Sink to perform a SlowSync (since the connect function > detect an anchor mismatch). No, this is wrong. The SyncML plugin flags the object sink to perform a slow-sync but this can happen sometime after get_changeinfo was called (please see _ds_*_recv_alert). > BUT the slow-sync flag on the main-sink doesn't affect the other sinks. So the > file-sync plugin will never get asked to perform a slow-sync if this got > triggered by a plugin which is using a main-sink function (like the SyncML > plugin). I think that the slow-sync flag is simply set too late for the other plugins. If the file-sync function get_changeinfo is called first (because it is the first group member) then it is too late for all other plugins to set the slow-sync flag. The solution would be to put the alert handling into some new functions (like get_syncmode) and register them as connect functions for the object sinks. The "problem" is that we have to break up again the complete SyncML plugin code. Best regards Michael -- _______________________________________________________________ Michael Bell Humboldt-Universitaet zu Berlin Tel.: +49 (0)30-2093 2482 ZE Computer- und Medienservice Fax: +49 (0)30-2093 2704 Unter den Linden 6 mic...@cm... D-10099 Berlin _______________________________________________________________ X.509 CA Certificates / Wurzelzertifikate http://ra.pki.hu-berlin.de |