From: <svn...@op...> - 2009-09-01 14:47:02
|
Author: dgollub Date: Tue Sep 1 16:46:49 2009 New Revision: 5726 URL: http://www.opensync.org/changeset/5726 Log: Fix assembling of capabilities. Multiple recalls of osync_capabilities_assemble() appended the same capabilities information over and over again. Modified: trunk/opensync/capabilities/opensync_capabilities.c Modified: trunk/opensync/capabilities/opensync_capabilities.c ============================================================================== --- trunk/opensync/capabilities/opensync_capabilities.c Tue Sep 1 16:32:57 2009 (r5725) +++ trunk/opensync/capabilities/opensync_capabilities.c Tue Sep 1 16:46:49 2009 (r5726) @@ -44,9 +44,6 @@ } capabilities->ref_count = 1; - capabilities->doc = xmlNewDoc(BAD_CAST "1.0"); - capabilities->doc->children = xmlNewDocNode(capabilities->doc, NULL, (xmlChar *)"Caps", NULL); - capabilities->doc->_private = capabilities; osync_capabilities_set_format(capabilities, capsformat); @@ -72,6 +69,7 @@ for (l = capabilities->objtypes; l; l = l->next) { OSyncCapabilitiesObjType *objtype; objtype = (OSyncCapabilitiesObjType *) l->data; + capabilities->objtypes = osync_list_remove(capabilities->objtypes, objtype); osync_capabilities_objtype_unref(objtype); /* TODO unlink from list */ } @@ -148,7 +146,12 @@ goto error; } - doc = capabilities->doc; + if (capabilities->doc) + osync_xml_free_doc(capabilities->doc); + + capabilities->doc = doc = xmlNewDoc(BAD_CAST "1.0"); + capabilities->doc->children = xmlNewDocNode(capabilities->doc, NULL, (xmlChar *)"Caps", NULL); + capabilities->doc->_private = capabilities; /* Set version for capabilities configuration */ version_str = osync_strdup_printf("%u.%u", OSYNC_CAPS_MAJOR_VERSION, OSYNC_CAPS_MINOR_VERSION); |