Hello, The following issue has been updated:
5 - configdate issue: configdate of InitEngineXML does not trigger the Put cmd Project: libsynthesis Status: New Reported by: Yong Wu URL: http://www.synthesis.ch/indefero/index.php/p/libsynthesis/issues/5/ Labels: Type:Defect Priority:Medium Comments (last first): # By Lukas Zeller, Jun 22, 2009: Thanks for the patch! Indeed, that check was missing. I applied it now (commit 3f52d2faffd4f9d57693c1879ea6261af582346e). While reviewing I found that the entire mechanism needed some cleanup. mustSendDevInf() and fRemoteMustSeeDevinf were here for nearly the same purpose, so unified them (commit 5328a5807c5ac67f7f541391ad57d3fa376316b2). This again affected the code lines you patched, because checking mustSendDevInf() is now sufficient - it now already does the check for fRemoteMustSeeDevinf. Status: Fixed # By Yong Wu, Jun 22, 2009: To reproduce this issue using syncEvolution + Google sync: 1, send a newer valid configdate always (via syncEvolution) 2, change the contact type of Google sync as text/x-vcard or text/vcard to check whether it take effect immediately 3, suppose other configs are correct, the expected behavior is, Google sync will fail w/ 404 error with the text/vcard contact type, but will success with text/x-vcard. According to the observations, the engine has two chances to send the devinfo. 1, when the session to produce the next message. --- a/src/sysync/syncclient.cpp +++ b/src/sysync/syncclient.cpp @@ -906,7 +906,7 @@ localstatus TSyncClient::NextMessage(bool &aDone) if (localDS->fSlowSync) anyslowsyncs=true; } // create Put command if any datastore is doing first time sync / slow sync or devinf Put is externally requested - if (mustSendDevInf() || anyfirstsyncs || (anyslowsyncs && static_cast<TClientConfig *>(getRootConfig()->fAgentConfigP)->fPutDevInfAtSlowSync)) { + if (fRemoteMustSeeDevinf || mustSendDevInf() || anyfirstsyncs || (anyslowsyncs && static_cast<TClientConfig *>(getRootConfig()->fAgentConfigP)->fPutDevI TDevInfPutCommand *putcmdP = new TDevInfPutCommand(this); issueRootPtr(putcmdP); } 2, the end message processing. if (!fRemoteGotDevinf && fRemoteMustSeeDevinf) { ... issueRootPtr(putcmdP); } The change of configdate never trigger the 1st Put ommand, but does has impact on the 2nd Put (thr the fRemoteMustSeeDevinf). While it seems the later Put does not work as the first one. But if the fRemoteMustSeeDevinf condition is added to the first Put(as it shown in the diff above), it will work perfectly as expected. -- Issue: http://www.synthesis.ch/indefero/index.php/p/libsynthesis/issues/5/ _______________________________________________ os-libsynthesis mailing list [email protected] http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis
