21 #include "transport.h" 22 #include "libsyncml/sml_error_internals.h" 23 #include "libsyncml/sml_support.h" 25 #include "data_sync_client.h" 26 #include "data_sync_devinf.h" 29 SmlBool smlDataSyncTransportHttpClientInit(
33 smlTrace(TRACE_ENTRY,
"%s(%p, %p)", __func__, dsObject, error);
36 if (dsObject->url != NULL &&
39 SML_TRANSPORT_CONFIG_URL, dsObject->url,
42 if (dsObject->username != NULL &&
45 SML_TRANSPORT_CONFIG_USERNAME, dsObject->username,
48 if (dsObject->password != NULL &&
51 SML_TRANSPORT_CONFIG_PASSWORD, dsObject->password,
55 smlTrace(TRACE_EXIT,
"%s - TRUE", __func__);
64 smlTrace(TRACE_ENTRY,
"%s(%p, %p)", __func__, dsObject, error);
65 smlAssert(dsObject->url);
66 smlAssert(dsObject->identifier);
67 smlAssert(dsObject->tsp);
68 smlAssert(dsObject->manager);
69 smlAssert(dsObject->agent);
78 if (dsObject->session) {
80 "Only one SyncML session is allowed per SmlDataSyncObject instance.");
86 target = smlLocationNew(dsObject->target, NULL, error);
89 source = smlLocationNew(dsObject->identifier, NULL, error);
93 char *sessionString = smlManagerGetNewSessionID(dsObject->manager);
95 dsObject->useWbxml?SML_MIMETYPE_WBXML:SML_MIMETYPE_XML,
99 sessionString, 0, error);
100 smlSafeCFree(&sessionString);
101 if (!dsObject->session)
104 smlLocationUnref(target);
106 smlLocationUnref(source);
110 if (!smlManagerSessionAdd(dsObject->manager, dsObject->session, NULL, error))
112 if (!smlDevInfAgentRegisterSession(dsObject->agent, dsObject->manager, dsObject->session, error))
115 smlTrace(TRACE_EXIT,
"%s", __func__);
119 smlLocationUnref(target);
123 smlLocationUnref(source);
132 smlTrace(TRACE_ENTRY,
"%s(%p, %p)", __func__, dsObject, error);
136 if (!smlDataSyncTransportHttpClientInitNewSession(dsObject, error))
140 if (!smlDataSyncManageDevInf(dsObject, TRUE, error))
142 smlTrace(TRACE_INTERNAL,
"%s: sent devinf", __func__);
145 GList *o = dsObject->datastores;
146 for (; o; o = o->next) {
149 if (!smlDataSyncClientSendAlert(datastore, SML_ALERT_UNKNOWN, error))
152 smlTrace(TRACE_INTERNAL,
"%s: all datastores created their alerts", __func__);
159 dsObject->actualPackage = SML_PACKAGE_1;
165 smlTrace(TRACE_EXIT,
"%s", __func__);
This object represents an OMA DS datastore.
SmlBool smlTransportSetConfigOption(SmlTransport *tsp, const char *name, const char *value, SmlError **error)
Sets a configuration parameter.
const char * smlErrorPrint(SmlError **error)
Returns the message of the error.
This is the central synchronization object.
SmlBool smlSessionFlush(SmlSession *session, SmlBool final, SmlError **error)
Flushes a session.
void smlTrace(SmlTraceType type, const char *message,...)
Used for tracing the application.
SmlSession * smlSessionNew(SmlSessionType sessionType, SmlMimeType mimetype, SmlProtocolVersion version, SmlProtocolType protocol, SmlLocation *target, SmlLocation *source, const char *sessionID, unsigned int messageID, SmlError **error)
Creates a new session.
void smlErrorSet(SmlError **error, SmlErrorType type, const char *format,...)
Sets the error.