From: <dg...@su...> - 2009-01-30 15:02:43
|
Author: bellmich Date: Fri Jan 30 16:01:07 2009 New Revision: 908 URL: http://libsyncml.opensync.org/changeset/908 Log: added support for setting the target directly Modified: trunk/libsyncml/data_sync_api/data_sync.c trunk/libsyncml/data_sync_api/data_sync.h trunk/libsyncml/data_sync_api/defines.h trunk/libsyncml/data_sync_api/transport_http_client.c Modified: trunk/libsyncml/data_sync_api/data_sync.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync.c Fri Jan 30 15:59:55 2009 (r907) +++ trunk/libsyncml/data_sync_api/data_sync.c Fri Jan 30 16:01:07 2009 (r908) @@ -173,8 +173,17 @@ goto error; } } else if (!strcmp(SML_TRANSPORT_CONFIG_URL, name)) { - /* The URL is used as Target in the session header. */ dsObject->url = g_strdup(value); + /* If the Target is not set explicitly + * then the URL is used as the Target in the session header. + * This is only relevant for HTTP clients today. + */ + if (!dsObject->target) + dsObject->target = g_strdup(value); + } else if (!strcmp(SML_DATA_SYNC_CONFIG_TARGET, name)) { + if (dsObject->target) + smlSafeCFree(&(dsObject->target)); + dsObject->target = g_strdup(value); } else if (!strcmp(SML_DATA_SYNC_CONFIG_IDENTIFIER, name)) { if (dsObject->identifier) smlSafeCFree(&(dsObject->identifier)); @@ -762,6 +771,8 @@ /* cleanup configuration */ if ((*dsObject)->url) smlSafeCFree(&((*dsObject)->url)); + if ((*dsObject)->target) + smlSafeCFree(&((*dsObject)->target)); if ((*dsObject)->identifier) smlSafeCFree(&((*dsObject)->identifier)); if ((*dsObject)->username) Modified: trunk/libsyncml/data_sync_api/data_sync.h ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync.h Fri Jan 30 15:59:55 2009 (r907) +++ trunk/libsyncml/data_sync_api/data_sync.h Fri Jan 30 16:01:07 2009 (r908) @@ -136,6 +136,7 @@ char *password; char *url; + char *target; SmlProtocolVersion version; Modified: trunk/libsyncml/data_sync_api/defines.h ============================================================================== --- trunk/libsyncml/data_sync_api/defines.h Fri Jan 30 15:59:55 2009 (r907) +++ trunk/libsyncml/data_sync_api/defines.h Fri Jan 30 16:01:07 2009 (r908) @@ -68,6 +68,7 @@ #define SML_DATA_SYNC_CONFIG_VERSION "VERSION" #define SML_DATA_SYNC_CONFIG_IDENTIFIER "IDENTIFIER" +#define SML_DATA_SYNC_CONFIG_TARGET "TARGET" #define SML_DATA_SYNC_CONFIG_USE_WBXML "USE_WBXML" #define SML_DATA_SYNC_CONFIG_USE_STRING_TABLE "USE_STRING_TABLE" Modified: trunk/libsyncml/data_sync_api/transport_http_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/transport_http_client.c Fri Jan 30 15:59:55 2009 (r907) +++ trunk/libsyncml/data_sync_api/transport_http_client.c Fri Jan 30 16:01:07 2009 (r908) @@ -79,7 +79,7 @@ /* create session */ char *sessionString = smlManagerGetNewSessionID(dsObject->manager); - SmlLocation *target = smlLocationNew(dsObject->url, NULL, error); + SmlLocation *target = smlLocationNew(dsObject->target, NULL, error); SmlLocation *source = smlLocationNew(dsObject->identifier, NULL, error); dsObject->session = smlSessionNew(SML_SESSION_TYPE_CLIENT, SML_MIMETYPE_XML, |