You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(56) |
Apr
(109) |
May
(15) |
Jun
(3) |
Jul
(37) |
Aug
(96) |
Sep
(40) |
Oct
(4) |
Nov
(54) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(47) |
Feb
(30) |
Mar
(102) |
Apr
(120) |
May
(68) |
Jun
(54) |
Jul
(53) |
Aug
(122) |
Sep
(190) |
Oct
(71) |
Nov
(85) |
Dec
(108) |
2007 |
Jan
(72) |
Feb
(190) |
Mar
(53) |
Apr
(101) |
May
(145) |
Jun
(148) |
Jul
(167) |
Aug
(143) |
Sep
(23) |
Oct
(198) |
Nov
(223) |
Dec
(195) |
2008 |
Jan
(100) |
Feb
(129) |
Mar
(79) |
Apr
(77) |
May
(34) |
Jun
(95) |
Jul
(112) |
Aug
(160) |
Sep
(82) |
Oct
(124) |
Nov
(199) |
Dec
(355) |
2009 |
Jan
(436) |
Feb
(89) |
Mar
(298) |
Apr
(189) |
May
(33) |
Jun
(88) |
Jul
(105) |
Aug
(44) |
Sep
(181) |
Oct
(87) |
Nov
(75) |
Dec
(1) |
2010 |
Jan
(63) |
Feb
(21) |
Mar
(3) |
Apr
(1) |
May
(1) |
Jun
(3) |
Jul
(26) |
Aug
(37) |
Sep
(26) |
Oct
(15) |
Nov
(13) |
Dec
|
From: <svn...@op...> - 2009-09-17 01:01:58
|
Author: dgollub Date: Thu Sep 17 02:22:25 2009 New Revision: 5778 URL: http://www.opensync.org/changeset/5778 Log: Port example plugins to format_env and plugin_env register API changes. See #1087 Modified: trunk/docs/examples/plugins/src/format.c trunk/docs/examples/plugins/src/plugin.c trunk/docs/examples/plugins/src/simple_plugin.c Modified: trunk/docs/examples/plugins/src/format.c ============================================================================== --- trunk/docs/examples/plugins/src/format.c Thu Sep 17 02:18:36 2009 (r5777) +++ trunk/docs/examples/plugins/src/format.c Thu Sep 17 02:22:25 2009 (r5778) @@ -157,7 +157,7 @@ */ OSyncObjFormat *format = osync_objformat_new("<your format name>", "<some object type>", error); if (!format) - return FALSE; + goto error; osync_objformat_set_compare_func(format, compare_format1); osync_objformat_set_destroy_func(format, destroy_format1); @@ -167,10 +167,15 @@ osync_objformat_set_initialize_func(format, init_format1); osync_objformat_set_finalize_func(format, finialize_format1); - osync_format_env_register_objformat(env, format); + if (!osync_format_env_register_objformat(env, format, error)) + goto error; + osync_objformat_unref(format); return TRUE; + +error: + return FALSE; } void *initialize_converter(const char* config, OSyncError **error) Modified: trunk/docs/examples/plugins/src/plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/plugin.c Thu Sep 17 02:18:36 2009 (r5777) +++ trunk/docs/examples/plugins/src/plugin.c Thu Sep 17 02:22:25 2009 (r5778) @@ -408,7 +408,9 @@ osync_plugin_set_finalize(plugin, finalize); osync_plugin_set_discover(plugin, discover); - osync_plugin_env_register_plugin(pluginenv, plugin); + if (!osync_plugin_env_register_plugin(pluginenv, plugin, error)) + goto error; + osync_plugin_unref(plugin); return TRUE; Modified: trunk/docs/examples/plugins/src/simple_plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/simple_plugin.c Thu Sep 17 02:18:36 2009 (r5777) +++ trunk/docs/examples/plugins/src/simple_plugin.c Thu Sep 17 02:22:25 2009 (r5778) @@ -328,7 +328,9 @@ osync_plugin_set_finalize(plugin, finalize); osync_plugin_set_discover(plugin, discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); return TRUE; |
From: <svn...@op...> - 2009-09-17 00:57:17
|
Author: dgollub Date: Thu Sep 17 02:18:36 2009 New Revision: 5777 URL: http://www.opensync.org/changeset/5777 Log: Port syncml plugin to plugin_env register API changes. See #1087 Modified: plugins/syncml/src/syncml_plugin.c Modified: plugins/syncml/src/syncml_plugin.c ============================================================================== --- plugins/syncml/src/syncml_plugin.c Thu Sep 17 02:18:01 2009 (r5776) +++ plugins/syncml/src/syncml_plugin.c Thu Sep 17 02:18:36 2009 (r5777) @@ -49,7 +49,9 @@ osync_plugin_set_finalize(plugin, finalize); osync_plugin_set_discover(plugin, syncml_http_server_discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); plugin = osync_plugin_new(error); @@ -65,7 +67,9 @@ osync_plugin_set_finalize(plugin, finalize); osync_plugin_set_discover(plugin, syncml_http_client_discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); #endif @@ -82,7 +86,9 @@ osync_plugin_set_finalize(plugin, finalize); osync_plugin_set_discover(plugin, syncml_obex_client_discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); return TRUE; |
From: <svn...@op...> - 2009-09-17 00:52:03
|
Author: dgollub Date: Thu Sep 17 02:15:23 2009 New Revision: 5772 URL: http://www.opensync.org/changeset/5772 Log: Make plugin/format enviroment API more future-proof and add for all register interfaces an error struct to the parameter list refs #1087, comment:36 Modified: trunk/opensync/format/opensync_format_env.c trunk/opensync/format/opensync_format_env.h trunk/opensync/format/opensync_format_env_internals.h trunk/opensync/plugin/opensync_plugin_env.c trunk/opensync/plugin/opensync_plugin_env.h trunk/tests/engine-tests/check_engine.c trunk/tests/engine-tests/check_engine_error.c trunk/tests/format-tests/check_conv.c trunk/tests/format-tests/check_format_env.c trunk/tests/mock-plugin/mock_format.c trunk/tests/mock-plugin/mock_sync.c trunk/wrapper/opensync-format.i trunk/wrapper/opensync-plugin.i Modified: trunk/opensync/format/opensync_format_env.c ============================================================================== --- trunk/opensync/format/opensync_format_env.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/opensync/format/opensync_format_env.c Thu Sep 17 02:15:23 2009 (r5772) @@ -810,13 +810,15 @@ return FALSE; } -void osync_format_env_register_objformat(OSyncFormatEnv *env, OSyncObjFormat *format) +osync_bool osync_format_env_register_objformat(OSyncFormatEnv *env, OSyncObjFormat *format, OSyncError **error) { osync_assert(env); osync_assert(format); env->objformats = osync_list_append(env->objformats, format); osync_objformat_ref(format); + + return TRUE; } OSyncObjFormat *osync_format_env_find_objformat(OSyncFormatEnv *env, const char *name) @@ -852,7 +854,7 @@ return osync_list_copy(env->objformats); } -void osync_format_env_register_converter(OSyncFormatEnv *env, OSyncFormatConverter *converter, OSyncError **error) +osync_bool osync_format_env_register_converter(OSyncFormatEnv *env, OSyncFormatConverter *converter, OSyncError **error) { osync_assert(env); osync_assert(converter); @@ -863,13 +865,18 @@ OSyncFormatConverter *conv = osync_converter_new_detector(osync_converter_get_targetformat(converter), osync_converter_get_sourceformat(converter), NULL, error); if (!conv) - return; + goto error; env->converters = osync_list_append(env->converters, conv); } env->converters = osync_list_append(env->converters, converter); osync_converter_ref(converter); + + return TRUE; + +error: + return FALSE; } OSyncFormatConverter *osync_format_env_find_converter(OSyncFormatEnv *env, OSyncObjFormat *sourceformat, OSyncObjFormat *targetformat) @@ -933,13 +940,15 @@ return osync_list_copy(env->converters); } -void osync_format_env_register_caps_converter(OSyncFormatEnv *env, OSyncCapsConverter *converter, OSyncError **error) +osync_bool osync_format_env_register_caps_converter(OSyncFormatEnv *env, OSyncCapsConverter *converter, OSyncError **error) { osync_assert(env); osync_assert(converter); env->caps_converters = osync_list_append(env->caps_converters, converter); osync_caps_converter_ref(converter); + + return TRUE; } OSyncCapsConverter *osync_format_env_find_caps_converter(OSyncFormatEnv *env, const char *sourcecapsformat, const char *targetcapsformat) @@ -987,13 +996,15 @@ return r; } -void osync_format_env_register_filter(OSyncFormatEnv *env, OSyncCustomFilter *filter) +osync_bool osync_format_env_register_filter(OSyncFormatEnv *env, OSyncCustomFilter *filter, OSyncError **error) { osync_assert(env); osync_assert(filter); env->custom_filters = osync_list_append(env->custom_filters, filter); osync_custom_filter_ref(filter); + + return TRUE; } unsigned int osync_format_env_num_filters(OSyncFormatEnv *env) @@ -1009,13 +1020,15 @@ } -void osync_format_env_register_merger(OSyncFormatEnv *env, OSyncMerger *merger) +osync_bool osync_format_env_register_merger(OSyncFormatEnv *env, OSyncMerger *merger, OSyncError **error) { osync_assert(env); osync_assert(merger); env->mergers = osync_list_append(env->mergers, merger); osync_merger_ref(merger); + + return TRUE; } Modified: trunk/opensync/format/opensync_format_env.h ============================================================================== --- trunk/opensync/format/opensync_format_env.h Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/opensync/format/opensync_format_env.h Thu Sep 17 02:15:23 2009 (r5772) @@ -87,9 +87,11 @@ * * @param env Pointer to the environment * @param format Pointer ot the Object Format which sould be registred + * @param error The location to return a error to + * @returns TRUE if successful, FALSE otherwise * */ -OSYNC_EXPORT void osync_format_env_register_objformat(OSyncFormatEnv *env, OSyncObjFormat *format); +OSYNC_EXPORT osync_bool osync_format_env_register_objformat(OSyncFormatEnv *env, OSyncObjFormat *format, OSyncError **error); /** @brief Finds the object format with the given name * @@ -116,8 +118,9 @@ * @param env The format environment * @param converter Pointer of the Format Converter or Detector * @param error An OSyncError + * @returns TRUE on success, or FALSE */ -OSYNC_EXPORT void osync_format_env_register_converter(OSyncFormatEnv *env, OSyncFormatConverter *converter, OSyncError **error); +OSYNC_EXPORT osync_bool osync_format_env_register_converter(OSyncFormatEnv *env, OSyncFormatConverter *converter, OSyncError **error); /** @brief Finds first converter with the given source and target format * @@ -146,9 +149,11 @@ * * @param env The format environment * @param converter Pointer of the Capabilities Converter - * @param error An OSyncError + * @param error The location to return a error to + * @returns TRUE if successful, FALSE otherwise + */ -OSYNC_EXPORT void osync_format_env_register_caps_converter(OSyncFormatEnv *env, OSyncCapsConverter *converter, OSyncError **error); +OSYNC_EXPORT osync_bool osync_format_env_register_caps_converter(OSyncFormatEnv *env, OSyncCapsConverter *converter, OSyncError **error); /** @brief Finds first capabilities converter with the given source and target capsformat * @@ -281,8 +286,10 @@ * * @param env The format environment * @param merger Pointer of the merger + * @param error The location to return a error to + * @returns TRUE if successful, FALSE otherwise */ -OSYNC_EXPORT void osync_format_env_register_merger(OSyncFormatEnv *env, OSyncMerger *merger); +OSYNC_EXPORT osync_bool osync_format_env_register_merger(OSyncFormatEnv *env, OSyncMerger *merger, OSyncError **error); OSYNC_EXPORT OSyncMerger *osync_format_env_find_merger(OSyncFormatEnv *env, const char *objformat, const char *capsformat); Modified: trunk/opensync/format/opensync_format_env_internals.h ============================================================================== --- trunk/opensync/format/opensync_format_env_internals.h Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/opensync/format/opensync_format_env_internals.h Thu Sep 17 02:15:23 2009 (r5772) @@ -94,9 +94,11 @@ * * @param env The format environment * @param filter Pointer of Custom Filter to register + * @param error The location to return a error to + * @returns TRUE if successful, FALSE otherwise * */ -OSYNC_TEST_EXPORT void osync_format_env_register_filter(OSyncFormatEnv *env, OSyncCustomFilter *filter); +OSYNC_TEST_EXPORT osync_bool osync_format_env_register_filter(OSyncFormatEnv *env, OSyncCustomFilter *filter, OSyncError **error); /** @brief Returns the number of available filters * Modified: trunk/opensync/plugin/opensync_plugin_env.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_env.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/opensync/plugin/opensync_plugin_env.c Thu Sep 17 02:15:23 2009 (r5772) @@ -139,13 +139,15 @@ return FALSE; } -void osync_plugin_env_register_plugin(OSyncPluginEnv *env, OSyncPlugin *plugin) +osync_bool osync_plugin_env_register_plugin(OSyncPluginEnv *env, OSyncPlugin *plugin, OSyncError **error) { osync_assert(env); osync_assert(plugin); env->plugins = osync_list_append(env->plugins, plugin); osync_plugin_ref(plugin); + + return TRUE; } osync_bool osync_plugin_env_load_module(OSyncPluginEnv *env, const char *filename, OSyncError **error) Modified: trunk/opensync/plugin/opensync_plugin_env.h ============================================================================== --- trunk/opensync/plugin/opensync_plugin_env.h Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/opensync/plugin/opensync_plugin_env.h Thu Sep 17 02:15:23 2009 (r5772) @@ -86,9 +86,11 @@ * * @param env Pointer to a plugin environment * @param plugin Pointer to plugin which should get added to environment + * @param error Pointer to a error struct to return a error + * @returns TRUE on success, FALSE otherwise * */ -OSYNC_EXPORT void osync_plugin_env_register_plugin(OSyncPluginEnv *env, OSyncPlugin *plugin); +OSYNC_EXPORT osync_bool osync_plugin_env_register_plugin(OSyncPluginEnv *env, OSyncPlugin *plugin, OSyncError **error); /** @brief Finds the plugin with the given name * Modified: trunk/tests/engine-tests/check_engine.c ============================================================================== --- trunk/tests/engine-tests/check_engine.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/tests/engine-tests/check_engine.c Thu Sep 17 02:15:23 2009 (r5772) @@ -327,10 +327,10 @@ engine->pluginenv = osync_plugin_env_new(NULL); if (debug->plugin) - osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin); + osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin, NULL); if (debug->plugin2) - osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin2); + osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin2, NULL); } START_TEST (engine_sync) Modified: trunk/tests/engine-tests/check_engine_error.c ============================================================================== --- trunk/tests/engine-tests/check_engine_error.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/tests/engine-tests/check_engine_error.c Thu Sep 17 02:15:23 2009 (r5772) @@ -271,10 +271,10 @@ engine->pluginenv = osync_plugin_env_new(NULL); if (debug->plugin) - osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin); + osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin, NULL); if (debug->plugin2) - osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin2); + osync_plugin_env_register_plugin(engine->pluginenv, debug->plugin2, NULL); } START_TEST (engine_error_single_init_error) Modified: trunk/tests/format-tests/check_conv.c ============================================================================== --- trunk/tests/format-tests/check_conv.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/tests/format-tests/check_conv.c Thu Sep 17 02:15:23 2009 (r5772) @@ -33,7 +33,7 @@ fail_unless(format != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); @@ -58,7 +58,7 @@ fail_unless(osync_format_env_num_objformats(env) == 0, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); fail_unless(osync_format_env_num_objformats(env) == 1, NULL); @@ -83,7 +83,7 @@ fail_unless(format != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); fail_unless(osync_format_env_find_objformat(env, "format") == format, NULL); @@ -107,7 +107,7 @@ fail_unless(format != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); fail_unless(osync_format_env_find_objformat(env, "format2") == NULL, NULL); @@ -138,12 +138,12 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -174,12 +174,12 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -215,12 +215,12 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -252,17 +252,17 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -302,7 +302,7 @@ fail_unless(filter != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_filter(env, filter); + osync_format_env_register_filter(env, filter, NULL); osync_custom_filter_unref(filter); @@ -327,7 +327,7 @@ fail_unless(osync_format_env_num_filters(env) == 0, NULL); - osync_format_env_register_filter(env, filter); + osync_format_env_register_filter(env, filter, NULL); fail_unless(osync_format_env_num_filters(env) == 1, NULL); fail_unless(osync_format_env_nth_filter(env, 0) == filter, NULL); @@ -381,13 +381,13 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); @@ -444,19 +444,19 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -508,17 +508,17 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -566,25 +566,25 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -649,25 +649,25 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -731,22 +731,22 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -801,49 +801,49 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncObjFormat *format5 = osync_objformat_new("format5", "objtype", &error); fail_unless(format5 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); OSyncObjFormat *format6 = osync_objformat_new("format6", "objtype", &error); fail_unless(format6 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format6, format_simple_destroy); - osync_format_env_register_objformat(env, format6); + osync_format_env_register_objformat(env, format6, NULL); OSyncObjFormat *format7 = osync_objformat_new("format7", "objtype", &error); fail_unless(format7 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format7, format_simple_destroy); - osync_format_env_register_objformat(env, format7); + osync_format_env_register_objformat(env, format7, NULL); OSyncObjFormat *format8 = osync_objformat_new("format8", "objtype", &error); fail_unless(format8 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format8, format_simple_destroy); - osync_format_env_register_objformat(env, format8); + osync_format_env_register_objformat(env, format8, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -942,17 +942,17 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -1006,22 +1006,22 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -1083,31 +1083,31 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncObjFormat *format5 = osync_objformat_new("format5", "objtype", &error); fail_unless(format5 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -1183,31 +1183,31 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); fail_unless(format4 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); OSyncObjFormat *format5 = osync_objformat_new("format5", "objtype", &error); fail_unless(format5 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter1 != NULL, NULL); @@ -1328,19 +1328,19 @@ OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_addtest, &error); @@ -1390,19 +1390,19 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_addtest, &error); fail_unless(converter1 != NULL, NULL); @@ -1480,19 +1480,19 @@ fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_DECAP, format1, format2, convert_addtest, &error); fail_unless(converter1 != NULL, NULL); @@ -1580,27 +1580,27 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format4 = osync_objformat_new("F4", "O1", &error); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); OSyncObjFormat *format5 = osync_objformat_new("F5", "O1", &error); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); OSyncObjFormat *format6 = osync_objformat_new("F6", "O1", &error); - osync_format_env_register_objformat(env, format6); + osync_format_env_register_objformat(env, format6, NULL); osync_objformat_set_destroy_func(format6, format_simple_destroy); /*** Detectors ***/ @@ -1717,19 +1717,19 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format4 = osync_objformat_new("F4", "O1", &error); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); /*** Detectors ***/ @@ -1848,23 +1848,23 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format4 = osync_objformat_new("F4", "O1", &error); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); OSyncObjFormat *format5 = osync_objformat_new("F5", "O1", &error); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); /*** Detectors ***/ @@ -1961,31 +1961,31 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "F", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "F", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "F", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format4 = osync_objformat_new("F4", "F", &error); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); OSyncObjFormat *format5 = osync_objformat_new("F5", "F", &error); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); OSyncObjFormat *format6 = osync_objformat_new("F6", "F", &error); - osync_format_env_register_objformat(env, format6); + osync_format_env_register_objformat(env, format6, NULL); osync_objformat_set_destroy_func(format6, format_simple_destroy); OSyncObjFormat *format_g1 = osync_objformat_new("G1", "G", &error); - osync_format_env_register_objformat(env, format_g1); + osync_format_env_register_objformat(env, format_g1, NULL); osync_objformat_set_destroy_func(format_g1, format_simple_destroy); /*** Converter ***/ @@ -2070,31 +2070,31 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "F", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "F", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "F", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format4 = osync_objformat_new("F4", "F", &error); - osync_format_env_register_objformat(env, format4); + osync_format_env_register_objformat(env, format4, NULL); osync_objformat_set_destroy_func(format4, format_simple_destroy); OSyncObjFormat *format5 = osync_objformat_new("F5", "F", &error); - osync_format_env_register_objformat(env, format5); + osync_format_env_register_objformat(env, format5, NULL); osync_objformat_set_destroy_func(format5, format_simple_destroy); OSyncObjFormat *format6 = osync_objformat_new("F6", "F", &error); - osync_format_env_register_objformat(env, format6); + osync_format_env_register_objformat(env, format6, NULL); osync_objformat_set_destroy_func(format6, format_simple_destroy); OSyncObjFormat *format_g1 = osync_objformat_new("G1", "G", &error); - osync_format_env_register_objformat(env, format_g1); + osync_format_env_register_objformat(env, format_g1, NULL); osync_objformat_set_destroy_func(format_g1, format_simple_destroy); /*** Converter ***/ @@ -2164,15 +2164,15 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); /*** Detectors ***/ @@ -2238,19 +2238,19 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format_plain = osync_objformat_new("plain", "O1", &error); - osync_format_env_register_objformat(env, format_plain); + osync_format_env_register_objformat(env, format_plain, NULL); osync_objformat_set_destroy_func(format_plain, format_simple_destroy); /*** Detectors ***/ @@ -2363,19 +2363,19 @@ fail_unless(error == NULL, NULL); OSyncObjFormat *format1 = osync_objformat_new("F1", "O1", &error); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); osync_objformat_set_destroy_func(format1, format_simple_destroy); OSyncObjFormat *format2 = osync_objformat_new("F2", "O1", &error); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); osync_objformat_set_destroy_func(format2, format_simple_destroy); OSyncObjFormat *format3 = osync_objformat_new("F3", "O1", &error); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); osync_objformat_set_destroy_func(format3, format_simple_destroy); OSyncObjFormat *format_plain = osync_objformat_new("plain", "O1", &error); - osync_format_env_register_objformat(env, format_plain); + osync_format_env_register_objformat(env, format_plain, NULL); osync_objformat_set_destroy_func(format_plain, format_simple_destroy); /*** Detectors ***/ Modified: trunk/tests/format-tests/check_format_env.c ============================================================================== --- trunk/tests/format-tests/check_format_env.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/tests/format-tests/check_format_env.c Thu Sep 17 02:15:23 2009 (r5772) @@ -34,7 +34,7 @@ fail_unless(format != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); @@ -59,7 +59,7 @@ fail_unless(osync_format_env_num_objformats(env) == 0, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); fail_unless(osync_format_env_num_objformats(env) == 1, NULL); @@ -84,7 +84,7 @@ fail_unless(format != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); fail_unless(osync_format_env_find_objformat(env, "format") == format, NULL); @@ -108,7 +108,7 @@ fail_unless(format != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, NULL); osync_objformat_unref(format); fail_unless(osync_format_env_find_objformat(env, "format2") == NULL, NULL); @@ -136,12 +136,12 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -172,12 +172,12 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -213,12 +213,12 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -250,17 +250,17 @@ OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); fail_unless(format1 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format1); + osync_format_env_register_objformat(env, format1, NULL); OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); fail_unless(format2 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format2); + osync_format_env_register_objformat(env, format2, NULL); OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); fail_unless(format3 != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_objformat(env, format3); + osync_format_env_register_objformat(env, format3, NULL); OSyncFormatConverter *converter = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); fail_unless(converter != NULL, NULL); @@ -300,7 +300,7 @@ fail_unless(filter != NULL, NULL); fail_unless(error == NULL, NULL); - osync_format_env_register_filter(env, filter); + osync_format_env_register_filter(env, filter, NULL); osync_custom_filter_unref(filter); @@ -325,7 +325,7 @@ fail_unless(osync_format_env_num_filters(env) == 0, NULL); - osync_format_env_register_filter(env, filter); + osync_format_env_register_filter(env, filter, NULL); fail_unless(osync_format_env_num_filters(env) == 1, NULL); fail_unless(osync_format_env_nth_filter(env, 0) == filter, NULL); Modified: trunk/tests/mock-plugin/mock_format.c ============================================================================== --- trunk/tests/mock-plugin/mock_format.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/tests/mock-plugin/mock_format.c Thu Sep 17 02:15:23 2009 (r5772) @@ -252,7 +252,7 @@ _format_set_functions(format); - osync_format_env_register_objformat(env, format); + osync_assert(osync_format_env_register_objformat(env, format, error)); osync_objformat_unref(format); /* mockformat2 */ @@ -262,7 +262,7 @@ _format_set_functions(format); osync_objformat_set_destroy_func(format, destroy_mockformat2); - osync_format_env_register_objformat(env, format); + osync_assert(osync_format_env_register_objformat(env, format, error)); osync_objformat_unref(format); /* mockformat3 */ @@ -271,7 +271,7 @@ _format_set_functions(format); - osync_format_env_register_objformat(env, format); + osync_assert(osync_format_env_register_objformat(env, format, error)); osync_objformat_unref(format); return TRUE; Modified: trunk/tests/mock-plugin/mock_sync.c ============================================================================== --- trunk/tests/mock-plugin/mock_sync.c Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/tests/mock-plugin/mock_sync.c Thu Sep 17 02:15:23 2009 (r5772) @@ -768,7 +768,9 @@ osync_plugin_set_finalize(plugin, mock_finalize); osync_plugin_set_discover(plugin, mock_discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); plugin = osync_plugin_new(error); @@ -783,11 +785,16 @@ osync_plugin_set_finalize(plugin, mock_finalize); osync_plugin_set_discover(plugin, mock_discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); return TRUE; + +error: + return FALSE; } int get_version(void) Modified: trunk/wrapper/opensync-format.i ============================================================================== --- trunk/wrapper/opensync-format.i Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/wrapper/opensync-format.i Thu Sep 17 02:15:23 2009 (r5772) @@ -166,7 +166,9 @@ } void register_objformat(ObjFormat *format) { - osync_format_env_register_objformat(self, format); + Error *err = NULL; + osync_format_env_register_objformat(self, format, &err); + raise_exception_on_error(err); } ObjFormat *find_objformat(const char *name) { @@ -191,7 +193,9 @@ /* void register_filter(CustomFilter *filter) { - osync_format_env_register_filter(self, filter); + Error *err = NULL; + osync_format_env_register_filter(self, filter, &err); + raise_exception_on_error(err); } int num_filters() { Modified: trunk/wrapper/opensync-plugin.i ============================================================================== --- trunk/wrapper/opensync-plugin.i Thu Sep 17 01:30:03 2009 (r5771) +++ trunk/wrapper/opensync-plugin.i Thu Sep 17 02:15:23 2009 (r5772) @@ -109,7 +109,9 @@ } void register_plugin(Plugin *plugin) { - osync_plugin_env_register_plugin(self, plugin); + Error *err = NULL; + osync_plugin_env_register_plugin(self, plugin, &err); + raise_exception_on_error(err); } Plugin *find_plugin(const char *name) { |
From: <svn...@op...> - 2009-09-17 00:38:47
|
Author: dgollub Date: Thu Sep 17 02:16:52 2009 New Revision: 5773 URL: http://www.opensync.org/changeset/5773 Log: Port xmlformat plugin to format_env register API changes. See #1087 Modified: format-plugins/xmlformat/trunk/src/xmlformat-doc.c format-plugins/xmlformat/trunk/src/xmlformat.c Modified: format-plugins/xmlformat/trunk/src/xmlformat-doc.c ============================================================================== --- format-plugins/xmlformat/trunk/src/xmlformat-doc.c Thu Sep 17 02:15:23 2009 (r5772) +++ format-plugins/xmlformat/trunk/src/xmlformat-doc.c Thu Sep 17 02:16:52 2009 (r5773) @@ -108,17 +108,21 @@ OSyncError *error = NULL; OSyncObjFormat *format = osync_objformat_new(name, objtype, &error); - if (!format) { - osync_trace(TRACE_ERROR, "Unable to register format: %s", osync_error_print(&error)); - osync_error_unref(&error); - return FALSE; - } + + if (!format) + goto error; osync_objformat_set_destroy_func(format, destroy); - osync_format_env_register_objformat(env, format); + if (!osync_format_env_register_objformat(env, format, &error)) + goto error; osync_objformat_unref(format); return TRUE; + +error: + osync_trace(TRACE_ERROR, "Unable to register format: %s", osync_error_print(&error)); + osync_error_unref(&error); + return FALSE; } void get_format_info(OSyncFormatEnv *env) Modified: format-plugins/xmlformat/trunk/src/xmlformat.c ============================================================================== --- format-plugins/xmlformat/trunk/src/xmlformat.c Thu Sep 17 02:15:23 2009 (r5772) +++ format-plugins/xmlformat/trunk/src/xmlformat.c Thu Sep 17 02:16:52 2009 (r5773) @@ -398,7 +398,9 @@ osync_merger_set_demerge_func(merger, demerge_xmlformat); - osync_format_env_register_merger(env, merger); + if (!osync_format_env_register_merger(env, merger, error)) + goto error; + osync_merger_unref(merger); return TRUE; @@ -434,7 +436,9 @@ osync_objformat_set_demarshal_func(format, demarshal_xmlformat); - osync_format_env_register_objformat(env, format); + if (!osync_format_env_register_objformat(env, format, &error)) + goto error; + osync_objformat_unref(format); if (!register_merger(env, "xmlformat-contact", &error)) @@ -461,7 +465,9 @@ osync_objformat_set_marshal_func(format, marshal_xmlformat); osync_objformat_set_demarshal_func(format, demarshal_xmlformat); - osync_format_env_register_objformat(env, format); + if (!osync_format_env_register_objformat(env, format, &error)) + goto error; + osync_objformat_unref(format); if (!register_merger(env, "xmlformat-event", &error)) @@ -488,7 +494,9 @@ osync_objformat_set_marshal_func(format, marshal_xmlformat); osync_objformat_set_demarshal_func(format, demarshal_xmlformat); - osync_format_env_register_objformat(env, format); + if (!osync_format_env_register_objformat(env, format, &error)) + goto error; + osync_objformat_unref(format); if (!register_merger(env, "xmlformat-todo", &error)) @@ -515,7 +523,9 @@ osync_objformat_set_marshal_func(format, marshal_xmlformat); osync_objformat_set_demarshal_func(format, demarshal_xmlformat); - osync_format_env_register_objformat(env, format); + if (!osync_format_env_register_objformat(env, format, &error)) + goto error; + osync_objformat_unref(format); if (!register_merger(env, "xmlformat-note", &error)) |
From: <svn...@op...> - 2009-09-17 00:37:36
|
Author: dgollub Date: Thu Sep 17 02:18:01 2009 New Revision: 5776 URL: http://www.opensync.org/changeset/5776 Log: Port evo2-sync and evo2 format plugin to format_env and plugin_env register API changes. See #1087 Modified: plugins/evolution2/src/evolution2_sync.c Modified: plugins/evolution2/src/evolution2_sync.c ============================================================================== --- plugins/evolution2/src/evolution2_sync.c Thu Sep 17 02:17:44 2009 (r5775) +++ plugins/evolution2/src/evolution2_sync.c Thu Sep 17 02:18:01 2009 (r5776) @@ -221,7 +221,9 @@ osync_plugin_set_finalize(plugin, evo2_finalize); osync_plugin_set_discover(plugin, evo2_discover); - osync_plugin_env_register_plugin(env, plugin); + if (!osync_plugin_env_register_plugin(env, plugin, error)) + goto error; + osync_plugin_unref(plugin); return TRUE; |
From: <svn...@op...> - 2009-09-16 23:30:34
|
Author: dgollub Date: Thu Sep 17 01:30:03 2009 New Revision: 5771 URL: http://www.opensync.org/changeset/5771 Log: Quick and dirty port to latest xmlfield API changes for proper error handling. Modified: format-plugins/vformat/src/xmlformat-common.c format-plugins/vformat/src/xmlformat-common.h format-plugins/vformat/src/xmlformat-recurrence.c format-plugins/vformat/src/xmlformat-vcalendar.c format-plugins/vformat/src/xmlformat-vcard.c Modified: format-plugins/vformat/src/xmlformat-common.c ============================================================================== --- format-plugins/vformat/src/xmlformat-common.c Thu Sep 17 01:13:38 2009 (r5770) +++ format-plugins/vformat/src/xmlformat-common.c Thu Sep 17 01:30:03 2009 (r5771) @@ -28,57 +28,78 @@ { osync_trace(TRACE_INTERNAL, "Handling %s attribute with timestamp", name); OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, name, error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } + + if (!xmlfield) + goto error; + char *timestamp = osync_time_timestamp(vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "Content", timestamp); - free(timestamp); + if (!osync_xmlfield_set_key_value(xmlfield, "Content", timestamp, error)) + goto error; + + osync_free(timestamp); + return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; } OSyncXMLField *handle_attribute_simple_content(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, const char *name, OSyncError **error) { osync_trace(TRACE_INTERNAL, "Handling %s attribute", name); OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, name, error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + if (!xmlfield) + goto error; + + if (!osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0), error)) + goto error; + return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; + } OSyncXMLField *handle_categories_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error) { osync_trace(TRACE_INTERNAL, "Handling Categories attribute"); OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, "Categories", error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } + if (!xmlfield) + goto error; GList *values = vformat_attribute_get_values_decoded(attr); for (; values; values = values->next) { GString *retstr = (GString *)values->data; g_assert(retstr); - osync_xmlfield_add_key_value(xmlfield, "Category", retstr->str); + osync_xmlfield_add_key_value(xmlfield, "Category", retstr->str, error); } return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; } OSyncXMLField *handle_class_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error) { osync_trace(TRACE_INTERNAL, "Handling Class attribute"); OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, "Class", error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + + if (!xmlfield) + goto error; + + if (!osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0), error)) + goto error; + return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; } OSyncXMLField *handle_uid_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error) @@ -91,10 +112,27 @@ return handle_attribute_simple_content(xmlformat, attr, "Url", error); } -void handle_simple_xmlfield(OSyncXMLField *xmlfield, VFormatAttribute *attr, const char *name) + +/* TODO: changed prototype to: + * osync_bool handle_simple_xmlfield(OSyncXMLField *xmlfield, VFormatAttribute *attr, const char *name, OSyncError **error) + */ +osync_bool handle_simple_xmlfield(OSyncXMLField *xmlfield, VFormatAttribute *attr, const char *name) { osync_trace(TRACE_INTERNAL, "Handling %s component attribute", name); - osync_xmlfield_set_key_value(xmlfield, name, vformat_attribute_get_nth_value(attr, 0)); + + if (!osync_xmlfield_set_key_value(xmlfield, name, vformat_attribute_get_nth_value(attr, 0), NULL)) + goto error; + + return TRUE; + +error: + return FALSE; +} + +/* FIXME - replace all callers with proper error handling code! */ +osync_bool FIXME_xmlfield_set_key_value(OSyncXMLField *xmlfield, const char *key, const char *value) +{ + return osync_xmlfield_set_key_value(xmlfield, key, value, NULL /* ERROR */); } /* XML Attributes */ Modified: format-plugins/vformat/src/xmlformat-common.h ============================================================================== --- format-plugins/vformat/src/xmlformat-common.h Thu Sep 17 01:13:38 2009 (r5770) +++ format-plugins/vformat/src/xmlformat-common.h Thu Sep 17 01:30:03 2009 (r5771) @@ -55,7 +55,10 @@ OSyncXMLField *handle_class_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error); OSyncXMLField *handle_uid_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error); OSyncXMLField *handle_url_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error); -void handle_simple_xmlfield(OSyncXMLField *xmlfield, VFormatAttribute *attr, const char *name); +// TODO: osync_bool handle_simple_xmlfield(OSyncXMLField *xmlfield, VFormatAttribute *attr, const char *name, OSyncError **error); +osync_bool handle_simple_xmlfield(OSyncXMLField *xmlfield, VFormatAttribute *attr, const char *name); + +osync_bool FIXME_xmlfield_set_key_value(OSyncXMLField *xmlfield, const char *key, const char *value); /** XML Attributes **/ VFormatAttribute *handle_xml_attribute_simple_content(VFormat *vformat, OSyncXMLField *xmlfield, const char *name, const char *encoding); Modified: format-plugins/vformat/src/xmlformat-recurrence.c ============================================================================== --- format-plugins/vformat/src/xmlformat-recurrence.c Thu Sep 17 01:13:38 2009 (r5770) +++ format-plugins/vformat/src/xmlformat-recurrence.c Thu Sep 17 01:30:03 2009 (r5771) @@ -66,7 +66,7 @@ } /* set Frequency */ - osync_xmlfield_set_key_value(xmlfield, "Frequency", frequency); + FIXME_xmlfield_set_key_value(xmlfield, "Frequency", frequency); return frequency_state; } @@ -118,7 +118,7 @@ /* COUNT: #20 */ if (sscanf(duration_block, "#%d", &count) == 1) { - osync_xmlfield_set_key_value(xmlfield, "Count", duration_block+1); + FIXME_xmlfield_set_key_value(xmlfield, "Count", duration_block+1); return; } @@ -142,7 +142,7 @@ until = g_strdup(duration_block); } - osync_xmlfield_set_key_value(xmlfield, "Until", until); + FIXME_xmlfield_set_key_value(xmlfield, "Until", until); g_free(until); } @@ -183,7 +183,7 @@ frequency_block++; /* set Interval */ - osync_xmlfield_set_key_value(xmlfield, "Interval", frequency_block); + FIXME_xmlfield_set_key_value(xmlfield, "Interval", frequency_block); /* get Frequency modifier (ByDay, ByMonthDay, etc. */ if (counter > 2) @@ -194,16 +194,16 @@ switch(frequency_state) { case 2: case 3: - osync_xmlfield_set_key_value(xmlfield, "ByDay", freq_mod); + FIXME_xmlfield_set_key_value(xmlfield, "ByDay", freq_mod); break; case 4: - osync_xmlfield_set_key_value(xmlfield, "ByMonthDay", freq_mod); + FIXME_xmlfield_set_key_value(xmlfield, "ByMonthDay", freq_mod); break; case 5: - osync_xmlfield_set_key_value(xmlfield, "ByYearDay", freq_mod); + FIXME_xmlfield_set_key_value(xmlfield, "ByYearDay", freq_mod); break; case 6: - osync_xmlfield_set_key_value(xmlfield, "ByMonth", freq_mod); + FIXME_xmlfield_set_key_value(xmlfield, "ByMonth", freq_mod); break; default: break; @@ -406,10 +406,8 @@ OSyncXMLField *convert_ical_rrule_to_xml(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, const char *rulename, OSyncError **error) { OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, rulename, error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } + if (!xmlfield) + goto error; osync_bool extended = FALSE; @@ -497,10 +495,15 @@ int i; for (i = 0; i <= 13; i++) { if (rrules[i].value != NULL) - osync_xmlfield_add_key_value(xmlfield, rrules[i].name, rrules[i].value); + if (!osync_xmlfield_add_key_value(xmlfield, rrules[i].name, rrules[i].value, error)) + goto error; } return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; } Modified: format-plugins/vformat/src/xmlformat-vcalendar.c ============================================================================== --- format-plugins/vformat/src/xmlformat-vcalendar.c Thu Sep 17 01:13:38 2009 (r5770) +++ format-plugins/vformat/src/xmlformat-vcalendar.c Thu Sep 17 01:30:03 2009 (r5771) @@ -148,19 +148,19 @@ if (!strcasecmp(name, "AALARM")) { osync_trace(TRACE_INTERNAL, "Handling aalarm attribute"); xmlfield = osync_xmlfield_new(xmlformat, "AlarmAudio", error); - osync_xmlfield_set_key_value(xmlfield, "AlarmAction", "AUDIO"); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmAction", "AUDIO"); } else if (!strcasecmp(name, "DALARM")) { osync_trace(TRACE_INTERNAL, "Handling dalarm attribute"); xmlfield = osync_xmlfield_new(xmlformat, "AlarmDisplay", error); - osync_xmlfield_set_key_value(xmlfield, "AlarmAction", "DISPLAY"); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmAction", "DISPLAY"); } else if (!strcasecmp(name, "MALARM")) { osync_trace(TRACE_INTERNAL, "Handling malarm attribute"); xmlfield = osync_xmlfield_new(xmlformat, "AlarmEmail", error); - osync_xmlfield_set_key_value(xmlfield, "AlarmAction", "EMAIL"); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmAction", "EMAIL"); } else if (!strcasecmp(name, "PALARM")) { osync_trace(TRACE_INTERNAL, "Handling palarm attribute"); xmlfield = osync_xmlfield_new(xmlformat, "AlarmProcedure", error); - osync_xmlfield_set_key_value(xmlfield, "AlarmAction", "PROCEDURE"); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmAction", "PROCEDURE"); } if(!xmlfield) { @@ -169,14 +169,14 @@ } if (!strcasecmp(name, "AALARM") || !strcasecmp(name, "PALARM")) { - osync_xmlfield_set_key_value(xmlfield, "AlarmAttach", vformat_attribute_get_nth_value(attr, 3)); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmAttach", vformat_attribute_get_nth_value(attr, 3)); } else { - osync_xmlfield_set_key_value(xmlfield, "AlarmDescription", vformat_attribute_get_nth_value(attr, 3)); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmDescription", vformat_attribute_get_nth_value(attr, 3)); } - osync_xmlfield_set_key_value(xmlfield, "AlarmRepeat", vformat_attribute_get_nth_value(attr, 2)); - osync_xmlfield_set_key_value(xmlfield, "AlarmRepeatDuration", vformat_attribute_get_nth_value(attr, 1)); - osync_xmlfield_set_key_value(xmlfield, "AlarmTrigger", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmRepeat", vformat_attribute_get_nth_value(attr, 2)); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmRepeatDuration", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "AlarmTrigger", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -540,18 +540,19 @@ { osync_trace(TRACE_INTERNAL, "Handling Duration attribute"); OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, "Duration", error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } + + if (!xmlfield) + goto error; const char *duration = vformat_attribute_get_nth_value(attr, 0); // check if duration is positive or negative if (duration[0] == '-') { - osync_xmlfield_add_key_value(xmlfield, "InAdvance", "TRUE"); + if (!osync_xmlfield_add_key_value(xmlfield, "InAdvance", "TRUE", error)) + goto error; } else { - osync_xmlfield_add_key_value(xmlfield, "InAdvance", "FALSE"); + if (!osync_xmlfield_add_key_value(xmlfield, "InAdvance", "FALSE", error)) + goto error; } int i, end, digits; @@ -560,19 +561,24 @@ for (i = 1; i < end; i++) { switch (duration[i]) { case 'W': - osync_xmlfield_add_key_value(xmlfield, "Weeks", value); + if (!osync_xmlfield_add_key_value(xmlfield, "Weeks", value, error)) + goto error; break; case 'D': - osync_xmlfield_add_key_value(xmlfield, "Days", value); + if (!osync_xmlfield_add_key_value(xmlfield, "Days", value, error)) + goto error; break; case 'H': - osync_xmlfield_add_key_value(xmlfield, "Hours", value); + if (!osync_xmlfield_add_key_value(xmlfield, "Hours", value, error)) + goto error; break; case 'M': - osync_xmlfield_add_key_value(xmlfield, "Minutes", value); + if (!osync_xmlfield_add_key_value(xmlfield, "Minutes", value, error)) + goto error; break; case 'S': - osync_xmlfield_add_key_value(xmlfield, "Seconds", value); + if (!osync_xmlfield_add_key_value(xmlfield, "Seconds", value, error)) + goto error; break; case '0': case '1': @@ -599,6 +605,10 @@ g_free(value); return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; } OSyncXMLField *handle_priority_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error) @@ -624,8 +634,8 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Latitude", vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "Longitude", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "Latitude", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Longitude", vformat_attribute_get_nth_value(attr, 1)); return xmlfield; } @@ -680,10 +690,10 @@ return NULL; } - osync_xmlfield_set_key_value(xmlfield, "StatusCode", vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "StatusDescription", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "StatusCode", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "StatusDescription", vformat_attribute_get_nth_value(attr, 1)); if (vformat_attribute_get_nth_value(attr, 2) != NULL) - osync_xmlfield_set_key_value(xmlfield, "ExceptionData", vformat_attribute_get_nth_value(attr, 2)); + FIXME_xmlfield_set_key_value(xmlfield, "ExceptionData", vformat_attribute_get_nth_value(attr, 2)); return xmlfield; } @@ -713,9 +723,9 @@ const char *transp = vformat_attribute_get_nth_value(attr, 0); if (!strcmp(transp, "0") || !strcmp(transp, "OPAQUE")) { - osync_xmlfield_set_key_value(xmlfield, "Content", "OPAQUE"); + FIXME_xmlfield_set_key_value(xmlfield, "Content", "OPAQUE"); } else { - osync_xmlfield_set_key_value(xmlfield, "Content", "TRANSPARENT"); + FIXME_xmlfield_set_key_value(xmlfield, "Content", "TRANSPARENT"); } return xmlfield; @@ -1413,7 +1423,7 @@ *attributes = a->prev; // Sorting is required to have a valid XMLFormat. - osync_xmlfield_sort(xmlfield); + osync_xmlfield_sort(xmlfield, NULL /* FIXME error handling */); return; } else if (!strcmp(vformat_attribute_get_name(attr), "END")) { @@ -1421,7 +1431,7 @@ *attributes = a; // Sorting is required to have a valid XMLFormat. - osync_xmlfield_sort(xmlfield); + osync_xmlfield_sort(xmlfield, NULL /* FIXME error handling */); return; } else { @@ -1444,7 +1454,7 @@ *attributes = a->prev; // Sorting is required to have a valid XMLFormat. - osync_xmlfield_sort(xmlfield); + osync_xmlfield_sort(xmlfield, NULL /* FIXME error handling */); return; } else if (!strcmp(vformat_attribute_get_name(attr), "END")) { @@ -1452,7 +1462,7 @@ *attributes = a; // Sorting is required to have a valid XMLFormat. - osync_xmlfield_sort(xmlfield); + osync_xmlfield_sort(xmlfield, NULL /* FIXME error handling */); return; Modified: format-plugins/vformat/src/xmlformat-vcard.c ============================================================================== --- format-plugins/vformat/src/xmlformat-vcard.c Thu Sep 17 01:13:38 2009 (r5770) +++ format-plugins/vformat/src/xmlformat-vcard.c Thu Sep 17 01:30:03 2009 (r5771) @@ -153,13 +153,13 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "PostOfficeBox", vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "ExtendedAddress", vformat_attribute_get_nth_value(attr, 1)); - osync_xmlfield_set_key_value(xmlfield, "Street", vformat_attribute_get_nth_value(attr, 2)); - osync_xmlfield_set_key_value(xmlfield, "Locality", vformat_attribute_get_nth_value(attr, 3)); - osync_xmlfield_set_key_value(xmlfield, "Region", vformat_attribute_get_nth_value(attr, 4)); - osync_xmlfield_set_key_value(xmlfield, "PostalCode", vformat_attribute_get_nth_value(attr, 5)); - osync_xmlfield_set_key_value(xmlfield, "Country", vformat_attribute_get_nth_value(attr, 6)); + FIXME_xmlfield_set_key_value(xmlfield, "PostOfficeBox", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "ExtendedAddress", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "Street", vformat_attribute_get_nth_value(attr, 2)); + FIXME_xmlfield_set_key_value(xmlfield, "Locality", vformat_attribute_get_nth_value(attr, 3)); + FIXME_xmlfield_set_key_value(xmlfield, "Region", vformat_attribute_get_nth_value(attr, 4)); + FIXME_xmlfield_set_key_value(xmlfield, "PostalCode", vformat_attribute_get_nth_value(attr, 5)); + FIXME_xmlfield_set_key_value(xmlfield, "Country", vformat_attribute_get_nth_value(attr, 6)); return xmlfield; } @@ -171,7 +171,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -183,7 +183,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -195,7 +195,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", osync_time_datestamp(vformat_attribute_get_nth_value(attr, 0))); + FIXME_xmlfield_set_key_value(xmlfield, "Content", osync_time_datestamp(vformat_attribute_get_nth_value(attr, 0))); return xmlfield; } @@ -207,7 +207,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -220,7 +220,7 @@ return NULL; } char * datestamp = osync_time_datestamp(vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "Content", datestamp); + FIXME_xmlfield_set_key_value(xmlfield, "Content", datestamp); g_free(datestamp); return xmlfield; } @@ -233,7 +233,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -245,7 +245,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -265,7 +265,7 @@ if(!xmlfield) goto error; } - osync_xmlfield_set_key_value(xmlfield, "Department", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Department", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; error: @@ -282,7 +282,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -294,7 +294,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -306,7 +306,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -318,7 +318,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -330,7 +330,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -342,7 +342,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -354,7 +354,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -366,7 +366,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -378,7 +378,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -396,18 +396,19 @@ osync_xmlfieldlist_free(list); if(xmlfield == NULL) { xmlfield = osync_xmlfield_new(xmlformat, "Organization", error); - if(!xmlfield) + if (!xmlfield) goto error; } - osync_xmlfield_set_key_value(xmlfield, "Name", vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "Department", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "Name", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Department", vformat_attribute_get_nth_value(attr, 1)); GList *values = vformat_attribute_get_values_decoded(attr); values = g_list_nth(values, 2); for (; values; values = values->next) { GString *retstr = (GString *)values->data; g_assert(retstr); - osync_xmlfield_add_key_value(xmlfield, "Unit", retstr->str); + if (!osync_xmlfield_add_key_value(xmlfield, "Unit", retstr->str, error)) + goto error; } return xmlfield; @@ -424,7 +425,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -436,7 +437,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -448,8 +449,8 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Latitude", vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "Longitude", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "Latitude", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Longitude", vformat_attribute_get_nth_value(attr, 1)); return xmlfield; } @@ -461,7 +462,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -473,7 +474,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -485,7 +486,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -497,7 +498,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -509,11 +510,11 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "LastName", vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "FirstName", vformat_attribute_get_nth_value(attr, 1)); - osync_xmlfield_set_key_value(xmlfield, "Additional", vformat_attribute_get_nth_value(attr, 2)); - osync_xmlfield_set_key_value(xmlfield, "Prefix", vformat_attribute_get_nth_value(attr, 3)); - osync_xmlfield_set_key_value(xmlfield, "Suffix", vformat_attribute_get_nth_value(attr, 4)); + FIXME_xmlfield_set_key_value(xmlfield, "LastName", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "FirstName", vformat_attribute_get_nth_value(attr, 1)); + FIXME_xmlfield_set_key_value(xmlfield, "Additional", vformat_attribute_get_nth_value(attr, 2)); + FIXME_xmlfield_set_key_value(xmlfield, "Prefix", vformat_attribute_get_nth_value(attr, 3)); + FIXME_xmlfield_set_key_value(xmlfield, "Suffix", vformat_attribute_get_nth_value(attr, 4)); return xmlfield; } @@ -525,7 +526,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -537,7 +538,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -559,7 +560,7 @@ goto error; } - osync_xmlfield_set_key_value(xmlfield, "Unit", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Unit", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; error: @@ -571,20 +572,24 @@ { osync_trace(TRACE_INTERNAL, "Handling Organization attribute"); OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, "Organization", error); - if(!xmlfield) { - osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); - return NULL; - } - osync_xmlfield_set_key_value(xmlfield, "Name", vformat_attribute_get_nth_value(attr, 0)); + if (!xmlfield) + goto error; + + FIXME_xmlfield_set_key_value(xmlfield, "Name", vformat_attribute_get_nth_value(attr, 0)); GList *values = vformat_attribute_get_values_decoded(attr); values = g_list_nth(values, 1); for (; values; values = values->next) { GString *retstr = (GString *)values->data; g_assert(retstr); - osync_xmlfield_add_key_value(xmlfield, "Unit", retstr->str); + if (!osync_xmlfield_add_key_value(xmlfield, "Unit", retstr->str, error)) + goto error; } return xmlfield; + +error: + osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; } static OSyncXMLField *handle_photo_attribute(OSyncXMLFormat *xmlformat, VFormatAttribute *attr, OSyncError **error) @@ -595,7 +600,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -607,7 +612,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -620,7 +625,7 @@ return NULL; } char *revision = osync_time_timestamp(vformat_attribute_get_nth_value(attr, 0)); - osync_xmlfield_set_key_value(xmlfield, "Content", revision); + FIXME_xmlfield_set_key_value(xmlfield, "Content", revision); g_free(revision); return xmlfield; } @@ -633,7 +638,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -645,7 +650,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -657,7 +662,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -669,7 +674,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -681,7 +686,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -693,7 +698,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -705,7 +710,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -718,7 +723,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "NodeName", vformat_attribute_get_name(attr)); + FIXME_xmlfield_set_key_value(xmlfield, "NodeName", vformat_attribute_get_name(attr)); GList *values = vformat_attribute_get_values_decoded(attr); for (; values; values = values->next) { GString *retstr = (GString *)values->data; @@ -737,7 +742,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -749,7 +754,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -761,8 +766,8 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "ExtName", vformat_attribute_get_name(attr)); - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "ExtName", vformat_attribute_get_name(attr)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -774,7 +779,7 @@ osync_trace(TRACE_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } - osync_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); + FIXME_xmlfield_set_key_value(xmlfield, "Content", vformat_attribute_get_nth_value(attr, 0)); return xmlfield; } @@ -933,7 +938,7 @@ ////xmlNode *current = xmlNewTextChild(root, NULL, (xmlChar*)"FormattedName", NULL); ////osxml_node_add(current, "Content", fnentry->str); //OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, "FormattedName", error); -//osync_xmlfield_set_key_value(xmlfield, "Content", fnentry->str); +//FIXME_xmlfield_set_key_value(xmlfield, "Content", fnentry->str); // } else { // osync_trace(TRACE_INTERNAL, "FN is empty!"); // } @@ -961,7 +966,7 @@ ////xmlNode *current = xmlNewTextChild(root, NULL, (xmlChar*)"Name", NULL); //// osxml_node_add(current, "LastName", fn); //OSyncXMLField *xmlfield = osync_xmlfield_new(xmlformat, "Name", error); -//osync_xmlfield_set_key_value(xmlfield, "LastName", fn); +//FIXME_xmlfield_set_key_value(xmlfield, "LastName", fn); // } else { // osync_trace(TRACE_INTERNAL, "Name is empty"); // } |
From: <svn...@op...> - 2009-09-16 23:14:07
|
Author: dgollub Date: Thu Sep 17 01:13:38 2009 New Revision: 5770 URL: http://www.opensync.org/changeset/5770 Log: ported testsuite to latest API changes of xmlfield API - which got OSyncError parameter added. Modified: format-plugins/xmlformat/trunk/tests/check_xmlformat.c Modified: format-plugins/xmlformat/trunk/tests/check_xmlformat.c ============================================================================== --- format-plugins/xmlformat/trunk/tests/check_xmlformat.c Thu Sep 17 01:02:57 2009 (r5769) +++ format-plugins/xmlformat/trunk/tests/check_xmlformat.c Thu Sep 17 01:13:38 2009 (r5770) @@ -262,11 +262,14 @@ fail_unless(name != NULL, NULL); fail_unless(error == NULL, NULL); - osync_xmlfield_set_key_value(name, "LastName", "llllllllll"); - osync_xmlfield_set_key_value(name, "FirstName", "ffffffffff"); + fail_unless(osync_xmlfield_set_key_value(name, "LastName", "llllllllll", &error), NULL); + fail_unless(error == NULL, NULL); + fail_unless(osync_xmlfield_set_key_value(name, "FirstName", "ffffffffff", &error), NULL); + fail_unless(error == NULL, NULL); OSyncXMLField *tel = osync_xmlfield_new(xmlformat2, "Telephone", &error); - osync_xmlfield_set_key_value(tel, "Content", "hhhhhhhhhh"); + fail_unless(osync_xmlfield_set_key_value(tel, "Content", "hhhhhhhhhh", &error), NULL); + fail_unless(error == NULL, NULL); osync_xmlfield_set_attr(tel, "Location", "Home"); g_free(buffer1); |
From: <svn...@op...> - 2009-09-16 23:03:32
|
Author: dgollub Date: Thu Sep 17 01:02:57 2009 New Revision: 5769 URL: http://www.opensync.org/changeset/5769 Log: Add OSyncError** to parameter list for * osync_xmlfield_add_key_value * osync_xmlfield_set_key_value * osync_xmlfield_sort refs #1087 Modified: trunk/opensync/xmlformat/opensync_xmlfield.c trunk/opensync/xmlformat/opensync_xmlfield.h trunk/tests/capabilities-tests/check_xmlformat.c trunk/wrapper/opensync-merger.i Modified: trunk/opensync/xmlformat/opensync_xmlfield.c ============================================================================== --- trunk/opensync/xmlformat/opensync_xmlfield.c Thu Sep 17 00:31:11 2009 (r5768) +++ trunk/opensync/xmlformat/opensync_xmlfield.c Thu Sep 17 01:02:57 2009 (r5769) @@ -393,7 +393,7 @@ return NULL; } -void osync_xmlfield_set_key_value(OSyncXMLField *xmlfield, const char *key, const char *value) +osync_bool osync_xmlfield_set_key_value(OSyncXMLField *xmlfield, const char *key, const char *value, OSyncError **error) { xmlNodePtr cur = NULL; osync_assert(xmlfield); @@ -401,7 +401,7 @@ // If value is null or empty we don't add it to a xmlfield if (!value || strlen(value) == 0) - return; + return TRUE; cur = xmlfield->node->children; for(; cur != NULL; cur = cur->next) { @@ -411,17 +411,22 @@ } } - /* TODO: error handling - API breaking? */ + /* TODO: error handling */ if(cur == NULL) cur = xmlNewTextChild(xmlfield->node, NULL, BAD_CAST key, BAD_CAST value); - /* TODO: error handing - could be NULL */ - osync_xmlfield_new_xmlfield(xmlfield, cur, NULL); + if (!osync_xmlfield_new_xmlfield(xmlfield, cur, error)) + goto error; xmlfield->sorted = FALSE; + + return TRUE; + +error: + return FALSE; } -void osync_xmlfield_add_key_value(OSyncXMLField *xmlfield, const char *key, const char *value) +osync_bool osync_xmlfield_add_key_value(OSyncXMLField *xmlfield, const char *key, const char *value, OSyncError **error) { xmlNodePtr cur; @@ -430,10 +435,16 @@ osync_assert(value); cur = xmlNewTextChild(xmlfield->node, NULL, BAD_CAST key, BAD_CAST value); - /* TODO: error handing - could be NULL */ - osync_xmlfield_new_xmlfield(xmlfield, cur, NULL); + + if (!osync_xmlfield_new_xmlfield(xmlfield, cur, error)) + goto error; xmlfield->sorted = FALSE; + + return TRUE; + +error: + return FALSE; } unsigned int osync_xmlfield_get_key_count(OSyncXMLField *xmlfield) @@ -504,7 +515,7 @@ } } -void osync_xmlfield_sort(OSyncXMLField *xmlfield) +osync_bool osync_xmlfield_sort(OSyncXMLField *xmlfield, OSyncError **error) { int index, count; void **list = NULL; @@ -524,7 +535,9 @@ goto end; } - list = g_malloc0(sizeof(xmlNodePtr) * count); + list = osync_try_malloc0(sizeof(xmlNodePtr) * count, error); + if (!list) + goto error; cur = xmlfield->node->children; for (index=0; cur != NULL; index++) { @@ -555,5 +568,10 @@ end: xmlfield->sorted = TRUE; osync_trace(TRACE_EXIT, "%s", __func__); + + return TRUE; + +error: + return FALSE; } Modified: trunk/opensync/xmlformat/opensync_xmlfield.h ============================================================================== --- trunk/opensync/xmlformat/opensync_xmlfield.h Thu Sep 17 00:31:11 2009 (r5768) +++ trunk/opensync/xmlformat/opensync_xmlfield.h Thu Sep 17 01:02:57 2009 (r5769) @@ -162,16 +162,18 @@ * @param xmlfield Pointer to the xmlfield object * @param key The key of the key/value pair * @param value The value of the key/value pair + * @return TRUE on success, FALSE on error */ -OSYNC_EXPORT void osync_xmlfield_set_key_value(OSyncXMLField *xmlfield, const char *key, const char *value); +OSYNC_EXPORT osync_bool osync_xmlfield_set_key_value(OSyncXMLField *xmlfield, const char *key, const char *value, OSyncError **error); /** * @brief Add the key/value pair to a xmlfield * @param xmlfield Pointer to the xmlfield object * @param key The key of the key/value pair * @param value The value of the key/value pair + * @return TRUE on success, FALSE on error */ -OSYNC_EXPORT void osync_xmlfield_add_key_value(OSyncXMLField *xmlfield, const char *key, const char *value); +OSYNC_EXPORT osync_bool osync_xmlfield_add_key_value(OSyncXMLField *xmlfield, const char *key, const char *value, OSyncError **error); /** * @brief Get the count of keys of a xmlfield @@ -210,8 +212,9 @@ * if the xmlfield was build in an unsorted way. Sorting is not necessary if the * xmlfield was built in a sorted way. * @param xmlfield Pointer to the xmlfield object + * @return TRUE on success, FALSE otherwise */ -OSYNC_EXPORT void osync_xmlfield_sort(OSyncXMLField *xmlfield); +OSYNC_EXPORT osync_bool osync_xmlfield_sort(OSyncXMLField *xmlfield, OSyncError **error); /*@}*/ Modified: trunk/tests/capabilities-tests/check_xmlformat.c ============================================================================== --- trunk/tests/capabilities-tests/check_xmlformat.c Thu Sep 17 00:31:11 2009 (r5768) +++ trunk/tests/capabilities-tests/check_xmlformat.c Thu Sep 17 01:02:57 2009 (r5769) @@ -157,7 +157,8 @@ OSyncXMLField *xmlfield = osync_xmlformat_get_first_field(xmlformat); for (; xmlfield != NULL; xmlfield = osync_xmlfield_get_next(xmlfield)) { - osync_xmlfield_sort(xmlfield); + fail_unless(osync_xmlfield_sort(xmlfield, &error), NULL); + fail_unless(error == NULL, NULL); } xmlfield = osync_xmlformat_get_first_field(xmlformat); @@ -233,7 +234,8 @@ OSyncXMLFormat *xmlformat = osync_xmlformat_new("top", &error); OSyncXMLField *foo = osync_xmlfield_new(xmlformat, "foo", &error); - osync_xmlfield_set_key_value(foo, "fookeyname1", "foorandomvalue"); + osync_xmlfield_set_key_value(foo, "fookeyname1", "foorandomvalue", &error); + fail_unless(error == NULL, NULL); fail_unless(osync_xmlfield_get_child(foo) != NULL); Modified: trunk/wrapper/opensync-merger.i ============================================================================== --- trunk/wrapper/opensync-merger.i Thu Sep 17 00:31:11 2009 (r5768) +++ trunk/wrapper/opensync-merger.i Thu Sep 17 01:02:57 2009 (r5769) @@ -194,12 +194,20 @@ return osync_xmlfield_get_key_value(self, key); } + /* TODO return value bool */ void set_key_value(const char *key, const char *value) { - osync_xmlfield_set_key_value(self, key, value); + OSyncError *err = NULL; + osync_xmlfield_set_key_value(self, key, value, &err); + if (raise_exception_on_error(err)) + return; } + /* TODO return value bool */ void add_key_value(const char *key, const char *value) { - osync_xmlfield_add_key_value(self, key, value); + OSyncError *err; + osync_xmlfield_add_key_value(self, key, value, &err); + if (raise_exception_on_error(err)) + return; } int get_key_count() { |
From: <svn...@op...> - 2009-09-16 22:31:28
|
Author: dgollub Date: Thu Sep 17 00:31:11 2009 New Revision: 5768 URL: http://www.opensync.org/changeset/5768 Log: Hide osync_plugin_advancedoption_type_string_to_val from public API before soft-freeze. If this is still required we can re-export this after the API freeze, without breaking the API. Added: trunk/opensync/plugin/opensync_plugin_advancedoptions_internals.h - copied, changed from r5764, trunk/opensync/plugin/opensync_plugin_advancedoptions.h Modified: trunk/opensync.sym trunk/opensync/plugin/opensync_plugin_advancedoptions.h trunk/opensync/plugin/opensync_plugin_config.c Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Thu Sep 17 00:25:54 2009 (r5767) +++ trunk/opensync.sym Thu Sep 17 00:31:11 2009 (r5768) @@ -485,7 +485,6 @@ osync_plugin_advancedoption_set_name osync_plugin_advancedoption_set_type osync_plugin_advancedoption_set_value -osync_plugin_advancedoption_type_string_to_val osync_plugin_advancedoption_unref osync_plugin_authentication_get_password osync_plugin_authentication_get_reference Modified: trunk/opensync/plugin/opensync_plugin_advancedoptions.h ============================================================================== --- trunk/opensync/plugin/opensync_plugin_advancedoptions.h Thu Sep 17 00:25:54 2009 (r5767) +++ trunk/opensync/plugin/opensync_plugin_advancedoptions.h Thu Sep 17 00:31:11 2009 (r5768) @@ -65,9 +65,6 @@ OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_STRING } OSyncPluginAdvancedOptionType; -/* TODO: hide form public API? */ -OSYNC_EXPORT OSyncPluginAdvancedOptionType osync_plugin_advancedoption_type_string_to_val(const char *typestr); - /* OSyncPluginAdvancedOption */ /** @brief Create a new OSyncPluginAdvancedOption object * Copied and modified: trunk/opensync/plugin/opensync_plugin_advancedoptions_internals.h (from r5764, trunk/opensync/plugin/opensync_plugin_advancedoptions.h) ============================================================================== --- trunk/opensync/plugin/opensync_plugin_advancedoptions.h Thu Sep 10 23:20:07 2009 (r5764, copy source) +++ trunk/opensync/plugin/opensync_plugin_advancedoptions_internals.h Thu Sep 17 00:31:11 2009 (r5768) @@ -18,392 +18,21 @@ * */ -#ifndef _OPENSYNC_PLUGIN_ADVANCEDOPTIONS_H_ -#define _OPENSYNC_PLUGIN_ADVANCEDOPTIONS_H_ +#ifndef _OPENSYNC_PLUGIN_ADVANCEDOPTIONS_INTERNALS_ +#define _OPENSYNC_PLUGIN_ADVANCEDOPTIONS_INTERNALS_ /** - * @defgroup OSyncPluginConfigAdvancedOptionsAPI OpenSync Plugin Config Advanced Options - * @ingroup OSyncPlugin + * @defgroup OSyncPluginConfigAdvancedOptionsInternalsAPI OpenSync Plugin Config Advanced Options + * @ingroup OSyncPluginInternals * @brief Functions to get and set a plugin's custom configuration options * - * The AdvancedOptions system allows plugins to store custom (plugin-specific) - * configuration settings in a self-describing manner, so that configuration - * frontends can create corresponding user interfaces on the fly. - * - * If desired, AdvancedOptions can also have parameters (sub-options) each - * with their own type, name, etc. - * */ /*@{*/ -/** @brief Advanced option value types - * - **/ -typedef enum { - /** None */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_NONE = 0, - /** bool */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_BOOL, - /** char */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_CHAR, - /** double */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_DOUBLE, - /** int */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_INT, - /** long */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_LONG, - /** long long */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_LONGLONG, - /** unsigned int */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_UINT, - /** unsigned long */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_ULONG, - /** unsigned long long */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_ULONGLONG, - /** String (char *) */ - OSYNC_PLUGIN_ADVANCEDOPTION_TYPE_STRING -} OSyncPluginAdvancedOptionType; - -/* TODO: hide form public API? */ -OSYNC_EXPORT OSyncPluginAdvancedOptionType osync_plugin_advancedoption_type_string_to_val(const char *typestr); - -/* OSyncPluginAdvancedOption */ -/** @brief Create a new OSyncPluginAdvancedOption object - * - * @param error Pointer to an error struct - * @returns the newly created object, or NULL in case of an error. - * - */ -OSYNC_EXPORT OSyncPluginAdvancedOption *osync_plugin_advancedoption_new(OSyncError **error); - -/** @brief Decrease the reference count on an OSyncPluginAdvancedOption object - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_unref(OSyncPluginAdvancedOption *option); - -/** @brief Increase the reference count on an OSyncPluginAdvancedOption object - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns The OSyncPluginAdvancedOption object passed in - * - */ -OSYNC_EXPORT OSyncPluginAdvancedOption *osync_plugin_advancedoption_ref(OSyncPluginAdvancedOption *option); - - -/** @brief Get a list of the parameters in an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the list of parameters - * - */ -OSYNC_EXPORT OSyncList *osync_plugin_advancedoption_get_parameters(OSyncPluginAdvancedOption *option); - -/** @brief Add a parameter to an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param param the parameter to add - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_add_parameter(OSyncPluginAdvancedOption *option, OSyncPluginAdvancedOptionParameter *param); - -/** @brief Remove a parameter from an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param param the parameter to remove - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_remove_parameter(OSyncPluginAdvancedOption *option, OSyncPluginAdvancedOptionParameter *param); - - -/** @brief Get the maximum value/length of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the maximum value/length of the option - * - */ -OSYNC_EXPORT unsigned int osync_plugin_advancedoption_get_max(OSyncPluginAdvancedOption *option); - -/** @brief Set the maximum value/length of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param max the maximum value/length to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_set_max(OSyncPluginAdvancedOption *option, unsigned int max); - - -/** @brief Get the minimum value/length of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the minimum value/length of the option - * - */ -OSYNC_EXPORT unsigned int osync_plugin_advancedoption_get_min(OSyncPluginAdvancedOption *option); - -/** @brief Set the minimum value/length of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param min the minimum value/length to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_set_min(OSyncPluginAdvancedOption *option, unsigned int min); - - -OSYNC_EXPORT unsigned int osync_plugin_advancedoption_get_maxoccurs(OSyncPluginAdvancedOption *option); -OSYNC_EXPORT void osync_plugin_advancedoption_set_maxoccurs(OSyncPluginAdvancedOption *option, unsigned int maxoccurs); - - -/** @brief Get the display name of an option - * - * The display name is intended to be shown in the configuration user interface for the option. - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the display name of the option - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_get_displayname(OSyncPluginAdvancedOption *option); - -/** @brief Set the display name of an option - * - * The display name is intended to be shown in the configuration user interface for the option. - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param displayname the display name to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_set_displayname(OSyncPluginAdvancedOption *option, const char *displayname); - - -/** @brief Get the name of an option - * - * This name is intended as an internal identifier for the option. It should not be shown in the user interface. - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the name of the option - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_get_name(OSyncPluginAdvancedOption *option); - -/** @brief Set the name of an option - * - * This name is intended as an internal identifier for the option. It should not be shown in the user interface. - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param name the name to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_set_name(OSyncPluginAdvancedOption *option, const char *name); - - -/** @brief Get the value type of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the value type of the option - * - */ -OSYNC_EXPORT OSyncPluginAdvancedOptionType osync_plugin_advancedoption_get_type(OSyncPluginAdvancedOption *option); - -/** @brief Get the value type of an option (as text) - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns a string representing the value type of the option - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_get_type_string(OSyncPluginAdvancedOption *option); - -/** @brief Set the value type of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param type the value type to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_set_type(OSyncPluginAdvancedOption *option, OSyncPluginAdvancedOptionType type); - - -/** @brief Get a list of the enumerated values of an option - * - * For options which accept only a set list of possible values (i.e. an enumeration) this function - * returns a list of the possible values. - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the list of enumerated values - * - */ -OSYNC_EXPORT OSyncList *osync_plugin_advancedoption_get_valenums(OSyncPluginAdvancedOption *option); - -/** @brief Add an enumerated value to an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param value the value to add to the enumeration - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_add_valenum(OSyncPluginAdvancedOption *option, const char *value); - -/** @brief Remove an enumerated value from an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param value the value to remove from the enumeration - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_remove_valenum(OSyncPluginAdvancedOption *option, const char *value); - - -/** @brief Set the value of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @param value the value to set (as a null-terminated string) - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_set_value(OSyncPluginAdvancedOption *option, const char *value); - -/** @brief Get the value of an option - * - * @param option Pointer to the OSyncPluginAdvancedOption object - * @returns the value of the option (as a null-terminated string) - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_get_value(OSyncPluginAdvancedOption *option); - - -/* OSyncPluginAdvancedOptionParameter */ -/** @brief Create a new OSyncPluginAdvancedOptionParameter object - * - * @param error Pointer to an error struct - * @returns the newly created object, or NULL in case of an error. - * - */ -OSYNC_EXPORT OSyncPluginAdvancedOptionParameter *osync_plugin_advancedoption_param_new(OSyncError **error); - -/** @brief Decrease the reference count on an OSyncPluginAdvancedOptionParameter object - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_unref(OSyncPluginAdvancedOptionParameter *param); - -/** @brief Increase the reference count on an OSyncPluginAdvancedOptionParameter object - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns The OSyncPluginAdvancedOptionParameter object passed in - * - */ -OSYNC_EXPORT OSyncPluginAdvancedOptionParameter *osync_plugin_advancedoption_param_ref(OSyncPluginAdvancedOptionParameter *param); - - -/** @brief Get the display name of a parameter - * - * The display name is intended to be shown in the configuration user interface for the parameter. - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns the display name of the parameter - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_param_get_displayname(OSyncPluginAdvancedOptionParameter *param); - -/** @brief Set the display name of a parameter - * - * The display name is intended to be shown in the configuration user interface for the parameter. - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @param displayname the display name to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_set_displayname(OSyncPluginAdvancedOptionParameter *param, const char *displayname); - - -/** @brief Get the name of a parameter - * - * This name is intended as an internal identifier for the parameter. It should not be shown in the user interface. - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns the name of the parameter - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_param_get_name(OSyncPluginAdvancedOptionParameter *param); - -/** @brief Set the name of a parameter - * - * This name is intended as an internal identifier for the parameter. It should not be shown in the user interface. - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @param name the name to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_set_name(OSyncPluginAdvancedOptionParameter *param, const char *name); - - -/** @brief Get the value type of a parameter - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns the value type of the parameter - * - */ -OSYNC_EXPORT OSyncPluginAdvancedOptionType osync_plugin_advancedoption_param_get_type(OSyncPluginAdvancedOptionParameter *param); - -/** @brief Get the value type of a parameter (as text) - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns a string representing the value type of the parameter - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_param_get_type_string(OSyncPluginAdvancedOptionParameter *param); - -/** @brief Set the value type of a parameter - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @param type the value type to set - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_set_type(OSyncPluginAdvancedOptionParameter *param, OSyncPluginAdvancedOptionType type); - -/** @brief Get a list of the enumerated values of a parameter - * - * For parameters which accept only a set list of possible values (i.e. an enumeration) this function - * returns a list of the possible values. - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns the list of enumerated values - * - */ -OSYNC_EXPORT OSyncList *osync_plugin_advancedoption_param_get_valenums(OSyncPluginAdvancedOptionParameter *param); - -/** @brief Add an enumerated value to a parameter - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @param value the value to add to the enumeration - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_add_valenum(OSyncPluginAdvancedOptionParameter *param, const char *value); - -/** @brief Remove an enumerated value from a parameter - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @param value the value to remove from the enumeration - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_remove_valenum(OSyncPluginAdvancedOptionParameter *param, const char *value); - - -/** @brief Set the value of a parameter - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @param value the value to set (as a null-terminated string) - * - */ -OSYNC_EXPORT void osync_plugin_advancedoption_param_set_value(OSyncPluginAdvancedOptionParameter *param, const char *value); - -/** @brief Get the value of a parameter - * - * @param param Pointer to the OSyncPluginAdvancedOptionParameter object - * @returns the value of the option (as a null-terminated string) - * - */ -OSYNC_EXPORT const char *osync_plugin_advancedoption_param_get_value(OSyncPluginAdvancedOptionParameter *param); +OSYNC_TEST_EXPORT OSyncPluginAdvancedOptionType osync_plugin_advancedoption_type_string_to_val(const char *typestr); /*@}*/ -#endif /*_OPENSYNC_PLUGIN_ADVANCEDOPTIONS_H_*/ +#endif /*_OPENSYNC_PLUGIN_ADVANCEDOPTIONS_INTERNALS_*/ Modified: trunk/opensync/plugin/opensync_plugin_config.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.c Thu Sep 17 00:25:54 2009 (r5767) +++ trunk/opensync/plugin/opensync_plugin_config.c Thu Sep 17 00:31:11 2009 (r5768) @@ -27,6 +27,7 @@ #include "common/opensync_xml_internals.h" #include "opensync_plugin_advancedoptions_private.h" /* FIXME: direct access to private header */ +#include "opensync_plugin_advancedoptions_internals.h" #include "opensync_plugin_authentication_private.h" /* FIXME: direct access to private header */ #include "opensync_plugin_connection_private.h" /* FIXME: direct access to private header */ #include "opensync_plugin_connection_internals.h" |
From: <svn...@op...> - 2009-09-16 22:26:24
|
Author: dgollub Date: Thu Sep 17 00:25:54 2009 New Revision: 5767 URL: http://www.opensync.org/changeset/5767 Log: Completed TODO-task by moving osync_marshal_{read,write}_data to internal/private API. Added: trunk/opensync/common/opensync_marshal_internals.h - copied, changed from r5764, trunk/opensync/common/opensync_marshal_private.h Modified: trunk/opensync.sym trunk/opensync/common/opensync_marshal.c trunk/opensync/common/opensync_marshal.h trunk/opensync/engine/opensync_engine.c trunk/opensync/ipc/opensync_message.c Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Thu Sep 17 00:12:13 2009 (r5766) +++ trunk/opensync.sym Thu Sep 17 00:25:54 2009 (r5767) @@ -302,7 +302,6 @@ osync_marshal_read_buffer osync_marshal_read_const_data osync_marshal_read_const_string -osync_marshal_read_data osync_marshal_read_int osync_marshal_read_long_long_int osync_marshal_read_string @@ -312,7 +311,6 @@ osync_marshal_sized_new osync_marshal_unref osync_marshal_write_buffer -osync_marshal_write_data osync_marshal_write_int osync_marshal_write_long_long_int osync_marshal_write_string Modified: trunk/opensync/common/opensync_marshal.c ============================================================================== --- trunk/opensync/common/opensync_marshal.c Thu Sep 17 00:12:13 2009 (r5766) +++ trunk/opensync/common/opensync_marshal.c Thu Sep 17 00:25:54 2009 (r5767) @@ -117,7 +117,6 @@ void osync_marshal_write_data(OSyncMarshal *marshal, const void *value, unsigned int size) { - /* TODO move this to PRIVATE API */ g_byte_array_append( marshal->buffer, value, size ); } Modified: trunk/opensync/common/opensync_marshal.h ============================================================================== --- trunk/opensync/common/opensync_marshal.h Thu Sep 17 00:12:13 2009 (r5766) +++ trunk/opensync/common/opensync_marshal.h Thu Sep 17 00:25:54 2009 (r5767) @@ -118,17 +118,6 @@ */ OSYNC_EXPORT void osync_marshal_write_string(OSyncMarshal *marshal, const char *value); -/** @brief Appends data with a specific length to the serialized buffer - * - * This data should be completely serialized. This is only for internal use, - * since this function doesn't append the size/end of the appended data. - * - * @param marshal The marshal object - * @param value The data to append - * @param size Size of corresponding data parameter - */ -OSYNC_EXPORT void osync_marshal_write_data(OSyncMarshal *marshal, const void *value, unsigned int size); - /** @brief Appends data with a specific length to the serialized buffer, * plus the length of the data to determine the end. * @@ -171,16 +160,6 @@ */ OSYNC_EXPORT void osync_marshal_read_string(OSyncMarshal *marshal, char **value); -/** @brief Read specific size of serialized data from marshal buffer. This increments - * the read position of the marshal buffer. Caller is responsible for freeing the - * duplicate data. - * - * @param marshal The marshal object - * @param value Reference to store the pointer to the newly allocated data - * @param size Size of data - */ -OSYNC_EXPORT void osync_marshal_read_data(OSyncMarshal *marshal, void *value, unsigned int size); - /** @brief Read serialized const data from marshal buffer. This increments the read * position of the marshal buffer. * Copied and modified: trunk/opensync/common/opensync_marshal_internals.h (from r5764, trunk/opensync/common/opensync_marshal_private.h) ============================================================================== --- trunk/opensync/common/opensync_marshal_private.h Thu Sep 10 23:20:07 2009 (r5764, copy source) +++ trunk/opensync/common/opensync_marshal_internals.h Thu Sep 17 00:25:54 2009 (r5767) @@ -18,33 +18,42 @@ * */ -#ifndef _OPENSYNC_MARSHAL_PRIVATE_H -#define _OPENSYNC_MARSHAL_PRIVATE_H +#ifndef _OPENSYNC_MARSHAL_INTERNALS_H +#define _OPENSYNC_MARSHAL_INTERNALS_H /** - * @defgroup OSyncCommonPrivate OpenSync Common Module Private - * @ingroup OSyncPrivate - * @defgroup OSyncMarshalPrivateAPI OpenSync Marshal Private - * @ingroup OSyncCommonPrivate + * @defgroup OSyncCommonInternal OpenSync Common Module Internal + * @ingroup OSyncInternal + * @defgroup OSyncMarshalInternalAPI OpenSync Marshal Internal + * @ingroup OSyncCommonInternal * @brief Serialized buffer * */ /*@{*/ -/** - * @brief A OSyncMarshal object +/** @brief Appends data with a specific length to the serialized buffer + * + * This data should be completely serialized. This is only for internal use, + * since this function doesn't append the size/end of the appended data. + * + * @param marshal The marshal object + * @param value The data to append + * @param size Size of corresponding data parameter + */ +OSYNC_TEST_EXPORT void osync_marshal_write_data(OSyncMarshal *marshal, const void *value, unsigned int size); + +/** @brief Read specific size of serialized data from marshal buffer. This increments + * the read position of the marshal buffer. Caller is responsible for freeing the + * duplicate data. + * + * @param marshal The marshal object + * @param value Reference to store the pointer to the newly allocated data + * @param size Size of data */ -struct OSyncMarshal { - /** Reference counting */ - int ref_count; - /** The pointer to the internal **/ - GByteArray *buffer; - /** The current read position **/ - unsigned int buffer_read_pos; -}; +OSYNC_TEST_EXPORT void osync_marshal_read_data(OSyncMarshal *marshal, void *value, unsigned int size); /*@}*/ -#endif /* _OPENSYNC_MARSHAL_PRIVATE_H */ +#endif /* _OPENSYNC_MARSHAL_INTERNALS_H */ Modified: trunk/opensync/engine/opensync_engine.c ============================================================================== --- trunk/opensync/engine/opensync_engine.c Thu Sep 17 00:12:13 2009 (r5766) +++ trunk/opensync/engine/opensync_engine.c Thu Sep 17 00:25:54 2009 (r5767) @@ -35,6 +35,7 @@ #include "group/opensync_group_internals.h" #include "group/opensync_member_internals.h" #include "format/opensync_objformat_internals.h" +#include "common/opensync_marshal_internals.h" #include "opensync_status_internals.h" #include "opensync_obj_engine_internals.h" Modified: trunk/opensync/ipc/opensync_message.c ============================================================================== --- trunk/opensync/ipc/opensync_message.c Thu Sep 17 00:12:13 2009 (r5766) +++ trunk/opensync/ipc/opensync_message.c Thu Sep 17 00:25:54 2009 (r5767) @@ -22,6 +22,7 @@ #include "opensync_internals.h" #include "common/opensync_marshal.h" +#include "common/opensync_marshal_internals.h" #include "opensync_serializer_internals.h" |
From: <svn...@op...> - 2009-09-16 22:12:31
|
Author: dgollub Date: Thu Sep 17 00:12:13 2009 New Revision: 5766 URL: http://www.opensync.org/changeset/5766 Log: Adapted to latest API change of osync_plugin_config_load_file() by simply dropping the schemadir parameter - which was unused anyway. Modified: osynctool/trunk/tools/osynctool.c Modified: osynctool/trunk/tools/osynctool.c ============================================================================== --- osynctool/trunk/tools/osynctool.c Thu Sep 17 00:10:41 2009 (r5765) +++ osynctool/trunk/tools/osynctool.c Thu Sep 17 00:12:13 2009 (r5766) @@ -1076,7 +1076,7 @@ g_free(editcmd); *config = osync_plugin_config_new(error); /* if a new config isn't created the loaded config is added to the old config */ - if (!osync_plugin_config_file_load(*config, tmpfile, NULL, error)) { + if (!osync_plugin_config_file_load(*config, tmpfile, error)) { osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to load config from tmpfile %s. Aborting", tmpfile); goto error_free_tmp; } |
From: <svn...@op...> - 2009-09-16 22:11:15
|
Author: dgollub Date: Thu Sep 17 00:10:41 2009 New Revision: 5765 URL: http://www.opensync.org/changeset/5765 Log: Break trunk API by dropping schemadir parameter from osync_plugin_config_load_file() refs #1013 Added: trunk/opensync/plugin/opensync_plugin_config_internals.h - copied, changed from r5764, trunk/opensync/plugin/opensync_plugin_config_private.h Modified: trunk/opensync/group/opensync_member.c trunk/opensync/plugin/opensync_plugin_config.c trunk/opensync/plugin/opensync_plugin_config.h trunk/opensync/plugin/opensync_plugin_config_private.h trunk/tests/ipc-tests/check_serializer.c trunk/tests/plugin-tests/check_plugin_config.c trunk/tools/osyncplugin.c Modified: trunk/opensync/group/opensync_member.c ============================================================================== --- trunk/opensync/group/opensync_member.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/group/opensync_member.c Thu Sep 17 00:10:41 2009 (r5765) @@ -23,6 +23,7 @@ #include "opensync-plugin.h" #include "plugin/opensync_objtype_sink_internals.h" +#include "plugin/opensync_plugin_config_internals.h" #include "opensync-capabilities.h" #include "opensync-group.h" @@ -256,7 +257,6 @@ { char *filename = NULL; OSyncPluginConfig *config = NULL; - const char *schemadir = NULL; osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, member, error); g_assert(member); @@ -287,10 +287,10 @@ #ifdef OPENSYNC_UNITTESTS if (member->schemadir) - schemadir = member->schemadir; + osync_plugin_config_set_schemadir(config, member->schemadir); #endif - if (!osync_plugin_config_file_load(config, filename, schemadir, error)) + if (!osync_plugin_config_file_load(config, filename, error)) goto error_free_config; osync_member_set_config(member, config); @@ -317,7 +317,6 @@ OSyncPluginConfig *osync_member_get_config(OSyncMember *member, OSyncError **error) { char *filename = NULL; - const char *schemadir = NULL; OSyncPluginConfig *config = NULL; osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, member, error); @@ -342,10 +341,10 @@ #ifdef OPENSYNC_UNITTESTS if (member->schemadir) - schemadir = member->schemadir; + osync_plugin_config_set_schemadir(config, member->schemadir); #endif - if (!osync_plugin_config_file_load(config, filename, schemadir, error)) + if (!osync_plugin_config_file_load(config, filename, error)) goto error_free_config; osync_free(filename); Modified: trunk/opensync/plugin/opensync_plugin_config.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/plugin/opensync_plugin_config.c Thu Sep 17 00:10:41 2009 (r5765) @@ -34,6 +34,7 @@ #include "opensync_plugin_resource_private.h" /* FIXME: direct access to private header */ #include "opensync_plugin_config_private.h" +#include "opensync_plugin_config_internals.h" static OSyncPluginAdvancedOptionParameter *_osync_plugin_config_parse_advancedoption_param(OSyncPluginAdvancedOption *option, xmlNode *cur, OSyncError **error) { @@ -743,16 +744,16 @@ return FALSE; } -osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, const char *schemadir, OSyncError **error) +osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, OSyncError **error) { xmlDocPtr doc = NULL; xmlNodePtr cur = NULL; char *schemafile = NULL; const char *schemapath = NULL; - osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, config, __NULLSTR(path), __NULLSTR(schemadir), error); + osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, config, __NULLSTR(path), error); - schemapath = schemadir ? schemadir : OPENSYNC_SCHEMASDIR; + schemapath = config->schemadir ? config->schemadir : OPENSYNC_SCHEMASDIR; if (!osync_xml_open_file(&doc, &cur, path, "config", error)) goto error; @@ -779,6 +780,20 @@ return FALSE; } +void osync_plugin_config_set_schemadir(OSyncPluginConfig *config, const char *schemadir) +{ + osync_return_if_fail(config); + + if (config->schemadir) { + osync_free(config->schemadir); + config->schemadir = NULL; + } + + if (schemadir) { + config->schemadir = osync_strdup(schemadir); + } +} + static osync_bool _osync_plugin_config_assemble_authentication(xmlNode *cur, OSyncPluginAuthentication *auth, OSyncError **error) { const char *username, *password, *ref; @@ -1291,6 +1306,9 @@ osync_plugin_resource_unref(res); config->resources = osync_list_remove(config->resources, res); } + + if (config->schemadir) + osync_free(config->schemadir); osync_free(config); } Modified: trunk/opensync/plugin/opensync_plugin_config.h ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.h Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/plugin/opensync_plugin_config.h Thu Sep 17 00:10:41 2009 (r5765) @@ -80,11 +80,10 @@ * * @param config Contents of config file as OsyncPluginConfig object * @param path Path to file to load - * @param schemadir Path to the schema location. If schmadir is NULL the default value is used * @param error Pointer to error struct * @return True on success, False on failure - error will contain details */ -OSYNC_EXPORT osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, const char *schemadir, OSyncError **error); +OSYNC_EXPORT osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, OSyncError **error); /** @brief Save a plugin config to a file * Copied and modified: trunk/opensync/plugin/opensync_plugin_config_internals.h (from r5764, trunk/opensync/plugin/opensync_plugin_config_private.h) ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config_private.h Thu Sep 10 23:20:07 2009 (r5764, copy source) +++ trunk/opensync/plugin/opensync_plugin_config_internals.h Thu Sep 17 00:10:41 2009 (r5765) @@ -18,41 +18,26 @@ * */ -#ifndef _OPENSYNC_PLUGIN_CONFIG_PRIVATE_H_ -#define _OPENSYNC_PLUGIN_CONFIG_PRIVATE_H_ - -#define OSYNC_PLUGIN_CONFING_SCHEMA "plugin_config.xsd" +#ifndef _OPENSYNC_PLUGIN_CONFIG_INTERNALS_H_ +#define _OPENSYNC_PLUGIN_CONFIG_INTERNALS_H_ /** - * @defgroup OSyncPluginConfigPrivateAPI OpenSync Plugin Config Private + * @defgroup OSyncPluginConfigInternalsAPI OpenSync Plugin Config Internal * @ingroup OSyncPluginPrivate */ /*@{*/ -/** - * @brief Gives information about the plugin configuration - **/ -struct OSyncPluginConfig { - /** Advanced Options */ - OSyncList *advancedoptions; - /** Connection configuration */ - OSyncPluginConnection *connection; - /** Authentication configuration */ - OSyncPluginAuthentication *authentication; - /** Localization configuration */ - OSyncPluginLocalization *localization; - /** List of resource configurations */ - OSyncList *resources; - - /** Flags to store supported config options */ - OSyncPluginConfigSupportedFlags supported; - - /** Object reference counting */ - int ref_count; -}; + +/** @brief Set schema directory of the plugin configuration schemas + * + * @param config Contents of config file as OsyncPluginConfig object + * @param schemadir Path to the schema location. If schmadir is NULL the default value is used + */ +OSYNC_TEST_EXPORT void osync_plugin_config_set_schemadir(OSyncPluginConfig *config, const char *schemadir); + /*@}*/ -#endif /* _OPENSYNC_PLUGIN_CONFIG_PRIVATE_H_ */ +#endif /* _OPENSYNC_PLUGIN_CONFIG_INTERNALS_H_ */ Modified: trunk/opensync/plugin/opensync_plugin_config_private.h ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config_private.h Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/plugin/opensync_plugin_config_private.h Thu Sep 17 00:10:41 2009 (r5765) @@ -48,6 +48,9 @@ /** Flags to store supported config options */ OSyncPluginConfigSupportedFlags supported; + /** Schema Directory */ + char *schemadir; + /** Object reference counting */ int ref_count; }; Modified: trunk/tests/ipc-tests/check_serializer.c ============================================================================== --- trunk/tests/ipc-tests/check_serializer.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/tests/ipc-tests/check_serializer.c Thu Sep 17 00:10:41 2009 (r5765) @@ -4,6 +4,7 @@ #include "opensync/ipc/opensync_message_internals.h" #include "opensync/ipc/opensync_serializer_internals.h" #include <opensync/opensync-plugin.h> +#include "opensync/plugin/opensync_plugin_config_internals.h" static osync_bool _compare_string(const void *string1, const void *string2) { @@ -384,7 +385,8 @@ fail_unless(config1 != NULL, NULL); fail_unless(error == NULL, NULL); - fail_unless(osync_plugin_config_file_load(config1, "config1.xml", testbed, &error)); + osync_plugin_config_set_schemadir(config1, testbed); + fail_unless(osync_plugin_config_file_load(config1, "config1.xml", &error)); fail_unless(osync_marshal_pluginconfig(message, config1, &error), NULL); fail_unless(error == NULL, NULL); Modified: trunk/tests/plugin-tests/check_plugin_config.c ============================================================================== --- trunk/tests/plugin-tests/check_plugin_config.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/tests/plugin-tests/check_plugin_config.c Thu Sep 17 00:10:41 2009 (r5765) @@ -4,6 +4,7 @@ #include <opensync/opensync-format.h> #include "opensync/plugin/opensync_plugin_config_private.h" +#include "opensync/plugin/opensync_plugin_config_internals.h" static const char *_format_sink_get_objformat(OSyncPluginResource *res) { @@ -877,7 +878,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1003,7 +1005,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1049,7 +1052,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1100,7 +1104,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1156,7 +1161,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1206,7 +1212,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ Modified: trunk/tools/osyncplugin.c ============================================================================== --- trunk/tools/osyncplugin.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/tools/osyncplugin.c Thu Sep 17 00:10:41 2009 (r5765) @@ -366,7 +366,7 @@ if (osync_plugin_get_config_type(plugin) != OSYNC_PLUGIN_NO_CONFIGURATION && configfile) { OSyncList *r = NULL; - if (!osync_plugin_config_file_load(config, configfile, NULL, error)) + if (!osync_plugin_config_file_load(config, configfile, error)) goto error_free_pluginconfig; osync_plugin_info_set_config(plugin_info, config); |
From: <svn...@op...> - 2009-09-15 15:42:36
|
Author: bellmich Date: Tue Sep 15 17:42:12 2009 New Revision: 1278 URL: http://libsyncml.opensync.org/changeset/1278 Log: fixed bug related to fragmentation (The action must be copied too.) Modified: trunk/libsyncml/data_sync_api/sml_data_sync_change_item.c Modified: trunk/libsyncml/data_sync_api/sml_data_sync_change_item.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_change_item.c Tue Sep 15 12:18:35 2009 (r1277) +++ trunk/libsyncml/data_sync_api/sml_data_sync_change_item.c Tue Sep 15 17:42:12 2009 (r1278) @@ -602,6 +602,12 @@ !sml_data_sync_change_item_set_content_type(frag, sml_data_sync_change_item_get_content_type(self), error)) goto error; + /* Otherwise the source/target setting is in trouble + * because the assembler depends on the action + * which reference is set (source or target). + */ + sml_data_sync_change_item_set_action(frag, sml_data_sync_change_item_get_action (self)); + return frag; error: if (frag) |
From: <svn...@op...> - 2009-09-15 10:18:53
|
Author: bellmich Date: Tue Sep 15 12:18:35 2009 New Revision: 1277 URL: http://libsyncml.opensync.org/changeset/1277 Log: fixed syncml.h (and resulting problems) Modified: trunk/libsyncml/data_sync_api/sml_data_sync_defines.h trunk/libsyncml/data_sync_api/transport_http_client.c trunk/libsyncml/data_sync_api/transport_http_server.c trunk/libsyncml/data_sync_api/transport_obex_client.c trunk/libsyncml/sml_defines.h trunk/libsyncml/syncml.h trunk/libsyncml/transports/http_client.c trunk/libsyncml/transports/http_server.c trunk/libsyncml/transports/obex_server.c trunk/tests/mobiles/obex_mobile_ds_client.c trunk/tools/syncml-ds-tool.c Modified: trunk/libsyncml/data_sync_api/sml_data_sync_defines.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_defines.h Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/data_sync_api/sml_data_sync_defines.h Tue Sep 15 12:18:35 2009 (r1277) @@ -97,6 +97,24 @@ #define SML_CONTENT_TYPE_MESSAGE "message" #define SML_CONTENT_TYPE_VIDEO "video" +/* Transport configuration defines */ + +#define SML_TRANSPORT_CONFIG_PROXY "PROXY" +#define SML_TRANSPORT_CONFIG_USERNAME "USERNAME" +#define SML_TRANSPORT_CONFIG_PASSWORD "PASSWORD" +#define SML_TRANSPORT_CONFIG_SSL_CA_FILE "SSL_CA_FILE" +#define SML_TRANSPORT_CONFIG_PORT "PORT" +#define SML_TRANSPORT_CONFIG_URL "URL" +#define SML_TRANSPORT_CONFIG_SSL_KEY "SSL_KEY" +#define SML_TRANSPORT_CONFIG_SSL_SERVER_CERT "SSL_SERVER_CERT" +#define SML_TRANSPORT_CONFIG_BLUETOOTH_ADDRESS "BLUETOOTH_ADDRESS" +#define SML_TRANSPORT_CONFIG_BLUETOOTH_CHANNEL "BLUETOOTH_CHANNEL" +#define SML_TRANSPORT_CONFIG_IRDA_SERVICE "IRDA_SERVICE" + +#define SML_TRANSPORT_CONFIG_AT_COMMAND "AT_COMMAND" +#define SML_TRANSPORT_CONFIG_AT_MANUFACTURER "AT_MANUFACTURER" +#define SML_TRANSPORT_CONFIG_AT_MODEL "AT_MODEL" + #define SML_TRANSPORT_CONFIG_DATASTORE "DATASTORE" #define SML_TRANSPORT_CONFIG_DATASTORE_EVENT "EVENT" #define SML_TRANSPORT_CONFIG_DATASTORE_TODO "TODO" Modified: trunk/libsyncml/data_sync_api/transport_http_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/transport_http_client.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/data_sync_api/transport_http_client.c Tue Sep 15 12:18:35 2009 (r1277) @@ -22,6 +22,7 @@ #include "libsyncml/sml_error_internals.h" #include "libsyncml/sml_support.h" +#include "sml_data_sync_defines.h" #include "sml_data_sync_private.h" #include "sml_data_sync_session_private.h" #include "data_sync_client.h" Modified: trunk/libsyncml/data_sync_api/transport_http_server.c ============================================================================== --- trunk/libsyncml/data_sync_api/transport_http_server.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/data_sync_api/transport_http_server.c Tue Sep 15 12:18:35 2009 (r1277) @@ -22,6 +22,7 @@ #include "libsyncml/sml_error_internals.h" #include "libsyncml/sml_support.h" +#include "sml_data_sync_defines.h" #include "sml_data_sync_private.h" gboolean Modified: trunk/libsyncml/data_sync_api/transport_obex_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/transport_obex_client.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/data_sync_api/transport_obex_client.c Tue Sep 15 12:18:35 2009 (r1277) @@ -23,6 +23,7 @@ #include "libsyncml/sml_support.h" #include <string.h> +#include "sml_data_sync_defines.h" #include "sml_data_sync_private.h" #include "sml_data_sync_data_store_private.h" Modified: trunk/libsyncml/sml_defines.h ============================================================================== --- trunk/libsyncml/sml_defines.h Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/sml_defines.h Tue Sep 15 12:18:35 2009 (r1277) @@ -203,24 +203,6 @@ #define SML_AUTH_MD5 "syncml:auth-md5" #define SML_BASE64 "b64" -/* Transport configuration defines */ - -#define SML_TRANSPORT_CONFIG_PROXY "PROXY" -#define SML_TRANSPORT_CONFIG_USERNAME "USERNAME" -#define SML_TRANSPORT_CONFIG_PASSWORD "PASSWORD" -#define SML_TRANSPORT_CONFIG_SSL_CA_FILE "SSL_CA_FILE" -#define SML_TRANSPORT_CONFIG_PORT "PORT" -#define SML_TRANSPORT_CONFIG_URL "URL" -#define SML_TRANSPORT_CONFIG_SSL_KEY "SSL_KEY" -#define SML_TRANSPORT_CONFIG_SSL_SERVER_CERT "SSL_SERVER_CERT" -#define SML_TRANSPORT_CONFIG_BLUETOOTH_ADDRESS "BLUETOOTH_ADDRESS" -#define SML_TRANSPORT_CONFIG_BLUETOOTH_CHANNEL "BLUETOOTH_CHANNEL" -#define SML_TRANSPORT_CONFIG_IRDA_SERVICE "IRDA_SERVICE" - -#define SML_TRANSPORT_CONFIG_AT_COMMAND "AT_COMMAND" -#define SML_TRANSPORT_CONFIG_AT_MANUFACTURER "AT_MANUFACTURER" -#define SML_TRANSPORT_CONFIG_AT_MODEL "AT_MODEL" - /* Enumeration types */ typedef enum { Modified: trunk/libsyncml/syncml.h ============================================================================== --- trunk/libsyncml/syncml.h Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/syncml.h Tue Sep 15 12:18:35 2009 (r1277) @@ -66,12 +66,9 @@ * ******************* */ -#include <libsyncml/sml_defines.h> #include <libsyncml/sml_error.h> - +#include <libsyncml/data_sync_api/sml_data_sync_defines.h> #include <libsyncml/data_sync_api/sml_data_sync.h> -#include <libsyncml/data_sync_api/sml_data_sync_data_store.h> - #include <libsyncml/dev_inf_api/sml_dev_inf.h> const char *smlGetLibraryVersion(); Modified: trunk/libsyncml/transports/http_client.c ============================================================================== --- trunk/libsyncml/transports/http_client.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/transports/http_client.c Tue Sep 15 12:18:35 2009 (r1277) @@ -25,6 +25,7 @@ #include <libsyncml/sml_error_internals.h> #include <libsyncml/sml_transport_internals.h> +#include "../data_sync_api/sml_data_sync_defines.h" #include "http_client_internals.h" #include <string.h> Modified: trunk/libsyncml/transports/http_server.c ============================================================================== --- trunk/libsyncml/transports/http_server.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/transports/http_server.c Tue Sep 15 12:18:35 2009 (r1277) @@ -25,6 +25,7 @@ #include <libsyncml/sml_support.h> #include <libsyncml/sml_error_internals.h> #include <libsyncml/sml_transport_internals.h> +#include "../data_sync_api/sml_data_sync_defines.h" #include "http_server_internals.h" #include <string.h> Modified: trunk/libsyncml/transports/obex_server.c ============================================================================== --- trunk/libsyncml/transports/obex_server.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/libsyncml/transports/obex_server.c Tue Sep 15 12:18:35 2009 (r1277) @@ -25,6 +25,7 @@ #include <libsyncml/sml_error_internals.h> #include <libsyncml/sml_transport_internals.h> +#include "../data_sync_api/sml_data_sync_defines.h" #include "obex_internals.h" #include "obex_server_internals.h" Modified: trunk/tests/mobiles/obex_mobile_ds_client.c ============================================================================== --- trunk/tests/mobiles/obex_mobile_ds_client.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/tests/mobiles/obex_mobile_ds_client.c Tue Sep 15 12:18:35 2009 (r1277) @@ -27,6 +27,7 @@ * (mobile simulator) */ +#include <libsyncml/data_sync_api/sml_data_sync_defines.h> #include <libsyncml/sml_transport_internals.h> #include <wbxml.h> #include <unistd.h> Modified: trunk/tools/syncml-ds-tool.c ============================================================================== --- trunk/tools/syncml-ds-tool.c Tue Sep 15 11:38:48 2009 (r1276) +++ trunk/tools/syncml-ds-tool.c Tue Sep 15 12:18:35 2009 (r1277) @@ -207,10 +207,6 @@ */ #include <libsyncml/syncml.h> -#include <libsyncml/dev_inf_api/sml_dev_inf_data_store.h> -#include <libsyncml/data_sync_api/sml_data_sync.h> -#include <libsyncml/data_sync_api/sml_data_sync_data_store.h> -#include <libsyncml/data_sync_api/sml_data_sync_defines.h> #include <glib.h> #include <glib/gstdio.h> @@ -253,7 +249,7 @@ char *password = NULL; SmlSessionType sessionType = SML_SESSION_TYPE_SERVER; -SmlMimeType mimeType = SML_MIMETYPE_XML; +gboolean useWbxml = FALSE; char *syncmlVersion = NULL; char *maxMsgSize = NULL; @@ -791,7 +787,7 @@ SML_DATA_SYNC_CONFIG_USE_WBXML, "1", error)) goto error; - mimeType = SML_MIMETYPE_WBXML; + useWbxml = TRUE; } else if (!strcmp (arg, "--dumpinfo")) { dumpinfo = TRUE; sml_data_sync_register_handle_remote_dev_inf_callback (dsObject, smlDsToolRecvDevInfCallback, NULL); @@ -1481,7 +1477,7 @@ SmlDevInfDataStore *datastore = sml_dev_inf_get_nth_data_store(remoteDevinf, i); printf("\tLocations: %s\n", sml_dev_inf_data_store_get_source_ref(datastore)); } - printf("Wbxml: %s\n", mimeType == SML_MIMETYPE_WBXML ? "Yes" : "No"); + printf("Wbxml: %s\n", useWbxml ? "Yes" : "No"); printf("SyncML Version: %s\n", syncmlVersion); printf("SupportsUTC: %s\n", sml_dev_inf_get_support_utc(remoteDevinf) ? "Yes" : "No"); printf("SupportsNumberOfChanges: %s\n", sml_dev_inf_get_support_number_of_changes(remoteDevinf) ? "Yes" : "No"); |
From: <svn...@op...> - 2009-09-15 09:39:02
|
Author: bellmich Date: Tue Sep 15 11:38:48 2009 New Revision: 1276 URL: http://libsyncml.opensync.org/changeset/1276 Log: every test has its own port Modified: trunk/tests/check_data_sync_api.c Modified: trunk/tests/check_data_sync_api.c ============================================================================== --- trunk/tests/check_data_sync_api.c Tue Sep 15 11:00:50 2009 (r1275) +++ trunk/tests/check_data_sync_api.c Tue Sep 15 11:38:48 2009 (r1276) @@ -669,7 +669,7 @@ START_TEST (ds_api_multi_client_single_text_vcard_21) { GError *error = NULL; - init_testbed(5, "HTTP", "17001"); + init_testbed(5, "HTTP", "17005"); /* register datastore * the source must be identical because this is http @@ -711,7 +711,7 @@ START_TEST (ds_api_multi_client_multi_text_vcard_21) { GError *error = NULL; - init_testbed(10, "HTTP", "17001"); + init_testbed(10, "HTTP", "17006"); /* register datastore * the source must be identical because this is http |
From: <svn...@op...> - 2009-09-15 09:01:05
|
Author: bellmich Date: Tue Sep 15 11:00:50 2009 New Revision: 1275 URL: http://libsyncml.opensync.org/changeset/1275 Log: - added tests for several client sessions via one server instance - fixed a small bug in the code which searchs the correct client Modified: trunk/tests/CMakeLists.txt trunk/tests/check_data_sync_api.c Modified: trunk/tests/CMakeLists.txt ============================================================================== --- trunk/tests/CMakeLists.txt Mon Sep 14 19:52:56 2009 (r1274) +++ trunk/tests/CMakeLists.txt Tue Sep 15 11:00:50 2009 (r1275) @@ -512,10 +512,12 @@ IF ( ENABLE_OPENOBEX_TCP OR ENABLE_HTTP ) SML_START_TEST( "OMA DS API" ds_api check_data_sync_api.c ${TEST_TARGET_LIBRARIES} ) - SML_ADD_TESTCASE( ds_api_text_vcard_21 ) - SML_ADD_TESTCASE( ds_api_image_jpeg ) - SML_ADD_TESTCASE( ds_api_unknown_ct ) - SML_ADD_TESTCASE( ds_api_multi_text_vcard_21 ) + SML_ADD_TESTCASE( ds_api_single_client_single_text_vcard_21 ) + SML_ADD_TESTCASE( ds_api_single_client_single_image_jpeg ) + SML_ADD_TESTCASE( ds_api_single_client_single_unknown_ct ) + SML_ADD_TESTCASE( ds_api_single_client_multi_text_vcard_21 ) + SML_ADD_TESTCASE( ds_api_multi_client_single_text_vcard_21 ) + SML_ADD_TESTCASE( ds_api_multi_client_multi_text_vcard_21 ) SML_END_TEST() ENDIF ( ENABLE_OPENOBEX_TCP OR ENABLE_HTTP ) Modified: trunk/tests/check_data_sync_api.c ============================================================================== --- trunk/tests/check_data_sync_api.c Mon Sep 14 19:52:56 2009 (r1274) +++ trunk/tests/check_data_sync_api.c Tue Sep 15 11:00:50 2009 (r1275) @@ -204,8 +204,8 @@ if (sml_location_is_equal(sml_data_sync_get_local(client->client), sml_data_sync_session_get_remote(dss))) { /* correct client */ - continue; smlTrace(TRACE_INTERNAL, "%s - correct client", __func__); + break; } else { /* wrong client */ client = NULL; @@ -499,7 +499,12 @@ { SmlDataSyncTestClient *client = list->data; g_object_unref(client->client); - g_list_free(client->items); + while(client->items) + { + gchar* item = client->items->data; + client->items = g_list_remove(client->items, item); + smlSafeCFree(&item); + } } g_object_unref(server); @@ -514,7 +519,7 @@ sml_fail_unless(FALSE, "%s", error->message); } -START_TEST (ds_api_text_vcard_21) +START_TEST (ds_api_single_client_single_text_vcard_21) { GError *error = NULL; init_testbed(1, "HTTP", "17001"); @@ -539,7 +544,7 @@ goto error; /* configure test data */ - client->items = g_list_append(client->items, (char *) "blabla"); + client->items = g_list_append(client->items, g_strdup("blabla")); run_testbed(); @@ -549,7 +554,7 @@ } END_TEST -START_TEST (ds_api_image_jpeg) +START_TEST (ds_api_single_client_single_image_jpeg) { GError *error = NULL; init_testbed(1, "OBEX", "17002"); @@ -577,7 +582,7 @@ goto error; /* configure test data */ - client->items = g_list_append(client->items, (char *) "this is an image"); + client->items = g_list_append(client->items, g_strdup("this is an image")); run_testbed(); @@ -587,7 +592,7 @@ } END_TEST -START_TEST (ds_api_unknown_ct) +START_TEST (ds_api_single_client_single_unknown_ct) { GError *error = NULL; init_testbed(1, "HTTP", "17003"); @@ -612,7 +617,7 @@ goto error; /* configure test data */ - client->items = g_list_append(client->items, (char *) "this is some data"); + client->items = g_list_append(client->items, g_strdup("this is some data")); run_testbed(); @@ -622,7 +627,7 @@ } END_TEST -START_TEST (ds_api_multi_text_vcard_21) +START_TEST (ds_api_single_client_multi_text_vcard_21) { GError *error = NULL; init_testbed(1, "HTTP", "17004"); @@ -647,12 +652,100 @@ goto error; /* configure test data */ - int max_items = 10000; + int max_items = 1000; int i; for(i = 0; i < max_items; i++) { - client->items = g_list_append(client->items, (char *) "client data"); + client->items = g_list_append(client->items, g_strdup_printf("client 1 data %d", (i+1))); + } + + run_testbed(); + + return; +error: + sml_fail_unless(FALSE, "%s", error->message); +} +END_TEST + +START_TEST (ds_api_multi_client_single_text_vcard_21) +{ + GError *error = NULL; + init_testbed(5, "HTTP", "17001"); + + /* register datastore + * the source must be identical because this is http + */ + + SmlDataSyncTestClient *client = NULL; + GList *list = clients; + unsigned int count = 0; + for (;list; list = list->next) + { + count ++; + client = list->data; + client->data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, client); + if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) + goto error; + + /* configure test data */ + client->items = g_list_append(client->items, g_strdup_printf("client %d data 1", count)); + } + + server_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(server, server_data_store, &error)) + goto error; + + run_testbed(); + + return; +error: + sml_fail_unless(FALSE, "%s", error->message); +} +END_TEST + +START_TEST (ds_api_multi_client_multi_text_vcard_21) +{ + GError *error = NULL; + init_testbed(10, "HTTP", "17001"); + + /* register datastore + * the source must be identical because this is http + */ + + SmlDataSyncTestClient *client = NULL; + GList *list = clients; + unsigned int count = 0; + for (;list; list = list->next) + { + count ++; + client = list->data; + client->data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, client); + if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) + goto error; + + /* configure test data */ + int max_items = 100; + int i; + for(i = 0; i < max_items; i++) { + client->items = g_list_append(client->items, g_strdup_printf("client %d data %d", count, (i+1))); + } } + server_data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(server, server_data_store, &error)) + goto error; + run_testbed(); return; |
From: <svn...@op...> - 2009-09-14 17:53:11
|
Author: bellmich Date: Mon Sep 14 19:52:56 2009 New Revision: 1274 URL: http://libsyncml.opensync.org/changeset/1274 Log: - added some location related functions which are necessary for account/IMEI handling - added set_local - added set_remote - added get_local - fixed mapping generation (copy&paste mistake) - data store sessions must always be checked before they are dispatched Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session.c trunk/libsyncml/data_sync_api/sml_data_sync_session.h trunk/libsyncml/data_sync_api/sml_data_sync_session_private.h trunk/tests/check_data_sync_api.c Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session.c Mon Sep 14 19:49:51 2009 (r1273) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session.c Mon Sep 14 19:52:56 2009 (r1274) @@ -33,6 +33,7 @@ enum { PROP_0, + PROP_LOCAL, PROP_REMOTE }; @@ -43,6 +44,9 @@ GParamSpec *pspec) { switch (property_id) { + case PROP_LOCAL: + g_value_set_object (value, SML_DATA_SYNC_SESSION (object)->priv->local); + break; case PROP_REMOTE: g_value_set_object (value, SML_DATA_SYNC_SESSION (object)->priv->remote); break; @@ -58,6 +62,12 @@ GParamSpec *pspec) { switch (property_id) { + case PROP_LOCAL: + if (SML_DATA_SYNC_SESSION (object)->priv->local) + g_object_unref (SML_DATA_SYNC_SESSION (object)->priv->local); + SML_DATA_SYNC_SESSION (object)->priv->local = SML_LOCATION (value); + g_object_ref(SML_LOCATION (value)); + break; case PROP_REMOTE: if (SML_DATA_SYNC_SESSION (object)->priv->remote) g_object_unref (SML_DATA_SYNC_SESSION (object)->priv->remote); @@ -121,6 +131,18 @@ object_class->finalize = sml_data_sync_session_finalize; /** + * SmlDataSyncSession:local: + * + * The local location property. + */ + g_object_class_install_property (object_class, + PROP_LOCAL, + g_param_spec_object ("local", + "local", + "local location", + G_TYPE_OBJECT, + G_PARAM_READWRITE)); + /** * SmlDataSyncSession:remote: * * The remote location property. @@ -226,6 +248,48 @@ } /** + * sml_data_sync_session_get_local: + * @self: A #SmlDataSyncSession + * + * Gets the local property. + * + * Return value: + */ +SmlLocation* +sml_data_sync_session_get_local (SmlDataSyncSession *self) +{ + g_return_val_if_fail (SML_IS_DATA_SYNC_SESSION (self), NULL); + + if (!self->priv->local && + smlSessionGetSource(self->priv->session) && + smlSessionGetEstablished(self->priv->session)) + { + sml_data_sync_session_set_local(self, smlSessionGetSource(self->priv->session)); + } + + return self->priv->local; +} + +/** + * sml_data_sync_session_set_local: + * @self: A #SmlDataSyncSession + * @local: + * + * Sets the local property. + */ +void +sml_data_sync_session_set_local (SmlDataSyncSession *self, + SmlLocation* local) +{ + g_return_if_fail (SML_IS_DATA_SYNC_SESSION (self)); + g_return_if_fail (SML_IS_LOCATION (local)); + + if (self->priv->local) + g_object_unref (self->priv->local); + self->priv->local = g_object_ref (local); +} + +/** * sml_data_sync_session_get_remote: * @self: A #SmlDataSyncSession * @@ -237,6 +301,14 @@ sml_data_sync_session_get_remote (SmlDataSyncSession *self) { g_return_val_if_fail (SML_IS_DATA_SYNC_SESSION (self), NULL); + + if (!self->priv->remote && + smlSessionGetTarget(self->priv->session) && + smlSessionGetEstablished(self->priv->session)) + { + sml_data_sync_session_set_remote(self, smlSessionGetTarget(self->priv->session)); + } + return self->priv->remote; } @@ -362,7 +434,7 @@ SmlDataSyncDataStoreSession *datastore = o->data; smlAssert(datastore); - if (!sml_data_sync_data_store_session_send_changes(datastore, error)) + if (!sml_data_sync_data_store_session_send_mappings(datastore, error)) goto error; } @@ -456,7 +528,8 @@ { smlTrace(TRACE_INTERNAL, "%s: data store session %p", __func__, o->data); SmlDataSyncDataStoreSession *session = o->data; - if (!sml_data_sync_data_store_session_dispatch(session)) + if (sml_data_sync_data_store_session_check(session) && + !sml_data_sync_data_store_session_dispatch(session)) { smlTrace(TRACE_EXIT, "%s - FALSE", __func__); return FALSE; @@ -505,6 +578,22 @@ GList *o = NULL; GError *locerror = NULL; + /* I (bellmich) still looking for the perfect time + * when to set the remote peers identity. + */ + if (!self->priv->local && + smlSessionGetSource(self->priv->session) && + smlSessionGetEstablished(self->priv->session)) + { + sml_data_sync_session_set_local(self, smlSessionGetSource(self->priv->session)); + } + if (!self->priv->remote && + smlSessionGetTarget(self->priv->session) && + smlSessionGetEstablished(self->priv->session)) + { + sml_data_sync_session_set_remote(self, smlSessionGetTarget(self->priv->session)); + } + switch (type) { case SML_MANAGER_SESSION_FLUSH: smlTrace(TRACE_INTERNAL, "%s: ignored event %d ", __func__, type); Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session.h Mon Sep 14 19:49:51 2009 (r1273) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session.h Mon Sep 14 19:52:56 2009 (r1274) @@ -65,6 +65,7 @@ #include "sml_data_sync_data_store.h" GType sml_data_sync_session_get_type (void); +SmlLocation* sml_data_sync_session_get_local (SmlDataSyncSession *self); SmlLocation* sml_data_sync_session_get_remote (SmlDataSyncSession *self); gboolean sml_data_sync_session_send_changes (SmlDataSyncSession *self, GError **error); gboolean sml_data_sync_session_abort (SmlDataSyncSession *self, GError **error); Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session_private.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session_private.h Mon Sep 14 19:49:51 2009 (r1273) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session_private.h Mon Sep 14 19:52:56 2009 (r1274) @@ -53,6 +53,7 @@ struct _SmlDataSyncSessionPrivate { + SmlLocation* local; SmlLocation* remote; GList* list_data_store_sessions; /* SmlDataSyncDataStoreSession */ GHashTable* hash_dsdss2dsdss; /* SmlDataSyncDataStoreSession => SmlDataSyncDataStoreSession */ @@ -68,6 +69,9 @@ SmlDevInf* remote_dev_inf; }; +void sml_data_sync_session_set_local (SmlDataSyncSession *self, SmlLocation* local); +void sml_data_sync_session_set_remote (SmlDataSyncSession *self, SmlLocation* remote); + G_END_DECLS #endif /* __SML_DATA_SYNC_SESSION_PRIVATE_H__ */ Modified: trunk/tests/check_data_sync_api.c ============================================================================== --- trunk/tests/check_data_sync_api.c Mon Sep 14 19:49:51 2009 (r1273) +++ trunk/tests/check_data_sync_api.c Mon Sep 14 19:52:56 2009 (r1274) @@ -31,11 +31,16 @@ GMutex *runMutex = NULL; int locks; -GList *client_items; -SmlDataSync *client; +GList *clients; +typedef struct SmlDataSyncTestClient { + GList *items; + SmlDataSync *client; + SmlDataSyncDataStore *data_store; +} SmlDataSyncTestClient; + SmlDataSync *server; -SmlDataSyncDataStore *client_data_store; SmlDataSyncDataStore *server_data_store; + const char *transport; @@ -45,21 +50,21 @@ gboolean sendAllChanges (SmlDataSyncSession *session, + SmlDataSyncTestClient *client, GError **error) { smlTrace(TRACE_ENTRY, "%s", __func__); - SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(session); SmlDataSyncDataStoreSession *dss = NULL; - if (dsObject == client) - dss = sml_data_sync_session_get_data_store_session(session, client_data_store, error); + if (client) + dss = sml_data_sync_session_get_data_store_session(session, client->data_store, error); else dss = sml_data_sync_session_get_data_store_session(session, server_data_store, error); sml_fail_unless(dss != NULL, "%s", GET_ERROR_MESSAGE((*error))); - if (dsObject == client) + if (client) { - GList *list = client_items; + GList *list = client->items; size_t count = 0; for (;list;list = list->next) { @@ -94,12 +99,13 @@ smlTrace(TRACE_ENTRY, "%s(%p, %i, %p, %p)", __func__, dsObject, type, userdata, error); GError *locerror = NULL; - //if (!dsObject) - // dsObject = sml_data_sync_session_get_data_sync(session); + SmlDataSyncTestClient *client = NULL; + if (userdata) + client = userdata; switch (type) { case SML_DATA_SYNC_SESSION_EVENT_ERROR: - if (dsObject == client) { + if (client) { sml_fail_unless(FALSE, "OMA DS client failed: %s", error->message); } else { sml_fail_unless(FALSE, "OMA DS server failed: %s", error->message); @@ -118,17 +124,17 @@ break; case SML_DATA_SYNC_SESSION_EVENT_GOT_ALL_ALERTS: /* g_message("All alerts of the remote device were received."); */ - if (dsObject == client) + if (client) { - if (!sendAllChanges(session, &locerror)) + if (!sendAllChanges(session, client, &locerror)) goto error; } break; case SML_DATA_SYNC_SESSION_EVENT_GOT_ALL_CHANGES: /* g_message("All changes of the remote device were received."); */ - if (dsObject == server) + if (!client) { - if (!sendAllChanges(session, &locerror)) + if (!sendAllChanges(session, NULL, &locerror)) goto error; } /* the map of the client is send automatically */ @@ -170,18 +176,45 @@ SmlDataSyncSession *dss = sml_data_sync_data_store_session_get_data_sync_session(session); SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(dss); - if (dsObject == client) { - sml_fail_unless(FALSE, "A change was received from the server."); + if (dsObject != server) { + sml_fail_unless(FALSE, "A change was received by the server."); } /* check the source */ - if (datastore == client_data_store) { + if (datastore != server_data_store) { sml_fail_unless(FALSE, "The data store is wrong (from client)."); } + /* determine client */ + + /* This is a hack because of the behaviour of the OBEX server. */ + smlTrace(TRACE_INTERNAL, "%s: session(server->remote) ::= %p", __func__, sml_data_sync_session_get_remote(dss)); + smlTrace(TRACE_INTERNAL, "%s: session(server->remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_remote(dss))); + smlTrace(TRACE_INTERNAL, "%s: session(server->local) ::= %p", __func__, sml_data_sync_session_get_local(dss)); + smlTrace(TRACE_INTERNAL, "%s: session(server->local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_local(dss))); + GList *list = clients; + SmlDataSyncTestClient *client = NULL; + for (;list; list = list->next) { + client = list->data; + smlTrace(TRACE_INTERNAL, "%s: client(local) ::= %p", __func__, sml_data_sync_get_local(client->client)); + smlTrace(TRACE_INTERNAL, "%s: client(local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_local(client->client))); + smlTrace(TRACE_INTERNAL, "%s: client(remote) ::= %p", __func__, sml_data_sync_get_remote(client->client)); + smlTrace(TRACE_INTERNAL, "%s: client(remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_remote(client->client))); + if (sml_location_is_equal(sml_data_sync_get_local(client->client), sml_data_sync_session_get_remote(dss))) + { + /* correct client */ + continue; + smlTrace(TRACE_INTERNAL, "%s - correct client", __func__); + } else { + /* wrong client */ + client = NULL; + } + } + sml_fail_unless(client != NULL, "Cannot find correct client."); + /* handle the item */ - GList *list = client_items; + list = client->items; size_t count = 0; for (; list; list = list->next) { count++; @@ -248,13 +281,23 @@ // return SML_ALERT_UNKNOWN; //} -void init_testbed(const char *transport_type, const char *port) +void init_testbed(unsigned int peers, const char *transport_type, const char *port) { /* general init */ setup_testbed(NULL); GError *error = NULL; - client_items = NULL; - + + /* initialize clients */ + clients = NULL; + unsigned int i = 0; + for (;i < peers; i++) + { + SmlDataSyncTestClient *client = smlTryMalloc0(sizeof(SmlDataSyncTestClient), &error); + if (!client) + goto error; + clients = g_list_append(clients, client); + } + #ifdef ENABLE_OPENOBEX_TCP transport = "OBEX"; #endif @@ -273,22 +316,32 @@ #endif if (!strcmp(transport, "HTTP")) { - client = sml_data_sync_new(); - if (!sml_data_sync_set_session_type(client, SML_SESSION_TYPE_CLIENT, &error)) - goto error; - if (!sml_data_sync_set_transport_type(client, SML_TRANSPORT_HTTP_CLIENT, &error)) - goto error; + GList *list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + client->client = sml_data_sync_new(); + if (!sml_data_sync_set_session_type(client->client, SML_SESSION_TYPE_CLIENT, &error)) + goto error; + if (!sml_data_sync_set_transport_type(client->client, SML_TRANSPORT_HTTP_CLIENT, &error)) + goto error; + } server = sml_data_sync_new(); if (!sml_data_sync_set_session_type(server, SML_SESSION_TYPE_SERVER, &error)) goto error; if (!sml_data_sync_set_transport_type(server, SML_TRANSPORT_HTTP_SERVER, &error)) goto error; } else { - client = sml_data_sync_new(); - if (!sml_data_sync_set_session_type(client, SML_SESSION_TYPE_CLIENT, &error)) - goto error; - if (!sml_data_sync_set_transport_type(client, SML_TRANSPORT_OBEX_SERVER, &error)) - goto error; + GList *list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + client->client = sml_data_sync_new(); + if (!sml_data_sync_set_session_type(client->client, SML_SESSION_TYPE_CLIENT, &error)) + goto error; + if (!sml_data_sync_set_transport_type(client->client, SML_TRANSPORT_OBEX_SERVER, &error)) + goto error; + } server = sml_data_sync_new(); if (!sml_data_sync_set_session_type(server, SML_SESSION_TYPE_SERVER, &error)) goto error; @@ -296,29 +349,68 @@ goto error; } + /* client configuration */ + + GList *list = clients; + unsigned int count = 0; + for (; list; list = list->next) + { + count++; + SmlDataSyncTestClient *client = list->data; + + /* set identifier for test verification */ + gchar *name = g_strdup_printf("client %d", count); + if (!sml_data_sync_set_option (client->client, + SML_DATA_SYNC_CONFIG_IDENTIFIER, + name, + &error)) + goto error; + if (!sml_data_sync_set_option (client->client, + SML_DATA_SYNC_CONFIG_TARGET, + "account", + &error)) + goto error; + smlSafeCFree(&name); + + + /* default configuration of callbacks */ + sml_data_sync_register_event_callback(client->client, recvEventCallback, client); + + /* configure transport */ + if (!strcmp(transport, "HTTP")) { + /* HTTP */ + char *url = g_strdup_printf("http://127.0.0.1:%s", port); + if (!sml_data_sync_set_option( + client->client, + SML_TRANSPORT_CONFIG_URL, + url, &error)) + goto error; + smlSafeCFree(&url); + } else { + /* OBEX */ + if (!sml_data_sync_set_option( + client->client, + SML_DATA_SYNC_CONFIG_CONNECTION_TYPE, + SML_DATA_SYNC_CONFIG_CONNECTION_NET, + &error)) + goto error; + if (!sml_data_sync_set_option( + client->client, + SML_TRANSPORT_CONFIG_PORT, + port, &error)) + goto error; + } + } + + /* server configuration */ + /* default configuration of callbacks */ - sml_data_sync_register_event_callback(client, recvEventCallback, NULL); sml_data_sync_register_event_callback(server, recvEventCallback, NULL); /* configure transport */ - if (!strcmp(transport, "HTTP")) { - /* HTTP */ - char *url = g_strdup_printf("http://127.0.0.1:%s", port); - if (!sml_data_sync_set_option( - client, - SML_TRANSPORT_CONFIG_URL, - url, &error)) - goto error; - smlSafeCFree(&url); - } else { + if (strcmp(transport, "HTTP")) { /* OBEX */ if (!sml_data_sync_set_option( - client, - SML_DATA_SYNC_CONFIG_CONNECTION_TYPE, - SML_DATA_SYNC_CONFIG_CONNECTION_NET, - &error)) - goto error; - if (!sml_data_sync_set_option( server, SML_DATA_SYNC_CONFIG_CONNECTION_TYPE, SML_DATA_SYNC_CONFIG_CONNECTION_NET, @@ -329,11 +421,6 @@ SML_TRANSPORT_CONFIG_URL, "127.0.0.1", &error)) goto error; - if (!sml_data_sync_set_option( - client, - SML_TRANSPORT_CONFIG_PORT, - port, &error)) - goto error; } if (!sml_data_sync_set_option( server, @@ -349,26 +436,49 @@ void run_testbed() { GError *error = NULL; - locks = 2; + locks = 2*g_list_length(clients); + + runMutex = g_mutex_new(); + g_mutex_lock(runMutex); /* init the sync */ if (!strcmp(transport, "HTTP")) { if (!sml_data_sync_initialize(server, &error)) goto error; - if (!sml_data_sync_initialize(client, &error)) - goto error; + GList *list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + if (!sml_data_sync_initialize(client->client, &error)) + goto error; + } if (!sml_data_sync_run(server, &error)) goto error; - if (!sml_data_sync_run(client, &error)) - goto error; + list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + if (!sml_data_sync_run(client->client, &error)) + goto error; + } } else { - if (!sml_data_sync_initialize(client, &error)) - goto error; + GList *list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + if (!sml_data_sync_initialize(client->client, &error)) + goto error; + } if (!sml_data_sync_initialize(server, &error)) goto error; - if (!sml_data_sync_run(client, &error)) - goto error; + list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + if (!sml_data_sync_run(client->client, &error)) + goto error; + } /* The OBEX server needs some time to start. */ if (g_getenv("SYNCML_TRACE")) usleep(2000); @@ -378,37 +488,47 @@ goto error; } - runMutex = g_mutex_new(); - g_mutex_lock(runMutex); g_mutex_lock(runMutex); g_mutex_unlock(runMutex); g_mutex_free(runMutex); runMutex = NULL; /* close the object */ - g_object_unref(client); + GList *list = clients; + for (; list; list = list->next) + { + SmlDataSyncTestClient *client = list->data; + g_object_unref(client->client); + g_list_free(client->items); + } g_object_unref(server); - g_list_free(client_items); return; error: + if (runMutex) { + g_mutex_trylock(runMutex); + g_mutex_unlock(runMutex); + g_mutex_free(runMutex); + runMutex = NULL; + } sml_fail_unless(FALSE, "%s", error->message); } START_TEST (ds_api_text_vcard_21) { GError *error = NULL; - init_testbed("HTTP", "17001"); + init_testbed(1, "HTTP", "17001"); /* register datastore * the source must be identical because this is http */ - client_data_store = sml_data_sync_data_store_new(); - sml_data_sync_data_store_set_content_type (client_data_store, "text/x-vcard"); - sml_data_sync_data_store_set_local_uri (client_data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); - if (!sml_data_sync_add_data_store(client, client_data_store, &error)) + SmlDataSyncTestClient *client = clients->data; + client->data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, client); + if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); @@ -419,7 +539,7 @@ goto error; /* configure test data */ - client_items = g_list_append(client_items, (char *) "blabla"); + client->items = g_list_append(client->items, (char *) "blabla"); run_testbed(); @@ -432,17 +552,18 @@ START_TEST (ds_api_image_jpeg) { GError *error = NULL; - init_testbed("OBEX", "17002"); + init_testbed(1, "OBEX", "17002"); /* register datastore * the source must be identical if this is http */ - client_data_store = sml_data_sync_data_store_new(); - sml_data_sync_data_store_set_content_type (client_data_store, "image/jpeg"); - sml_data_sync_data_store_set_local_uri (client_data_store, "dcim"); - sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); - if (!sml_data_sync_add_data_store(client, client_data_store, &error)) + SmlDataSyncTestClient *client = clients->data; + client->data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client->data_store, "image/jpeg"); + sml_data_sync_data_store_set_local_uri (client->data_store, "dcim"); + sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); @@ -456,7 +577,7 @@ goto error; /* configure test data */ - client_items = g_list_append(client_items, (char *) "this is an image"); + client->items = g_list_append(client->items, (char *) "this is an image"); run_testbed(); @@ -469,17 +590,18 @@ START_TEST (ds_api_unknown_ct) { GError *error = NULL; - init_testbed("HTTP", "17003"); + init_testbed(1, "HTTP", "17003"); /* register datastore * the source must be identical because this is http */ - client_data_store = sml_data_sync_data_store_new(); - sml_data_sync_data_store_set_content_type (client_data_store, "unknown/content-type"); - sml_data_sync_data_store_set_local_uri (client_data_store, "data"); - sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); - if (!sml_data_sync_add_data_store(client, client_data_store, &error)) + SmlDataSyncTestClient *client = clients->data; + client->data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client->data_store, "unknown/content-type"); + sml_data_sync_data_store_set_local_uri (client->data_store, "data"); + sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); @@ -490,7 +612,7 @@ goto error; /* configure test data */ - client_items = g_list_append(client_items, (char *) "this is some data"); + client->items = g_list_append(client->items, (char *) "this is some data"); run_testbed(); @@ -503,17 +625,18 @@ START_TEST (ds_api_multi_text_vcard_21) { GError *error = NULL; - init_testbed("HTTP", "17004"); + init_testbed(1, "HTTP", "17004"); /* register datastore * the source must be identical because this is http */ - client_data_store = sml_data_sync_data_store_new(); - sml_data_sync_data_store_set_content_type (client_data_store, "text/x-vcard"); - sml_data_sync_data_store_set_local_uri (client_data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(client_data_store, recvChangeCallback, NULL); - if (!sml_data_sync_add_data_store(client, client_data_store, &error)) + SmlDataSyncTestClient *client = clients->data; + client->data_store = sml_data_sync_data_store_new(); + sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); + sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); + sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, NULL); + if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); @@ -527,7 +650,7 @@ int max_items = 10000; int i; for(i = 0; i < max_items; i++) { - client_items = g_list_append(client_items, (char *) "client data"); + client->items = g_list_append(client->items, (char *) "client data"); } run_testbed(); |
From: <svn...@op...> - 2009-09-14 17:50:10
|
Author: bellmich Date: Mon Sep 14 19:49:51 2009 New Revision: 1273 URL: http://libsyncml.opensync.org/changeset/1273 Log: - added get_local (sometimes necessary for sessions) - added get_remote (sometimes necessary for sessions) - enforce the source in case of an OMA client Modified: trunk/libsyncml/data_sync_api/sml_data_sync.c trunk/libsyncml/data_sync_api/sml_data_sync.h Modified: trunk/libsyncml/data_sync_api/sml_data_sync.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync.c Mon Sep 14 19:47:55 2009 (r1272) +++ trunk/libsyncml/data_sync_api/sml_data_sync.c Mon Sep 14 19:49:51 2009 (r1273) @@ -548,6 +548,18 @@ return TRUE; } +SmlLocation* +sml_data_sync_get_local (SmlDataSync *self) +{ + return self->priv->local; +} + +SmlLocation* +sml_data_sync_get_remote (SmlDataSync *self) +{ + return self->priv->remote; +} + /** * sml_data_sync_get_data_store_from_local_uri: * @self: A #SmlDataSync @@ -563,12 +575,14 @@ sml_return_val_error_if_fail (SML_IS_DATA_SYNC (self), FALSE, error, SML_ERROR_GENERIC, "There must be a SmlDataSync object."); sml_return_val_error_if_fail (local != NULL, FALSE, error, SML_ERROR_GENERIC, "There must be a local URI."); sml_return_val_error_if_fail (strlen(local) > 0, FALSE, error, SML_ERROR_GENERIC, "The local URI cannot be the empty word."); + smlTrace(TRACE_INTERNAL, "%s: searching %s", __func__, local); GList *o = self->priv->data_stores; for (; o; o = o->next) { SmlDataSyncDataStore *datastore = o->data; SmlLocation *loc = sml_data_sync_data_store_get_local(datastore); - if (!strcmp(sml_location_get_uri(loc), local)) + smlTrace(TRACE_INTERNAL, "%s: checking %s", __func__, sml_location_get_full_uri(loc)); + if (!strcmp(sml_location_get_full_uri(loc), local)) return datastore; } @@ -783,6 +797,11 @@ smlSessionUseOnlyReplace(session, self->priv->only_replace); smlSessionUseNumberOfChanges(session, self->priv->use_number_of_changes); + /* enforce own source after a SAN was received */ + /* clients are generally stupid and enforce their stuff */ + if (self->priv->session_type == SML_SESSION_TYPE_CLIENT) + smlSessionSetSource(session, self->priv->local); + /* authentication management for OMA DS clients*/ if (self->priv->session_type == SML_SESSION_TYPE_CLIENT && (self->priv->username || self->priv->password)) Modified: trunk/libsyncml/data_sync_api/sml_data_sync.h ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync.h Mon Sep 14 19:47:55 2009 (r1272) +++ trunk/libsyncml/data_sync_api/sml_data_sync.h Mon Sep 14 19:49:51 2009 (r1273) @@ -76,6 +76,8 @@ gboolean sml_data_sync_initialize (SmlDataSync *self, GError **error); gboolean sml_data_sync_run (SmlDataSync *self, GError **error); gboolean sml_data_sync_add_data_store (SmlDataSync *self, SmlDataSyncDataStore *ds, GError **error); +SmlLocation* sml_data_sync_get_local (SmlDataSync *self); +SmlLocation* sml_data_sync_get_remote (SmlDataSync *self); typedef void (* SmlDataSyncSessionEventCallback) (SmlDataSyncSession *self, SmlDataSync *data_sync, SmlDataSyncEventType type, void *userdata, const GError *error); typedef gboolean (* SmlDataSyncSessionWriteDevInfCallback) (SmlDataSyncSession *self, SmlDevInf *devinf, void *userdata, GError **error); |
From: <svn...@op...> - 2009-09-14 17:48:09
|
Author: bellmich Date: Mon Sep 14 19:47:55 2009 New Revision: 1272 URL: http://libsyncml.opensync.org/changeset/1272 Log: If the SmlDsSession is not present then it is impossible to dispatch. Modified: trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Modified: trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Mon Sep 14 19:47:00 2009 (r1271) +++ trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Mon Sep 14 19:47:55 2009 (r1272) @@ -695,6 +695,7 @@ sml_data_sync_data_store_session_check (SmlDataSyncDataStoreSession *self) { g_return_val_if_fail (SML_IS_DATA_SYNC_DATA_STORE_SESSION (self), FALSE); + g_return_val_if_fail (self->priv->data_store_session, FALSE); if (smlDsSessionCheck(self->priv->data_store_session)) return TRUE; @@ -712,6 +713,7 @@ sml_data_sync_data_store_session_dispatch (SmlDataSyncDataStoreSession *self) { g_return_val_if_fail (SML_IS_DATA_SYNC_DATA_STORE_SESSION (self), FALSE); + g_return_val_if_fail (self->priv->data_store_session, FALSE); smlDsSessionDispatch(self->priv->data_store_session); |
From: <svn...@op...> - 2009-09-14 17:47:14
|
Author: bellmich Date: Mon Sep 14 19:47:00 2009 New Revision: 1271 URL: http://libsyncml.opensync.org/changeset/1271 Log: Some clients (especially OBEX servers) want to enforce their source. Therefore it must be possible to update the source of a session if the session was created automatically. Modified: trunk/libsyncml/sml_session.c trunk/libsyncml/sml_session.h Modified: trunk/libsyncml/sml_session.c ============================================================================== --- trunk/libsyncml/sml_session.c Mon Sep 14 19:45:08 2009 (r1270) +++ trunk/libsyncml/sml_session.c Mon Sep 14 19:47:00 2009 (r1271) @@ -1795,6 +1795,17 @@ return session->source; } +void +smlSessionSetSource (SmlSession *session, + SmlLocation *source) +{ + if (!source) + return; + if (session->source) + g_object_unref(session->source); + session->source = g_object_ref(source); +} + SmlLocation* smlSessionGetTarget (SmlSession *session) { Modified: trunk/libsyncml/sml_session.h ============================================================================== --- trunk/libsyncml/sml_session.h Mon Sep 14 19:45:08 2009 (r1270) +++ trunk/libsyncml/sml_session.h Mon Sep 14 19:47:00 2009 (r1271) @@ -81,6 +81,7 @@ void smlSessionSetType (SmlSession *session, SmlSessionType type); void smlSessionDispatchEvent (SmlSession *session, SmlSessionEventType type, SmlCommand *cmd, SmlCommand *parent, SmlStatus *headerreply, const GError *error); SmlLocation* smlSessionGetSource (SmlSession *session); +void smlSessionSetSource (SmlSession *session, SmlLocation *source); SmlLocation* smlSessionGetTarget (SmlSession *session); /* This function MUST NOT be used for servers. * This function is only used to set the credentials for a client. |
From: <svn...@op...> - 2009-09-14 17:45:21
|
Author: bellmich Date: Mon Sep 14 19:45:08 2009 New Revision: 1270 URL: http://libsyncml.opensync.org/changeset/1270 Log: handles the case that a data store session is initiated by a SAN Modified: trunk/libsyncml/data_sync_api/data_sync_client.c Modified: trunk/libsyncml/data_sync_api/data_sync_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_client.c Mon Sep 14 15:11:05 2009 (r1269) +++ trunk/libsyncml/data_sync_api/data_sync_client.c Mon Sep 14 19:45:08 2009 (r1270) @@ -47,6 +47,11 @@ gboolean ret = TRUE; GError *error = NULL; + /* If this is an OBEX server then the dsession is not known until now. */ + + if (!self->priv->data_store_session) + self->priv->data_store_session = dsession; + /* libsyncml only supports SML_ALERT_TWO_WAY and SML_ALERT_SLOW_SYNC * but some old phones reply on a SAN alert 206 with a slow sync 201 * alert or a SAN alert 206 (insteed of a normal two way alert 200). |
From: <svn...@op...> - 2009-09-14 13:11:21
|
Author: bellmich Date: Mon Sep 14 15:11:05 2009 New Revision: 1269 URL: http://libsyncml.opensync.org/changeset/1269 Log: SmlDataSyncDataStoreSession is usually unknown to the library user. Therefore the data store must be checked. Modified: trunk/tools/syncml-ds-tool.c Modified: trunk/tools/syncml-ds-tool.c ============================================================================== --- trunk/tools/syncml-ds-tool.c Mon Sep 14 13:36:23 2009 (r1268) +++ trunk/tools/syncml-ds-tool.c Mon Sep 14 15:11:05 2009 (r1269) @@ -1360,7 +1360,9 @@ GList *o = datastores; while (o) { datastore = o->data; - if (datastore->session == session) { + if (datastore->object == sml_data_sync_data_store_session_get_data_store(session)) { + if (datastore->session == NULL) + datastore->session = session; /* abort the scan */ o = NULL; } else { @@ -1398,6 +1400,7 @@ { GError *error = NULL; if (!g_thread_supported ()) g_thread_init (NULL); + g_type_init(); /* init DS object */ |
From: <svn...@op...> - 2009-09-14 11:36:41
|
Author: bellmich Date: Mon Sep 14 13:36:23 2009 New Revision: 1268 URL: http://libsyncml.opensync.org/changeset/1268 Log: fixed the number of commands (3 => 2 and 2 => 3) Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.wbxml trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.wbxml ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml ============================================================================== --- trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml Mon Sep 14 13:34:56 2009 (r1267) +++ trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml Mon Sep 14 13:36:23 2009 (r1268) @@ -27,7 +27,7 @@ <Data>200</Data> </Status> <Status> - <CmdID>3</CmdID> + <CmdID>2</CmdID> <MsgRef>3</MsgRef> <CmdRef>14</CmdRef> <Cmd>Sync</Cmd> @@ -36,7 +36,7 @@ <Data>200</Data> </Status> <Status> - <CmdID>2</CmdID> + <CmdID>3</CmdID> <MsgRef>3</MsgRef> <CmdRef>15</CmdRef> <Cmd>Sync</Cmd> |
From: <svn...@op...> - 2009-09-14 11:35:15
|
Author: bellmich Date: Mon Sep 14 13:34:56 2009 New Revision: 1267 URL: http://libsyncml.opensync.org/changeset/1267 Log: adapted test data to new behavior libsyncml now adapts to the order used by the remote peer. This requires that the test data is fixed accordingly. The job was done with hexer. Modified: trunk/tests/mobiles/nokia_9500_vcard_vcal/received-2.wbxml trunk/tests/mobiles/nokia_9500_vcard_vcal/received-2.xml trunk/tests/mobiles/nokia_9500_vcard_vcal/sent-2.wbxml trunk/tests/mobiles/nokia_9500_vcard_vcal/sent-2.xml Modified: trunk/tests/mobiles/nokia_9500_vcard_vcal/received-2.wbxml ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/tests/mobiles/nokia_9500_vcard_vcal/received-2.xml ============================================================================== --- trunk/tests/mobiles/nokia_9500_vcard_vcal/received-2.xml Mon Sep 14 13:25:47 2009 (r1266) +++ trunk/tests/mobiles/nokia_9500_vcard_vcal/received-2.xml Mon Sep 14 13:34:56 2009 (r1267) @@ -1 +1,49 @@ -<?xml version="1.0"?><!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"><SyncML xmlns="SYNCML:SYNCML1.1"><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>224</SessionID><MsgID>3</MsgID><Target><LocURI>PC Suite</LocURI></Target><Source><LocURI>IMEI:123456789012345</LocURI></Source><Meta><MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize></Meta></SyncHdr><SyncBody><Status><CmdID>1</CmdID><MsgRef>3</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>IMEI:123456789012345</TargetRef><SourceRef>PC Suite</SourceRef><Data>200</Data></Status><Status><CmdID>2</CmdID><MsgRef>3</MsgRef><CmdRef>17</CmdRef><Cmd>Sync</Cmd><TargetRef>./C\System\Data\Contacts.cdb</TargetRef><SourceRef>./Contacts</SourceRef><Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>3</MsgRef><CmdRef>18</CmdRef><Cmd>Sync</Cmd><TargetRef>./C\System\Data\Calendar</TargetRef><SourceRef>./Calendar</SourceRef><Data>200</Data></Status><Final/></SyncBody></SyncML> \ No newline at end of file +<?xml version="1.0"?> +<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"> +<SyncML xmlns="SYNCML:SYNCML1.1"> + <SyncHdr> + <VerDTD>1.1</VerDTD> + <VerProto>SyncML/1.1</VerProto> + <SessionID>224</SessionID> + <MsgID>3</MsgID> + <Target> + <LocURI>PC Suite</LocURI> + </Target> + <Source> + <LocURI>IMEI:123456789012345</LocURI> + </Source> + <Meta> + <MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize> + </Meta> + </SyncHdr> + <SyncBody> + <Status> + <CmdID>1</CmdID> + <MsgRef>3</MsgRef> + <CmdRef>0</CmdRef> + <Cmd>SyncHdr</Cmd> + <TargetRef>IMEI:123456789012345</TargetRef> + <SourceRef>PC Suite</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>2</CmdID> + <MsgRef>3</MsgRef> + <CmdRef>17</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./C\System\Data\Calendar</TargetRef> + <SourceRef>./Calendar</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>3</CmdID> + <MsgRef>3</MsgRef> + <CmdRef>18</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./C\System\Data\Contacts.cdb</TargetRef> + <SourceRef>./Contacts</SourceRef> + <Data>200</Data> + </Status> + <Final/> + </SyncBody> +</SyncML> Modified: trunk/tests/mobiles/nokia_9500_vcard_vcal/sent-2.wbxml ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/tests/mobiles/nokia_9500_vcard_vcal/sent-2.xml ============================================================================== --- trunk/tests/mobiles/nokia_9500_vcard_vcal/sent-2.xml Mon Sep 14 13:25:47 2009 (r1266) +++ trunk/tests/mobiles/nokia_9500_vcard_vcal/sent-2.xml Mon Sep 14 13:34:56 2009 (r1267) @@ -1,14 +1,123 @@ <?xml version="1.0"?> -<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"><SyncML xmlns="SYNCML:SYNCML1.1"><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>224</SessionID><MsgID>3</MsgID><Target><LocURI>IMEI:123456789012345</LocURI></Target><Source><LocURI>PC Suite</LocURI></Source><Meta><MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize></Meta></SyncHdr> -<SyncBody><Status><CmdID>1</CmdID><MsgRef>2</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>PC Suite</TargetRef><SourceRef>IMEI:123456789012345</SourceRef><Data>200</Data></Status> -<Status><CmdID>9</CmdID><MsgRef>2</MsgRef><CmdRef>6</CmdRef><Cmd>Results</Cmd><SourceRef>./devinf11</SourceRef><Data>200</Data></Status> -<Status><CmdID>10</CmdID><MsgRef>2</MsgRef><CmdRef>7</CmdRef><Cmd>Sync</Cmd><TargetRef>./Calendar</TargetRef><SourceRef>./C\System\Data\Calendar</SourceRef><Data>200</Data></Status> -<Status><CmdID>11</CmdID><MsgRef>2</MsgRef><CmdRef>8</CmdRef><Cmd>Add</Cmd><SourceRef>4</SourceRef><Data>201</Data></Status> -<Status><CmdID>12</CmdID><MsgRef>2</MsgRef><CmdRef>9</CmdRef><Cmd>Add</Cmd><SourceRef>5</SourceRef><Data>201</Data></Status> -<Status><CmdID>13</CmdID><MsgRef>2</MsgRef><CmdRef>10</CmdRef><Cmd>Sync</Cmd><TargetRef>./Contacts</TargetRef><SourceRef>./C\System\Data\Contacts.cdb</SourceRef><Data>200</Data></Status> -<Status><CmdID>14</CmdID><MsgRef>2</MsgRef><CmdRef>11</CmdRef><Cmd>Add</Cmd><SourceRef>4</SourceRef><Data>201</Data></Status> -<Status><CmdID>15</CmdID><MsgRef>2</MsgRef><CmdRef>12</CmdRef><Cmd>Add</Cmd><SourceRef>8</SourceRef><Data>201</Data></Status> -<Status><CmdID>16</CmdID><MsgRef>2</MsgRef><CmdRef>13</CmdRef><Cmd>Add</Cmd><SourceRef>18</SourceRef><Data>201</Data></Status> -<Sync><CmdID>17</CmdID><Target><LocURI>./C\System\Data\Contacts.cdb</LocURI></Target><Source><LocURI>./Contacts</LocURI></Source><Meta><MaxObjSize xmlns="syncml:metinf">1024000</MaxObjSize></Meta><NumberOfChanges>0</NumberOfChanges> -</Sync><Sync><CmdID>18</CmdID><Target><LocURI>./C\System\Data\Calendar</LocURI></Target><Source><LocURI>./Calendar</LocURI></Source><Meta><MaxObjSize xmlns="syncml:metinf">1024000</MaxObjSize></Meta><NumberOfChanges>0</NumberOfChanges> -</Sync><Final></Final></SyncBody></SyncML> +<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"> +<SyncML xmlns="SYNCML:SYNCML1.1"> + <SyncHdr> + <VerDTD>1.1</VerDTD> + <VerProto>SyncML/1.1</VerProto> + <SessionID>224</SessionID> + <MsgID>3</MsgID> + <Target> + <LocURI>IMEI:123456789012345</LocURI> + </Target> + <Source> + <LocURI>PC Suite</LocURI> + </Source> + <Meta> + <MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize> + </Meta> + </SyncHdr> + <SyncBody> + <Status> + <CmdID>1</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>0</CmdRef> + <Cmd>SyncHdr</Cmd> + <TargetRef>PC Suite</TargetRef> + <SourceRef>IMEI:123456789012345</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>9</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>6</CmdRef> + <Cmd>Results</Cmd> + <SourceRef>./devinf11</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>10</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>7</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./Calendar</TargetRef> + <SourceRef>./C\System\Data\Calendar</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>11</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>8</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>4</SourceRef> + <Data>201</Data> + </Status> + <Status> + <CmdID>12</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>9</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>5</SourceRef> + <Data>201</Data> + </Status> + <Status> + <CmdID>13</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>10</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./Contacts</TargetRef> + <SourceRef>./C\System\Data\Contacts.cdb</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>14</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>11</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>4</SourceRef> + <Data>201</Data> + </Status> + <Status> + <CmdID>15</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>12</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>8</SourceRef> + <Data>201</Data> + </Status> + <Status> + <CmdID>16</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>13</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>18</SourceRef> + <Data>201</Data> + </Status> + <Sync> + <CmdID>17</CmdID> + <Target> + <LocURI>./C\System\Data\Calendar</LocURI> + </Target> + <Source> + <LocURI>./Calendar</LocURI> + </Source> + <Meta> + <MaxObjSize xmlns="syncml:metinf">1024000</MaxObjSize> + </Meta> + <NumberOfChanges>0</NumberOfChanges> + </Sync> + <Sync> + <CmdID>18</CmdID> + <Target> + <LocURI>./C\System\Data\Contacts.cdb</LocURI> + </Target> + <Source> + <LocURI>./Contacts</LocURI> + </Source> + <Meta> + <MaxObjSize xmlns="syncml:metinf">1024000</MaxObjSize> + </Meta> + <NumberOfChanges>0</NumberOfChanges> + </Sync> + <Final/> + </SyncBody> +</SyncML> |
From: <svn...@op...> - 2009-09-14 11:26:05
|
Author: bellmich Date: Mon Sep 14 13:25:47 2009 New Revision: 1266 URL: http://libsyncml.opensync.org/changeset/1266 Log: adapted test data to new behavior libsyncml now adapts to the order used by the remote peer. This requires that the test data is fixed accordingly. The job was done with hexer. Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.wbxml trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml trunk/tests/mobiles/nokia_e65_vcard_vcal/sent-2.wbxml trunk/tests/mobiles/nokia_e65_vcard_vcal/sent-2.xml Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.wbxml ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml ============================================================================== --- trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml Mon Sep 14 12:37:09 2009 (r1265) +++ trunk/tests/mobiles/nokia_e65_vcard_vcal/received-2.xml Mon Sep 14 13:25:47 2009 (r1266) @@ -1 +1,49 @@ -<?xml version="1.0"?><!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"><SyncML xmlns="SYNCML:SYNCML1.1"><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>5</SessionID><MsgID>3</MsgID><Target><LocURI>PC Suite</LocURI></Target><Source><LocURI>IMEI:123456789012345</LocURI></Source><Meta><MaxMsgSize xmlns="syncml:metinf">65535</MaxMsgSize></Meta></SyncHdr><SyncBody><Status><CmdID>1</CmdID><MsgRef>3</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>IMEI:123456789012345</TargetRef><SourceRef>PC Suite</SourceRef><Data>200</Data></Status><Status><CmdID>2</CmdID><MsgRef>3</MsgRef><CmdRef>14</CmdRef><Cmd>Sync</Cmd><TargetRef>./C:Contacts.cdb</TargetRef><SourceRef>Contacts</SourceRef><Data>200</Data></Status><Status><CmdID>3</CmdID><MsgRef>3</MsgRef><CmdRef>15</CmdRef><Cmd>Sync</Cmd><TargetRef>./C:Calendar</TargetRef><SourceRef>Calendar</SourceRef><Data>200</Data></Status><Final/></SyncBody></SyncML> +<?xml version="1.0"?> +<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"> +<SyncML xmlns="SYNCML:SYNCML1.1"> + <SyncHdr> + <VerDTD>1.1</VerDTD> + <VerProto>SyncML/1.1</VerProto> + <SessionID>5</SessionID> + <MsgID>3</MsgID> + <Target> + <LocURI>PC Suite</LocURI> + </Target> + <Source> + <LocURI>IMEI:123456789012345</LocURI> + </Source> + <Meta> + <MaxMsgSize xmlns="syncml:metinf">65535</MaxMsgSize> + </Meta> + </SyncHdr> + <SyncBody> + <Status> + <CmdID>1</CmdID> + <MsgRef>3</MsgRef> + <CmdRef>0</CmdRef> + <Cmd>SyncHdr</Cmd> + <TargetRef>IMEI:123456789012345</TargetRef> + <SourceRef>PC Suite</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>3</CmdID> + <MsgRef>3</MsgRef> + <CmdRef>14</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./C:Calendar</TargetRef> + <SourceRef>Calendar</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>2</CmdID> + <MsgRef>3</MsgRef> + <CmdRef>15</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./C:Contacts.cdb</TargetRef> + <SourceRef>Contacts</SourceRef> + <Data>200</Data> + </Status> + <Final/> + </SyncBody> +</SyncML> Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/sent-2.wbxml ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/tests/mobiles/nokia_e65_vcard_vcal/sent-2.xml ============================================================================== --- trunk/tests/mobiles/nokia_e65_vcard_vcal/sent-2.xml Mon Sep 14 12:37:09 2009 (r1265) +++ trunk/tests/mobiles/nokia_e65_vcard_vcal/sent-2.xml Mon Sep 14 13:25:47 2009 (r1266) @@ -1,10 +1,91 @@ <?xml version="1.0"?> -<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"><SyncML xmlns="SYNCML:SYNCML1.1"><SyncHdr><VerDTD>1.1</VerDTD><VerProto>SyncML/1.1</VerProto><SessionID>5</SessionID><MsgID>3</MsgID><Target><LocURI>IMEI:123456789012345</LocURI></Target><Source><LocURI>PC Suite</LocURI></Source><Meta><MaxMsgSize xmlns="syncml:metinf">65535</MaxMsgSize></Meta></SyncHdr> -<SyncBody><Status><CmdID>1</CmdID><MsgRef>2</MsgRef><CmdRef>0</CmdRef><Cmd>SyncHdr</Cmd><TargetRef>PC Suite</TargetRef><SourceRef>IMEI:123456789012345</SourceRef><Data>200</Data></Status> -<Status><CmdID>10</CmdID><MsgRef>2</MsgRef><CmdRef>5</CmdRef><Cmd>Sync</Cmd><TargetRef>./Calendar</TargetRef><SourceRef>./C:Calendar</SourceRef><Data>200</Data></Status> -<Status><CmdID>11</CmdID><MsgRef>2</MsgRef><CmdRef>6</CmdRef><Cmd>Add</Cmd><SourceRef>2</SourceRef><Data>201</Data></Status> -<Status><CmdID>12</CmdID><MsgRef>2</MsgRef><CmdRef>7</CmdRef><Cmd>Sync</Cmd><TargetRef>./Contacts</TargetRef><SourceRef>./C:Contacts.cdb</SourceRef><Data>200</Data></Status> -<Status><CmdID>13</CmdID><MsgRef>2</MsgRef><CmdRef>8</CmdRef><Cmd>Add</Cmd><SourceRef>1</SourceRef><Data>201</Data></Status> -<Sync><CmdID>14</CmdID><Target><LocURI>./C:Contacts.cdb</LocURI></Target><Source><LocURI>Contacts</LocURI></Source><Meta><MaxObjSize xmlns="syncml:metinf">65535</MaxObjSize></Meta><NumberOfChanges>0</NumberOfChanges> -</Sync><Sync><CmdID>15</CmdID><Target><LocURI>./C:Calendar</LocURI></Target><Source><LocURI>Calendar</LocURI></Source><Meta><MaxObjSize xmlns="syncml:metinf">65535</MaxObjSize></Meta><NumberOfChanges>0</NumberOfChanges> -</Sync><Final></Final></SyncBody></SyncML> +<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.1//EN" "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"> +<SyncML xmlns="SYNCML:SYNCML1.1"> + <SyncHdr> + <VerDTD>1.1</VerDTD> + <VerProto>SyncML/1.1</VerProto> + <SessionID>5</SessionID> + <MsgID>3</MsgID> + <Target> + <LocURI>IMEI:123456789012345</LocURI> + </Target> + <Source> + <LocURI>PC Suite</LocURI> + </Source> + <Meta> + <MaxMsgSize xmlns="syncml:metinf">65535</MaxMsgSize> + </Meta> + </SyncHdr> + <SyncBody> + <Status> + <CmdID>1</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>0</CmdRef> + <Cmd>SyncHdr</Cmd> + <TargetRef>PC Suite</TargetRef> + <SourceRef>IMEI:123456789012345</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>10</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>5</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./Calendar</TargetRef> + <SourceRef>./C:Calendar</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>11</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>6</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>2</SourceRef> + <Data>201</Data> + </Status> + <Status> + <CmdID>12</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>7</CmdRef> + <Cmd>Sync</Cmd> + <TargetRef>./Contacts</TargetRef> + <SourceRef>./C:Contacts.cdb</SourceRef> + <Data>200</Data> + </Status> + <Status> + <CmdID>13</CmdID> + <MsgRef>2</MsgRef> + <CmdRef>8</CmdRef> + <Cmd>Add</Cmd> + <SourceRef>1</SourceRef> + <Data>201</Data> + </Status> + <Sync> + <CmdID>14</CmdID> + <Target> + <LocURI>./C:Calendar</LocURI> + </Target> + <Source> + <LocURI>Calendar</LocURI> + </Source> + <Meta> + <MaxObjSize xmlns="syncml:metinf">65535</MaxObjSize> + </Meta> + <NumberOfChanges>0</NumberOfChanges> + </Sync> + <Sync> + <CmdID>15</CmdID> + <Target> + <LocURI>./C:Contacts.cdb</LocURI> + </Target> + <Source> + <LocURI>Contacts</LocURI> + </Source> + <Meta> + <MaxObjSize xmlns="syncml:metinf">65535</MaxObjSize> + </Meta> + <NumberOfChanges>0</NumberOfChanges> + </Sync> + <Final/> + </SyncBody> +</SyncML> |