From: <svn...@op...> - 2009-03-29 14:47:16
|
Author: dgollub Date: Sun Mar 29 16:47:11 2009 New Revision: 5423 URL: http://www.opensync.org/changeset/5423 Log: Port SyncML plugin to API changes reg. osync_objtype_sink_get_objtype() r5357 and the plugin sink function connect_done() r5422. Modified: plugins/syncml/src/syncml_callbacks.c plugins/syncml/src/syncml_common.c plugins/syncml/src/syncml_common.h plugins/syncml/src/syncml_ds_client.c plugins/syncml/src/syncml_ds_server.c Modified: plugins/syncml/src/syncml_callbacks.c ============================================================================== --- plugins/syncml/src/syncml_callbacks.c Sun Mar 29 16:40:22 2009 (r5422) +++ plugins/syncml/src/syncml_callbacks.c Sun Mar 29 16:47:11 2009 (r5423) @@ -201,7 +201,7 @@ sentType = SML_ALERT_SLOW_SYNC; else sentType = SML_ALERT_TWO_WAY; - + /* update alert type of sink if necessary */ if (recvType == SML_ALERT_SLOW_SYNC && recvType != sentType) @@ -230,8 +230,8 @@ goto error; } - /* locate alert type of sink */ - if (osync_objtype_sink_get_slowsync(database->sink)) + /* locate alert type of sink, which is reported by connect_done() */ + if (database->slowsync) sentType = SML_ALERT_SLOW_SYNC; else sentType = SML_ALERT_TWO_WAY; @@ -345,8 +345,7 @@ /* If a SLOW-SYNC happens then OpenSync only expects ADD commands. * If a REPLACE is detected instead of an ADD then this is fixed. */ - if (osync_objtype_sink_get_slowsync(database->sink) && - type == SML_CHANGE_REPLACE) + if (database->slowsync && type == SML_CHANGE_REPLACE) { osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_ADDED); } else { Modified: plugins/syncml/src/syncml_common.c ============================================================================== --- plugins/syncml/src/syncml_common.c Sun Mar 29 16:40:22 2009 (r5422) +++ plugins/syncml/src/syncml_common.c Sun Mar 29 16:47:11 2009 (r5423) @@ -183,7 +183,7 @@ return OSYNC_CHANGE_TYPE_UNKNOWN; } -void syncml_connect_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data) +void syncml_connect_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync, void *data) { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, ctx); @@ -191,6 +191,9 @@ SmlDatabase *database = (SmlDatabase*)data; g_mutex_lock(database->alert_type_mutex); + + database->slowsync = slow_sync; + g_cond_signal(database->alert_type_cond); g_mutex_unlock(database->alert_type_mutex); Modified: plugins/syncml/src/syncml_common.h ============================================================================== --- plugins/syncml/src/syncml_common.h Sun Mar 29 16:40:22 2009 (r5422) +++ plugins/syncml/src/syncml_common.h Sun Mar 29 16:47:11 2009 (r5423) @@ -129,6 +129,8 @@ GMutex *alert_type_mutex; GCond *alert_type_cond; + + osync_bool slowsync; } SmlDatabase; struct commitContext { @@ -149,7 +151,7 @@ OSyncPluginInfo *info, OSyncError **oerror); void syncml_connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data); -void syncml_connect_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data); +void syncml_connect_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync, void *data); void sync_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data); void disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data); Modified: plugins/syncml/src/syncml_ds_client.c ============================================================================== --- plugins/syncml/src/syncml_ds_client.c Sun Mar 29 16:40:22 2009 (r5422) +++ plugins/syncml/src/syncml_ds_client.c Sun Mar 29 16:47:11 2009 (r5423) @@ -113,6 +113,8 @@ SmlDatabase *database = (SmlDatabase*)data; SmlPluginEnv *env = database->env; + database->slowsync = slow_sync; + if (env->state1 >= SML_DATA_SYNC_EVENT_GOT_ALL_CHANGES) { report_success_on_context(&(ctx)); } else { Modified: plugins/syncml/src/syncml_ds_server.c ============================================================================== --- plugins/syncml/src/syncml_ds_server.c Sun Mar 29 16:40:22 2009 (r5422) +++ plugins/syncml/src/syncml_ds_server.c Sun Mar 29 16:47:11 2009 (r5423) @@ -109,6 +109,8 @@ SmlDatabase *database = (SmlDatabase*)data; SmlPluginEnv *env = database->env; + database->slowsync = slow_sync; + database->getChangesCtx = ctx; osync_context_ref(database->getChangesCtx); |