On 05/31/2012 04:01 PM, Patrick Ohly wrote:
Hello!

Let me add the Synthesis list where compatibility with the Funambol
client is also currently getting discussed.

I have at least some success with Funambol Client from Android market

About says:
FunV10 Version 10.1.3

1) added datastore 'configuration'. Due to absence of hints what to use
    took copy/paste from 'notes' and edited name after that
2) workarounded XML parse errors in SyncML TK by converting XML to
    WBXML using libwbxml (tests done on Fedora 16, libwbxml version
    0.11.0). After that I'm getting error message about NULL dereference
    from Funambol client log on Android phone. Suspected that even when
client provided 'Accept-Encoding: gzip' it failed to decode gzip compressed
    message (server returned 'Content-Encoding: x-gzip')
3) Added a diagnostic feature to server to disable compression of outgoing
    messages even if client says it is OK to compress. After enabling this
    diagnostic feature and specifying correct remote datastore names on
    FunV10 client synchronization finally works

One additional note:

Funamol uses different data-store names as Synthesis clients by default.
data-store name alias support would be nice feature to have in libsynthesis.
In our (IPNetworks) server development version such alias support is already
implemented on data-store level, but then one must copy/paste related
sections in server XML configuration files. Something like
<datastore name="contacts" type="plugin">
        ...
<alias name="card"/>
would look much nicer.

Andris

On Thu, 2012-05-31 at 09:25 +0200, Patrick Ohly wrote:
On Thu, 2012-05-31 at 08:01 +0100, Onyeibo Oku wrote:
Greetings

I attempted to sync my HTC-Vision with SyncEvolution today for the first
time over WLAN.  The Server was setup according to
https://syncevolution.org/wiki/http-server-howto

The output:
http://pastebin.com/1kPcKQc1

Summary:
As much as the device established a clean connection, the
synchronization did not happen. The process terminates with an error
message: [ERROR] sync: could not extract LocURI=deviceID from initial
message.

The device client also exits with and error message: Invalid URL.
There have been all kinds of problems with that client. The last time I
looked at the official Funambol app, it required the server to be set up
in a special way - in other words, it was only meant to work with
onemedia.com.

I used the community edition of Funambol Client for Android.  The server
is SyncEvolution version 1.2.2 running on Fedora Linux (beefy
Miracle-17). How do I begin to rectify this scenario?
There seems to be a valid, initial SyncML session. But it doesn't sync
against any of the configured sources. It would be useful to set
loglevel=10
in /home/twohot/.config/syncevolution/default/peers/htc-desire-z/config.ini and 
try again. Send me the entire session directory (look in 
~/.cache/syncevolution/) as archive (in particular including the message dumps).

Then there is another message from the device which cannot be matched
against that config. Run "syncevo-http-server -d", that will dump that
message if it is plain text, and quote the output.
I got logs and found the root cause for this problem: after the first
message from the client, the server sends a challenge and asks the
client to authenticate with a MD5 hash. This does not create a session.
Instead the resend by the client with MD5 authentication is treated as a
separate, new session.

The Funambol client does not implement MD5 authentication properly. It's
second message lags the declaration that the password is b64 encoded.

It did this correctly for basic authentication. Here's a diff between
the messages:

***************
*** 16,25 ****
   </Meta>
   <Cred>
   <Meta>
!<Format xmlns="syncml:metinf">b64</Format>
!<Type xmlns="syncml:metinf">syncml:auth-basic</Type>
   </Meta>
!<Data>dHdvaG90OioyMW45ZjE1cnJtOXQyMCo=</Data>
   </Cred>
   </SyncHdr>
   <SyncBody>
--- 16,24 ----
   </Meta>
   <Cred>
   <Meta>
!<Type xmlns="syncml:metinf">syncml:auth-md5</Type>
   </Meta>
!<Data>D+x9Y+zGniTegAmOjbDPrw==</Data>
   </Cred>
   </SyncHdr>
   <SyncBody>

If I add the "<Format xmlns="syncml:metinf">b64</Format>" line to the
second message, SyncEvolution can decode the message correctly.

As a workaround it is possible to change the SyncEvolution configuration
so that it asks for basic authentication. For that, set
   clientAuthType = basic
in
your /home/twohot/.config/syncevolution/default/peers/htc-desire-z/config.ini 
(without the # quotation mark in front of it).

I don't know how far that will get you. I see that the client is asking
for a sync against "configuration", which doesn't exist in
SyncEvolution. And even if it existed it is uncertain what should be put
there.

FWIW, this version of the client is still using XML instead of WBXML.



_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to