« Return to Thread: libsyncml 0.5.3

libsyncml 0.5.3

by Michael Bell :: Rate this Message:

Reply to Author | View in Thread

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

libsyncml 0.5.3 release notes

Download: https://sourceforge.net/project/showfiles.php?group_id=25311

Major Changes
=============

  - Added a first implementation of the function smlDataSyncAbort.
    This function can be called if the synchronization must be abortedi
    (e.g. because of another external error like a full disk).
  - HTTP transport is now supported for old Solaris libsoup 2.2 packages

Minor Changes
=============

  - Added a missing SmlDevInf reference which causes a segmentation
    fault if a cached SmlDevInf object is used by OpenSync's SyncML
    plugin
  - Added support for the case that a client sends alert 200 and
    receives alert 200 but needs to update to a SLOW-SYNC alert 201
    because of an internal problem like wrong anchors (NOTE: This code
    is untested because I failed to simulate this until now.)
  - Fixed bugs related to Funambol/ScheduleWorld:
     - Fixed wrong vCal 1.0 device information.
       If the default format of a datastore is iCal 2.0
       then the content type for vCal 1.0 was wrong.
       Old (buggy): text/calendar 1.0
       New (correct): text/x-vcalendar 1.0
     - The Funambol server on scheduleworld.com returned error code 511.
       So the error code is supported now too.
     - The requested remote alert type is unknown and so let's signal
       this to the library user.
     - The getAlertTypeCallback should only be called once per
       data store.
     - Fixed return value of smlDataSyncClientSendAlert.
       If a slow-sync alert is initiated and the remote peer did not
       request it then the function must return false to trigger a
       status 508 (REFRESH_REQUIRED).
       If the requested alert type is not known then there is no need
       for a status and the function returns true. This can happen
       if the remote peer did not trigger the client via a SAN
       (e.g. OMA DS client over HTTP).
  - Added support for a separate mapping callback

Internal Changes
================

  - Added better cleanup code for the transport layer in
    smlDataSyncObjectUnref
  - Fixed several comments
  - Added some trace statements
  - Several fixes for libsoup
     - Added tests to validate libsoup
     - Several fixes for the asynchronous http client
     - Added timeout to asynchronous http client session
     - Fixed client callback for libsoup 2.2
     - Own thread and ctx for HTTP client
     - Added workaround for libsoup 2.2 http clients under Solaris
       (asynchronous http client support does not work under Solaris)
     - some cosmetical changes for http server code
       (traces, comments, assertions)
     - Added an internal function to run a function in a special thread.
       This feature is necessary because some libaries like libsoup are
       only designed for single-threaded applications. This means that
       every function must be called from the same thread. Otherwise
       there is no guarantee about the behaviour of the library.
     - libsoup_async respects now that SoupSessionAsync was designed for
       single-threaded applications.
  - Multi session fixes
     - Added multi session safe SAN callback
     - Fixed device information agent to be multi session safe.
       The old code only works if the manager manages exactly one
       session. If there is more than one session then the agent must
       take care about the different remote device capabilities.
     - Fixed remote device handling to be multi session safe.
       This is important if you ever implement long living processes or
       if you implement a client which wants to use its own session ID.
     - use new SAN callback which provides the session too which avoids
       race conditions (alternatively you can block the thread until the
       event SESSION_NEW will be dispatched)
  - Transport layer fixes:
     - Added code to test the transport layer context management
     - If a transport implementation has no public connect function
       then it cannot send a connect event.
     - smlTransportFinalize calls the finalize function of the transport
       implementations directly. The HTTP implementations depend on the
       correct thread because libsoup is single-threaded. This means
       that the worker thread must be available until all connections
       are closed (disconnected or finalized).
       Therefore the finalize function of a transport implementation
       must be called within the worker thread and the thread must be
       shut down after the finalize function was called.
  - Device Information fixes:
     - Added automatic localtime enforcement if the remote device sends
       a device information without UTC support
     - Ensure that the device information is always at the end of the
       message
     - If the alerts and the device information are in the same SyncML
       message then the alerts are dispatched faster. So it is necessary
       to check manually for an available remote device information.
  - Made smlQueueDetach of sml_queue.c thread safe
  - Made pendingMaps of objects/sml_ds_server.c thread safe
  - Added support for coverage analysis
  - Introduced internal mapping function.
    A change can now be freed after the status was received.

Fixed Tickets
=============

  - Fixed incorrect use of pthread_self (ticket #222).
    The patch was supplied by Henrik Kaare Poulsen.
  - Added missing @ONLY which reduces the memory usage from cmake
    (ticket #223).
  - Fixed wrong g_error usage (ticket #224).
    The patch was supplied by Henrik Kaare Poulsen.
  - Added default XML encoding explicitly because Sync4j requires it
    (ticket #225).
  - Abort more carefully
    (ticket #226 - does not affect 0.5.2 or earlier).
  - Added missing OBEX_TransportDisconnect in transport/obex_client.c
    (ticket #227). The original patch was supplied by Patrick Pfeifer.
  - Fixed some Windows/MinGW issues (ticket #228).
    The patch was supplied by Henrik Kaare Poulsen.
  - Fixed the target and source setting in change commands
    (ticket #229).
  - Google related fixes (ticket #230):
     - The HTTP client of DS API must support WBXML too.
       Google only supports WBXML today.
       (https://m.google.com/syncml is still a beta.)
     - Google has a wrong implementation of Alert Status.
       The Item Data is the Next Anchor.

                <Status>
                  <CmdID>5</CmdID>
                  <MsgRef>2</MsgRef>
                  <CmdRef>3</CmdRef>
                  <Cmd>Alert</Cmd>
                  <SourceRef>contacts</SourceRef>
                  <TargetRef>contacts</TargetRef>
                  <Data>200</Data>
                  <Item>
                    <Data><![CDATA[20090417T112101Z]]></Data>
                  </Item>
                </Status>

  - If an Item is deleted then it is not necessary to add a Data tag
    (ticket #232). The patch was supplied by Kwan hong Lee.
  - Sanitized UIDs (ticket #233).
  - Fixed DS API HTTP client inital allert which always sent a SLOW-SYNC
    alert (ticket #234).
  - Fixed skipping of Ext element (#235).
    The original patch was modified because the end of the new function
    could be reached without a return statement.
    The original patch was supplied by Kwan hong Lee.
  - Ticket #236 is a duplicate of ticket #232.
  - Fixed the handling of empty Data elements (ticket #237).
    The original patch was supplied by Kwan hong Lee.

A special thanks goes to:

  - Christian Hilgers (Solaris testing)
  - John Carr from  Codethink Ltd. (SchedueWorld.com testing)
  - Kwang hong Lee from  Windriver (fixed Sync4j bugs and
    Google testing)

Best regards

Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkoNd7oACgkQ2L0ZGCAwWqs/AACgyy8ZoQMJCNTElYhpQ8OJi7lx
6NYAoMsrgxD/G7WzD/6DIRL3gQUkPBWG
=piaP
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Opensync-users mailing list
Opensync-users@...
https://lists.sourceforge.net/lists/listinfo/opensync-users

 « Return to Thread: libsyncml 0.5.3