This library is an implementation of the SyncML synchronization protocol
Be the first to post a text review of LibSyncML. Rate and review a project by clicking thumbs up or thumbs down in the right column.
2009-06-04 Michael Bell <michael.bell@web.de> * Released 0.5.4 * All header files of the high level API are missing the extern "C" declarations for C++ (ticket #240). The patch was supplied by Sascha Peilicke. 2009-05-15 Michael Bell <michael.bell@web.de> * Released 0.5.3 * 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 * 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 * 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 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. 2009-03-10 Michael Bell <michael.bell@web.de> * Released 0.5.2 * Used SourceForge.net FRS for the first time * Discovered that xmlInitParser and especially xmlCleanupParser must be handled and called by the library user. * Added support for automatic Bluetooth channel detection * Added support for generic content-types * Added automatic base64 conversion for binary data types which are prefixed with application, audio, image, message and video (ticket #185) * Added IRDA support to OBEX client transport (ticket #212). The patch was supplied by Peter Collingbourne. * Added a test for the high level DS API * Added automatic UTF-16 to UTF-8 conversion for wrongly embedded SMS which is used bei Nokia S60 platform (ticket #217) * Added OMA DS 1.2 SAN support for content-types without an OMNA WSP number (ticket #217) * Added support for OMA DS 1.2 SAN without any data store. Mobiles which receive such a SAN should answer with alerts for all configured data stores. The problem is the term ''SHOULD''. Nokia S60 mobiles do not work this way for example. * Fixed string representation in OMA DS 1.2 SAN implementation (trailing NULL bytes must not be copied). Nokia S60 platform mobiles work now with OMA DS 1.2 over OBEX. * Fixed build environment to build correctly if OpenOBEX or libsoup are missing (ticket #211) * If a SAN is received then the remote location must be taken from the SAN alert. * DS API should only set configuration options if they are present. * Added support for receiving SANs to DS API * The target of an alert can now be different from the source in the DS API (e.g. source = Contacts, target = Addressbook). * syncml-ds-tool supports device faking. * Fixed wrong return value for vendor detection via AT commands (ticket #213). The patch was supplied by Frederic Brin. * Added Samsung SGH-F480 to the list of the supported models (ticket #214). The patch was supplied by Frederic Brin. * Added an assertion to smlDataSyncInit which checks for a non-NULL dsObject (ticket #215) * Fixed code to handle specific Samsung AT commands (ticket #216 - still open). A patch was supplied by Frederic Brin. * Added support for SourceParent and SourceTarget in XML parser and assembler (ticket #217 and #218) * Added support for SupportHierarchicalSync of OMA DS 1.2 DevInf (ticket #217 and #218) * Added some new content-types which were registered by OMA DS WG * Added support for authenticated OMA DS 1.2 SANs * If an enum type will be changed in the future then the order is critical. Hard coded values of the elements makes enums robust against re-ordering. * The HTTP client transport of the DS API does no longer instantiate a link object because the HTTP client transport does not support this. * If an error is dereferenced by smlErrorDeref then the caller can no longer access the object. (This makes sense because otherwise the caller should not dereference the object.) * smlTransportSetConfigOption traces no longer PASSWORD options. * If a link of a server is requested to be disconnected but it is already disconnected then this is sometimes no error when a very fast client disconnects before the server. * If the server closes the connection before the client can do this then the disconnect command of the client fails but the client is disconnected. * Fixed wrong interpretation of return value from smlTransportFinalize in data_sync.c * Fixed wrong handling of REPLACE command during SLOW SYNC * Fixed wrong context free of OBEX server transport finalize. * Fixed error handling and reference counting of smlCredNewAuth * Fixed again several memory leaks and removed all suppressions for libxml from valgrind.supp. * Added some code to handle the not thread safe check library
2009-06-04 Michael Bell <michael.bell@web.de> * Released 0.5.4 * All header files of the high level API are missing the extern "C" declarations for C++ (ticket #240). The patch was supplied by Sascha Peilicke. 2009-05-15 Michael Bell <michael.bell@web.de> * Released 0.5.3 * 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 * 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 * 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 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. 2009-03-10 Michael Bell <michael.bell@web.de> * Released 0.5.2 * Used SourceForge.net FRS for the first time * Discovered that xmlInitParser and especially xmlCleanupParser must be handled and called by the library user. * Added support for automatic Bluetooth channel detection * Added support for generic content-types * Added automatic base64 conversion for binary data types which are prefixed with application, audio, image, message and video (ticket #185) * Added IRDA support to OBEX client transport (ticket #212). The patch was supplied by Peter Collingbourne. * Added a test for the high level DS API * Added automatic UTF-16 to UTF-8 conversion for wrongly embedded SMS which is used bei Nokia S60 platform (ticket #217) * Added OMA DS 1.2 SAN support for content-types without an OMNA WSP number (ticket #217) * Added support for OMA DS 1.2 SAN without any data store. Mobiles which receive such a SAN should answer with alerts for all configured data stores. The problem is the term ''SHOULD''. Nokia S60 mobiles do not work this way for example. * Fixed string representation in OMA DS 1.2 SAN implementation (trailing NULL bytes must not be copied). Nokia S60 platform mobiles work now with OMA DS 1.2 over OBEX. * Fixed build environment to build correctly if OpenOBEX or libsoup are missing (ticket #211) * If a SAN is received then the remote location must be taken from the SAN alert. * DS API should only set configuration options if they are present. * Added support for receiving SANs to DS API * The target of an alert can now be different from the source in the DS API (e.g. source = Contacts, target = Addressbook). * syncml-ds-tool supports device faking. * Fixed wrong return value for vendor detection via AT commands (ticket #213). The patch was supplied by Frederic Brin. * Added Samsung SGH-F480 to the list of the supported models (ticket #214). The patch was supplied by Frederic Brin. * Added an assertion to smlDataSyncInit which checks for a non-NULL dsObject (ticket #215) * Fixed code to handle specific Samsung AT commands (ticket #216 - still open). A patch was supplied by Frederic Brin. * Added support for SourceParent and SourceTarget in XML parser and assembler (ticket #217 and #218) * Added support for SupportHierarchicalSync of OMA DS 1.2 DevInf (ticket #217 and #218) * Added some new content-types which were registered by OMA DS WG * Added support for authenticated OMA DS 1.2 SANs * If an enum type will be changed in the future then the order is critical. Hard coded values of the elements makes enums robust against re-ordering. * The HTTP client transport of the DS API does no longer instantiate a link object because the HTTP client transport does not support this. * If an error is dereferenced by smlErrorDeref then the caller can no longer access the object. (This makes sense because otherwise the caller should not dereference the object.) * smlTransportSetConfigOption traces no longer PASSWORD options. * If a link of a server is requested to be disconnected but it is already disconnected then this is sometimes no error when a very fast client disconnects before the server. * If the server closes the connection before the client can do this then the disconnect command of the client fails but the client is disconnected. * Fixed wrong interpretation of return value from smlTransportFinalize in data_sync.c * Fixed wrong handling of REPLACE command during SLOW SYNC * Fixed wrong context free of OBEX server transport finalize. * Fixed error handling and reference counting of smlCredNewAuth * Fixed again several memory leaks and removed all suppressions for libxml from valgrind.supp. * Added some code to handle the not thread safe check library
2009-06-04 Michael Bell <michael.bell@web.de> * Released 0.5.4 * All header files of the high level API are missing the extern "C" declarations for C++ (ticket #240). The patch was supplied by Sascha Peilicke. 2009-05-15 Michael Bell <michael.bell@web.de> * Released 0.5.3 * 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 * 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 * 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 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. 2009-03-10 Michael Bell <michael.bell@web.de> * Released 0.5.2 * Used SourceForge.net FRS for the first time * Discovered that xmlInitParser and especially xmlCleanupParser must be handled and called by the library user. * Added support for automatic Bluetooth channel detection * Added support for generic content-types * Added automatic base64 conversion for binary data types which are prefixed with application, audio, image, message and video (ticket #185) * Added IRDA support to OBEX client transport (ticket #212). The patch was supplied by Peter Collingbourne. * Added a test for the high level DS API * Added automatic UTF-16 to UTF-8 conversion for wrongly embedded SMS which is used bei Nokia S60 platform (ticket #217) * Added OMA DS 1.2 SAN support for content-types without an OMNA WSP number (ticket #217) * Added support for OMA DS 1.2 SAN without any data store. Mobiles which receive such a SAN should answer with alerts for all configured data stores. The problem is the term ''SHOULD''. Nokia S60 mobiles do not work this way for example. * Fixed string representation in OMA DS 1.2 SAN implementation (trailing NULL bytes must not be copied). Nokia S60 platform mobiles work now with OMA DS 1.2 over OBEX. * Fixed build environment to build correctly if OpenOBEX or libsoup are missing (ticket #211) * If a SAN is received then the remote location must be taken from the SAN alert. * DS API should only set configuration options if they are present. * Added support for receiving SANs to DS API * The target of an alert can now be different from the source in the DS API (e.g. source = Contacts, target = Addressbook). * syncml-ds-tool supports device faking. * Fixed wrong return value for vendor detection via AT commands (ticket #213). The patch was supplied by Frederic Brin. * Added Samsung SGH-F480 to the list of the supported models (ticket #214). The patch was supplied by Frederic Brin. * Added an assertion to smlDataSyncInit which checks for a non-NULL dsObject (ticket #215) * Fixed code to handle specific Samsung AT commands (ticket #216 - still open). A patch was supplied by Frederic Brin. * Added support for SourceParent and SourceTarget in XML parser and assembler (ticket #217 and #218) * Added support for SupportHierarchicalSync of OMA DS 1.2 DevInf (ticket #217 and #218) * Added some new content-types which were registered by OMA DS WG * Added support for authenticated OMA DS 1.2 SANs * If an enum type will be changed in the future then the order is critical. Hard coded values of the elements makes enums robust against re-ordering. * The HTTP client transport of the DS API does no longer instantiate a link object because the HTTP client transport does not support this. * If an error is dereferenced by smlErrorDeref then the caller can no longer access the object. (This makes sense because otherwise the caller should not dereference the object.) * smlTransportSetConfigOption traces no longer PASSWORD options. * If a link of a server is requested to be disconnected but it is already disconnected then this is sometimes no error when a very fast client disconnects before the server. * If the server closes the connection before the client can do this then the disconnect command of the client fails but the client is disconnected. * Fixed wrong interpretation of return value from smlTransportFinalize in data_sync.c * Fixed wrong handling of REPLACE command during SLOW SYNC * Fixed wrong context free of OBEX server transport finalize. * Fixed error handling and reference counting of smlCredNewAuth * Fixed again several memory leaks and removed all suppressions for libxml from valgrind.supp. * Added some code to handle the not thread safe check library
2009-05-15 Michael Bell <michael.bell@web.de> * Released 0.5.3 * 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 * 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 * 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 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. 2009-03-10 Michael Bell <michael.bell@web.de> * Released 0.5.2 * Used SourceForge.net FRS for the first time * Discovered that xmlInitParser and especially xmlCleanupParser must be handled and called by the library user. * Added support for automatic Bluetooth channel detection * Added support for generic content-types * Added automatic base64 conversion for binary data types which are prefixed with application, audio, image, message and video (ticket #185) * Added IRDA support to OBEX client transport (ticket #212). The patch was supplied by Peter Collingbourne. * Added a test for the high level DS API * Added automatic UTF-16 to UTF-8 conversion for wrongly embedded SMS which is used bei Nokia S60 platform (ticket #217) * Added OMA DS 1.2 SAN support for content-types without an OMNA WSP number (ticket #217) * Added support for OMA DS 1.2 SAN without any data store. Mobiles which receive such a SAN should answer with alerts for all configured data stores. The problem is the term ''SHOULD''. Nokia S60 mobiles do not work this way for example. * Fixed string representation in OMA DS 1.2 SAN implementation (trailing NULL bytes must not be copied). Nokia S60 platform mobiles work now with OMA DS 1.2 over OBEX. * Fixed build environment to build correctly if OpenOBEX or libsoup are missing (ticket #211) * If a SAN is received then the remote location must be taken from the SAN alert. * DS API should only set configuration options if they are present. * Added support for receiving SANs to DS API * The target of an alert can now be different from the source in the DS API (e.g. source = Contacts, target = Addressbook). * syncml-ds-tool supports device faking. * Fixed wrong return value for vendor detection via AT commands (ticket #213). The patch was supplied by Frederic Brin. * Added Samsung SGH-F480 to the list of the supported models (ticket #214). The patch was supplied by Frederic Brin. * Added an assertion to smlDataSyncInit which checks for a non-NULL dsObject (ticket #215) * Fixed code to handle specific Samsung AT commands (ticket #216 - still open). A patch was supplied by Frederic Brin. * Added support for SourceParent and SourceTarget in XML parser and assembler (ticket #217 and #218) * Added support for SupportHierarchicalSync of OMA DS 1.2 DevInf (ticket #217 and #218) * Added some new content-types which were registered by OMA DS WG * Added support for authenticated OMA DS 1.2 SANs * If an enum type will be changed in the future then the order is critical. Hard coded values of the elements makes enums robust against re-ordering. * The HTTP client transport of the DS API does no longer instantiate a link object because the HTTP client transport does not support this. * If an error is dereferenced by smlErrorDeref then the caller can no longer access the object. (This makes sense because otherwise the caller should not dereference the object.) * smlTransportSetConfigOption traces no longer PASSWORD options. * If a link of a server is requested to be disconnected but it is already disconnected then this is sometimes no error when a very fast client disconnects before the server. * If the server closes the connection before the client can do this then the disconnect command of the client fails but the client is disconnected. * Fixed wrong interpretation of return value from smlTransportFinalize in data_sync.c * Fixed wrong handling of REPLACE command during SLOW SYNC * Fixed wrong context free of OBEX server transport finalize. * Fixed error handling and reference counting of smlCredNewAuth * Fixed again several memory leaks and removed all suppressions for libxml from valgrind.supp. * Added some code to handle the not thread safe check library
2009-05-15 Michael Bell <michael.bell@web.de> * Released 0.5.3 * 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 * 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 * 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 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. 2009-03-10 Michael Bell <michael.bell@web.de> * Released 0.5.2 * Used SourceForge.net FRS for the first time * Discovered that xmlInitParser and especially xmlCleanupParser must be handled and called by the library user. * Added support for automatic Bluetooth channel detection * Added support for generic content-types * Added automatic base64 conversion for binary data types which are prefixed with application, audio, image, message and video (ticket #185) * Added IRDA support to OBEX client transport (ticket #212). The patch was supplied by Peter Collingbourne. * Added a test for the high level DS API * Added automatic UTF-16 to UTF-8 conversion for wrongly embedded SMS which is used bei Nokia S60 platform (ticket #217) * Added OMA DS 1.2 SAN support for content-types without an OMNA WSP number (ticket #217) * Added support for OMA DS 1.2 SAN without any data store. Mobiles which receive such a SAN should answer with alerts for all configured data stores. The problem is the term ''SHOULD''. Nokia S60 mobiles do not work this way for example. * Fixed string representation in OMA DS 1.2 SAN implementation (trailing NULL bytes must not be copied). Nokia S60 platform mobiles work now with OMA DS 1.2 over OBEX. * Fixed build environment to build correctly if OpenOBEX or libsoup are missing (ticket #211) * If a SAN is received then the remote location must be taken from the SAN alert. * DS API should only set configuration options if they are present. * Added support for receiving SANs to DS API * The target of an alert can now be different from the source in the DS API (e.g. source = Contacts, target = Addressbook). * syncml-ds-tool supports device faking. * Fixed wrong return value for vendor detection via AT commands (ticket #213). The patch was supplied by Frederic Brin. * Added Samsung SGH-F480 to the list of the supported models (ticket #214). The patch was supplied by Frederic Brin. * Added an assertion to smlDataSyncInit which checks for a non-NULL dsObject (ticket #215) * Fixed code to handle specific Samsung AT commands (ticket #216 - still open). A patch was supplied by Frederic Brin. * Added support for SourceParent and SourceTarget in XML parser and assembler (ticket #217 and #218) * Added support for SupportHierarchicalSync of OMA DS 1.2 DevInf (ticket #217 and #218) * Added some new content-types which were registered by OMA DS WG * Added support for authenticated OMA DS 1.2 SANs * If an enum type will be changed in the future then the order is critical. Hard coded values of the elements makes enums robust against re-ordering. * The HTTP client transport of the DS API does no longer instantiate a link object because the HTTP client transport does not support this. * If an error is dereferenced by smlErrorDeref then the caller can no longer access the object. (This makes sense because otherwise the caller should not dereference the object.) * smlTransportSetConfigOption traces no longer PASSWORD options. * If a link of a server is requested to be disconnected but it is already disconnected then this is sometimes no error when a very fast client disconnects before the server. * If the server closes the connection before the client can do this then the disconnect command of the client fails but the client is disconnected. * Fixed wrong interpretation of return value from smlTransportFinalize in data_sync.c * Fixed wrong handling of REPLACE command during SLOW SYNC * Fixed wrong context free of OBEX server transport finalize. * Fixed error handling and reference counting of smlCredNewAuth * Fixed again several memory leaks and removed all suppressions for libxml from valgrind.supp. * Added some code to handle the not thread safe check library
2009-05-15 Michael Bell <michael.bell@web.de> * Released 0.5.3 * 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 * 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 * 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 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. 2009-03-10 Michael Bell <michael.bell@web.de> * Released 0.5.2 * Used SourceForge.net FRS for the first time * Discovered that xmlInitParser and especially xmlCleanupParser must be handled and called by the library user. * Added support for automatic Bluetooth channel detection * Added support for generic content-types * Added automatic base64 conversion for binary data types which are prefixed with application, audio, image, message and video (ticket #185) * Added IRDA support to OBEX client transport (ticket #212). The patch was supplied by Peter Collingbourne. * Added a test for the high level DS API * Added automatic UTF-16 to UTF-8 conversion for wrongly embedded SMS which is used bei Nokia S60 platform (ticket #217) * Added OMA DS 1.2 SAN support for content-types without an OMNA WSP number (ticket #217) * Added support for OMA DS 1.2 SAN without any data store. Mobiles which receive such a SAN should answer with alerts for all configured data stores. The problem is the term ''SHOULD''. Nokia S60 mobiles do not work this way for example. * Fixed string representation in OMA DS 1.2 SAN implementation (trailing NULL bytes must not be copied). Nokia S60 platform mobiles work now with OMA DS 1.2 over OBEX. * Fixed build environment to build correctly if OpenOBEX or libsoup are missing (ticket #211) * If a SAN is received then the remote location must be taken from the SAN alert. * DS API should only set configuration options if they are present. * Added support for receiving SANs to DS API * The target of an alert can now be different from the source in the DS API (e.g. source = Contacts, target = Addressbook). * syncml-ds-tool supports device faking. * Fixed wrong return value for vendor detection via AT commands (ticket #213). The patch was supplied by Frederic Brin. * Added Samsung SGH-F480 to the list of the supported models (ticket #214). The patch was supplied by Frederic Brin. * Added an assertion to smlDataSyncInit which checks for a non-NULL dsObject (ticket #215) * Fixed code to handle specific Samsung AT commands (ticket #216 - still open). A patch was supplied by Frederic Brin. * Added support for SourceParent and SourceTarget in XML parser and assembler (ticket #217 and #218) * Added support for SupportHierarchicalSync of OMA DS 1.2 DevInf (ticket #217 and #218) * Added some new content-types which were registered by OMA DS WG * Added support for authenticated OMA DS 1.2 SANs * If an enum type will be changed in the future then the order is critical. Hard coded values of the elements makes enums robust against re-ordering. * The HTTP client transport of the DS API does no longer instantiate a link object because the HTTP client transport does not support this. * If an error is dereferenced by smlErrorDeref then the caller can no longer access the object. (This makes sense because otherwise the caller should not dereference the object.) * smlTransportSetConfigOption traces no longer PASSWORD options. * If a link of a server is requested to be disconnected but it is already disconnected then this is sometimes no error when a very fast client disconnects before the server. * If the server closes the connection before the client can do this then the disconnect command of the client fails but the client is disconnected. * Fixed wrong interpretation of return value from smlTransportFinalize in data_sync.c * Fixed wrong handling of REPLACE command during SLOW SYNC * Fixed wrong context free of OBEX server transport finalize. * Fixed error handling and reference counting of smlCredNewAuth * Fixed again several memory leaks and removed all suppressions for libxml from valgrind.supp. * Added some code to handle the not thread safe check library
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: