From: <svn...@op...> - 2009-04-20 15:00:10
|
Author: bellmich Date: Mon Apr 20 17:00:04 2009 New Revision: 1066 URL: http://libsyncml.opensync.org/changeset/1066 Log: ensure that the device information is always at the end of the message Modified: trunk/libsyncml/data_sync_api/data_sync_callbacks.c trunk/libsyncml/data_sync_api/data_sync_common.c trunk/libsyncml/data_sync_api/data_sync_devinf.c trunk/libsyncml/data_sync_api/data_sync_devinf.h trunk/libsyncml/data_sync_api/transport_http_client.c Modified: trunk/libsyncml/data_sync_api/data_sync_callbacks.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_callbacks.c Mon Apr 20 16:59:13 2009 (r1065) +++ trunk/libsyncml/data_sync_api/data_sync_callbacks.c Mon Apr 20 17:00:04 2009 (r1066) @@ -235,7 +235,7 @@ * the own device information is send and * the remote ones is requested. */ - if (!smlDataSyncManageDevInf(dsObject, &error)) + if (!smlDataSyncManageDevInf(dsObject, TRUE, &error)) goto error; if (!smlSessionFlush(dsObject->session, TRUE, &error)) goto error; @@ -247,7 +247,7 @@ * the own device information is send and * the remote ones is requested. */ - if (!smlDataSyncManageDevInf(dsObject, &error)) + if (!smlDataSyncManageDevInf(dsObject, TRUE, &error)) goto error; if (!smlSessionFlush(dsObject->session, TRUE, &error)) @@ -461,7 +461,7 @@ * can be received together with the sync command(s). * This can happen with OMA DS clients and servers. */ - if (!smlDataSyncManageDevInf(datastore->dsObject, &error)) + if (!smlDataSyncManageDevInf(datastore->dsObject, FALSE, &error)) goto error; smlTrace(TRACE_EXIT, "%s", __func__); Modified: trunk/libsyncml/data_sync_api/data_sync_common.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_common.c Mon Apr 20 16:59:13 2009 (r1065) +++ trunk/libsyncml/data_sync_api/data_sync_common.c Mon Apr 20 17:00:04 2009 (r1066) @@ -72,7 +72,7 @@ if (datastore->dsObject->session && !datastore->dsObject->onlyLocaltime && !datastore->dsObject->remoteDevInf && - !smlDataSyncManageDevInf(datastore->dsObject, error)) + !smlDataSyncManageDevInf(datastore->dsObject, FALSE, error)) { goto error; } Modified: trunk/libsyncml/data_sync_api/data_sync_devinf.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_devinf.c Mon Apr 20 16:59:13 2009 (r1065) +++ trunk/libsyncml/data_sync_api/data_sync_devinf.c Mon Apr 20 17:00:04 2009 (r1066) @@ -563,9 +563,10 @@ SmlBool smlDataSyncDevInfLoadRemote( SmlDataSyncObject *dsObject, + SmlBool sendGet, SmlError **error) { - smlTrace(TRACE_ENTRY, "%s(%p,%p)", __func__, dsObject, error); + smlTrace(TRACE_ENTRY, "%s(%p, %i, %p)", __func__, dsObject, sendGet, error); CHECK_ERROR_REF smlAssert(dsObject); smlAssertMsg(dsObject->session, "an active session is needed to have a remote device"); @@ -627,15 +628,18 @@ return TRUE; } } - /* the local device information is only send for fairness ;) */ - smlDevInfAgentSendDevInf( - dsObject->agent, - dsObject->session, - error); - smlDevInfAgentRequestDevInf( + if (sendGet) + { + /* the local device information is only send for fairness ;) */ + smlDevInfAgentSendDevInf( dsObject->agent, dsObject->session, error); + smlDevInfAgentRequestDevInf( + dsObject->agent, + dsObject->session, + error); + } smlTrace(TRACE_EXIT, "%s - no remote DevInf available at all", __func__); return FALSE; } @@ -720,9 +724,10 @@ SmlBool smlDataSyncManageDevInf( SmlDataSyncObject *dsObject, + SmlBool sendGet, SmlError **error) { - smlTrace(TRACE_ENTRY, "%s(%p, %p)", __func__, dsObject, error); + smlTrace(TRACE_ENTRY, "%s(%p, %i, %p)", __func__, dsObject, sendGet, error); CHECK_ERROR_REF smlAssertMsg(dsObject->session, "an active session is needed to manage device informations"); @@ -740,7 +745,7 @@ } /* handle remote device information */ - if (smlDataSyncDevInfLoadRemote(dsObject, error) && + if (smlDataSyncDevInfLoadRemote(dsObject, sendGet, error) && dsObject->remoteDevInf && dsObject->handleRemoteDevInfCallback && !dsObject->handleRemoteDevInfCallback( Modified: trunk/libsyncml/data_sync_api/data_sync_devinf.h ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_devinf.h Mon Apr 20 16:59:13 2009 (r1065) +++ trunk/libsyncml/data_sync_api/data_sync_devinf.h Mon Apr 20 17:00:04 2009 (r1066) @@ -35,6 +35,7 @@ SmlBool smlDataSyncDevInfLoadRemote( SmlDataSyncObject *dsObject, + SmlBool sendGet, SmlError **error); char *smlDataSyncDevInfGetIdentifier(); @@ -46,6 +47,7 @@ SmlBool smlDataSyncManageDevInf( SmlDataSyncObject *dsObject, + SmlBool sendGet, SmlError **error); #endif //_SML_DATA_SYNC_DEVINF_H Modified: trunk/libsyncml/data_sync_api/transport_http_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/transport_http_client.c Mon Apr 20 16:59:13 2009 (r1065) +++ trunk/libsyncml/data_sync_api/transport_http_client.c Mon Apr 20 17:00:04 2009 (r1066) @@ -137,7 +137,7 @@ goto error; /* send the device information */ - if (!smlDataSyncManageDevInf(dsObject, error)) + if (!smlDataSyncManageDevInf(dsObject, TRUE, error)) goto error; smlTrace(TRACE_INTERNAL, "%s: sent devinf", __func__); |