From: <svn...@op...> - 2009-04-12 12:14:16
|
Author: bricks Date: Sun Apr 12 14:14:09 2009 New Revision: 5585 URL: http://www.opensync.org/changeset/5585 Log: return copy of plugin config advancedoption refs #975 Modified: trunk/docs/examples/plugins/src/plugin.c trunk/docs/examples/plugins/src/simple_plugin.c trunk/opensync/ipc/opensync_serializer.c trunk/opensync/plugin/opensync_plugin_config.c trunk/tests/ipc-tests/check_serializer.c trunk/tests/plugin-tests/check_plugin_config.c Modified: trunk/docs/examples/plugins/src/plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/plugin.c Sun Apr 12 13:51:33 2009 (r5584) +++ trunk/docs/examples/plugins/src/plugin.c Sun Apr 12 14:14:09 2009 (r5585) @@ -291,8 +291,9 @@ * Process plugin specific advanced options */ OSyncList *optslist = osync_plugin_config_get_advancedoptions(config); - for (; optslist; optslist = optslist->next) { - OSyncPluginAdvancedOption *option = optslist->data; + OSyncList *o; + for (o = optslist; o; o = o->next) { + OSyncPluginAdvancedOption *option = o->data; const char *val = osync_plugin_advancedoption_get_value(option); const char *name = osync_plugin_advancedoption_get_name(option); @@ -305,6 +306,8 @@ } } } + osync_list_free(optslist); + /* * Process Ressource options */ Modified: trunk/docs/examples/plugins/src/simple_plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/simple_plugin.c Sun Apr 12 13:51:33 2009 (r5584) +++ trunk/docs/examples/plugins/src/simple_plugin.c Sun Apr 12 14:14:09 2009 (r5585) @@ -220,8 +220,9 @@ * Process plugin specific advanced options */ OSyncList *optslist = osync_plugin_config_get_advancedoptions(config); - for (; optslist; optslist = optslist->next) { - OSyncPluginAdvancedOption *option = optslist->data; + OSyncList *o; + for (o = optslist; o; o = o->next) { + OSyncPluginAdvancedOption *option = o->data; const char *val = osync_plugin_advancedoption_get_value(option); const char *name = osync_plugin_advancedoption_get_name(option); @@ -234,6 +235,8 @@ } } } + osync_list_free(optslist); + /* * Process Ressource options */ Modified: trunk/opensync/ipc/opensync_serializer.c ============================================================================== --- trunk/opensync/ipc/opensync_serializer.c Sun Apr 12 13:51:33 2009 (r5584) +++ trunk/opensync/ipc/opensync_serializer.c Sun Apr 12 14:14:09 2009 (r5585) @@ -1408,6 +1408,7 @@ OSyncPluginLocalization *local = NULL; OSyncList *r = NULL; OSyncList *aos = NULL; + OSyncList *options = NULL; osync_assert(message); osync_assert(config); @@ -1458,14 +1459,17 @@ goto error; } - aos = osync_plugin_config_get_advancedoptions(config); + options = osync_plugin_config_get_advancedoptions(config); osync_message_write_uint(message, osync_list_length(aos)); - for (; aos; aos = aos->next) { + for (aos = options; aos; aos = aos->next) { OSyncPluginAdvancedOption *opt = aos->data; - if (!osync_marshal_pluginadvancedoption(message, opt, error)) + if (!osync_marshal_pluginadvancedoption(message, opt, error)) { + osync_list_free(options); goto error; + } } + osync_list_free(options); return TRUE; Modified: trunk/opensync/plugin/opensync_plugin_config.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.c Sun Apr 12 13:51:33 2009 (r5584) +++ trunk/opensync/plugin/opensync_plugin_config.c Sun Apr 12 14:14:09 2009 (r5585) @@ -1338,7 +1338,8 @@ /** Assemble... */ /* Advanced Options */ - if ((options = osync_plugin_config_get_advancedoptions(config))) + options = config->advancedoptions; + if (options) if (!_osync_plugin_config_assemble_advancedoptions(doc->children, options, error)) goto error_and_free; @@ -1396,7 +1397,7 @@ OSyncList *osync_plugin_config_get_advancedoptions(OSyncPluginConfig *config) { osync_assert(config); - return config->advancedoptions; + return osync_list_copy(config->advancedoptions); } const char *osync_plugin_config_get_advancedoption_value_by_name(OSyncPluginConfig *config, const char *name) Modified: trunk/tests/ipc-tests/check_serializer.c ============================================================================== --- trunk/tests/ipc-tests/check_serializer.c Sun Apr 12 13:51:33 2009 (r5584) +++ trunk/tests/ipc-tests/check_serializer.c Sun Apr 12 14:14:09 2009 (r5585) @@ -329,7 +329,9 @@ OSyncList *advancedopts1 = osync_plugin_config_get_advancedoptions(config1); OSyncList *advancedopts2 = osync_plugin_config_get_advancedoptions(config2); fail_unless(_compare_list(advancedopts1, advancedopts2, _compare_pluginconfig_advancedoption), NULL); - + + osync_list_free(advancedopts1); + osync_list_free(advancedopts2); return TRUE; } Modified: trunk/tests/plugin-tests/check_plugin_config.c ============================================================================== --- trunk/tests/plugin-tests/check_plugin_config.c Sun Apr 12 13:51:33 2009 (r5584) +++ trunk/tests/plugin-tests/check_plugin_config.c Sun Apr 12 14:14:09 2009 (r5585) @@ -285,6 +285,7 @@ advanced_options = osync_plugin_config_get_advancedoptions(config); fail_unless(osync_list_length(advanced_options) == 1, NULL); fail_unless(advanced_options->data == option, NULL); + osync_list_free(advanced_options); const char *test_option = NULL; test_option = osync_plugin_config_get_advancedoption_value_by_name(config, "foo"); @@ -298,6 +299,7 @@ advanced_options = osync_plugin_config_get_advancedoptions(config); fail_unless(osync_list_length(advanced_options) == 1, NULL); fail_unless(advanced_options->data == option, NULL); + osync_list_free(advanced_options); OSyncPluginAdvancedOption *option2 = osync_plugin_advancedoption_new(&error); fail_unless(error == NULL, NULL); @@ -308,7 +310,8 @@ advanced_options = osync_plugin_config_get_advancedoptions(config); fail_unless(osync_list_length(advanced_options) == 2, NULL); - + osync_list_free(advanced_options); + test_option = osync_plugin_config_get_advancedoption_value_by_name(config, "foo"); fail_unless(test_option == osync_plugin_advancedoption_get_value(option)); @@ -324,6 +327,7 @@ osync_plugin_config_remove_advancedoption(config, option3); advanced_options = osync_plugin_config_get_advancedoptions(config); fail_unless(osync_list_length(advanced_options) == 2, NULL); + osync_list_free(advanced_options); osync_plugin_config_remove_advancedoption(config, option); advanced_options = osync_plugin_config_get_advancedoptions(config); @@ -333,6 +337,7 @@ fail_unless(test_option == NULL); test_option = osync_plugin_config_get_advancedoption_value_by_name(config, "bar"); fail_unless(test_option == osync_plugin_advancedoption_get_value(option2)); + osync_list_free(advanced_options); osync_plugin_config_remove_advancedoption(config, option2); fail_unless(osync_plugin_config_get_advancedoptions(config) == NULL, NULL); @@ -954,7 +959,9 @@ } - + osync_list_free(reloaded_resources); + osync_list_free(reloaded_advancedoptions); + osync_plugin_config_unref(config); osync_plugin_config_unref(reloaded_config); |