From: <svn...@op...> - 2010-01-31 17:07:07
|
Author: dgollub Date: Sun Jan 31 18:06:57 2010 New Revision: 6027 URL: http://www.opensync.org/changeset/6027 Log: Don't call _osync_obj_engine_clone_and_demerge_change() in _osync_obj_engine_mapping_find() if the merge is disabled by the group configuration. Otherwise this would cause: "Couldn't handle the capabilities in format" Patch by Nicolas, fixes #1206 Modified: trunk/opensync/engine/opensync_obj_engine.c Modified: trunk/opensync/engine/opensync_obj_engine.c ============================================================================== --- trunk/opensync/engine/opensync_obj_engine.c Mon Jan 25 21:01:11 2010 (r6026) +++ trunk/opensync/engine/opensync_obj_engine.c Sun Jan 31 18:06:57 2010 (r6027) @@ -281,6 +281,11 @@ for (m=mapping_engines; m && (result != OSYNC_CONV_DATA_SAME); m=m->next) { OSyncMappingEngine *tmp_mapping_engine = m->data; + OSyncObjEngine *engine = tmp_mapping_engine->parent; + OSyncGroup *group = osync_engine_get_group(engine->parent); + + osync_bool merger_enabled = osync_group_get_merger_enabled(group); + /* Go through the already existing mapping entries. We only consider mappings * which dont have a entry on our side and where the data comparsion does not * return MISMATCH */ @@ -300,9 +305,13 @@ OSyncMember *member1 = osync_client_proxy_get_member(sinkengine->proxy); OSyncMember *member2 = osync_client_proxy_get_member(entry_engine->sink_engine->proxy); + OSyncCapabilities *caps1 = NULL; + OSyncCapabilities *caps2 = NULL; - OSyncCapabilities *caps1 = osync_member_get_capabilities(member1); - OSyncCapabilities *caps2 = osync_member_get_capabilities(member2); + if (merger_enabled) { + caps1 = osync_member_get_capabilities(member1); + caps2 = osync_member_get_capabilities(member2); + } OSyncChange *clone_change1 = NULL, *clone_change2 = NULL; OSyncChange *change1 = change; |