Home | Back
------------------------------------------------------------------------
r6212 | cdfrey | 2011-07-19 08:47:06 +0400 (Tue, 19 Jul 2011) | 15 lines

Fixed logic of unidirectional write optimization in osync_obj_engine_command()

Again!

This fixes 8027c2774c9ee25797734bd4594a8ec5a54c1217 and
Commit 2e54e5125aee9d0a4d8479c1276b7cc49db82677.

I think I finally got it this time. :-)  If there is only one writable
objtype, and we're processing it, then there is no reason to call
get_changes() on it, since no other objtype can accept them.

Any other configuration with multiple writable objtype sinks do demand
get_changes() calls everywhere.


------------------------------------------------------------------------
r6211 | cdfrey | 2011-07-16 04:27:57 +0400 (Sat, 16 Jul 2011) | 22 lines

Fixed access of freed memory in osync_obj_engine_command()

The original commit from Daniel Gollub, to add preliminary uni-directional
syncs to opensync can be found at commit
865414da0d3ffff2a7865fce9c82adcd7587c218.

Commit 2e54e5125aee9d0a4d8479c1276b7cc49db82677 fixed some missing code
in one of the functions added in Daniel's commit.

Now that _osync_obj_engine_num_write_sinks() is working, this exposed
a memory bug, where _osync_obj_engine_read_callback() was called outside
of its normal callback sequence, and therefore did not have its userdata
'sinkengine' ref'd properly.  The callback unref'd the memory too early,
causing potential crashes.

I'm still unclear why _osync_obj_engine_read_callback() is being called
here in the first place, but I'll leave that for another commit.

[See http://repo.or.cz/w/opensync/opensync-cdf.git for the git commit
references]


------------------------------------------------------------------------
r6210 | cdfrey | 2011-07-05 02:38:36 +0400 (Tue, 05 Jul 2011) | 13 lines

Add missing code to _osync_obj_engine_num_write_sinks()

Commit 865414da0d3ffff2a7865fce9c82adcd7587c218 was missing any code
to check for the sink's writable state.  I'm unclear on the logic,
but I believe this commit satisfies the requirement.

This commit follows the path of OSyncObjEngine -> OSyncSinkEngine ->
OSyncClientProxy -> OSyncMember -> OSyncObjTypeSink (using OSyncObjEngine's
objtype) -> the write flag.

Ouch! :-)


------------------------------------------------------------------------
r6209 | dgollub | 2011-07-02 14:26:19 +0400 (Sat, 02 Jul 2011) | 4 lines

Most distribution also build with -O2, so we should make
that our code compiles fine with this.
(test commit)

------------------------------------------------------------------------
r6170 | dgollub | 2011-01-15 17:48:46 +0300 (Sat, 15 Jan 2011) | 2 lines

fixed more compiler warnings of example plugins.

------------------------------------------------------------------------
r6169 | dgollub | 2011-01-15 17:47:37 +0300 (Sat, 15 Jan 2011) | 4 lines

fixed compiler warning (-Werror):
docs/examples/plugins/src/plugin.c:284:2: error: format ?\226?\128?\152%s?\226?\128?\153 expects
type ?\226?\128?\152char *?\226?\128?\153, but argument 3 has type ?\226?\128?\152struct OSyncPluginConfig *?\226?\128?\153

------------------------------------------------------------------------
r6168 | dgollub | 2011-01-15 17:46:47 +0300 (Sat, 15 Jan 2011) | 5 lines

Fix compiler warninung about
/docs/examples/plugins/src/external_demo.c:66:1: error: label ?\226?\128?\152error?\226?\128?\153
defined but not used


------------------------------------------------------------------------
r6164 | dgollub | 2010-12-18 20:08:16 +0300 (Sat, 18 Dec 2010) | 7 lines

Website search should work again


fix #1202

(test commit for post-commit hook)

------------------------------------------------------------------------
r6163 | dgollub | 2010-12-18 17:48:34 +0300 (Sat, 18 Dec 2010) | 4 lines

fix link.

(commit test)

------------------------------------------------------------------------
r6150 | ianmartin | 2010-10-21 17:55:57 +0400 (Thu, 21 Oct 2010) | 5 lines

Check if system specfic macros are defined rather than their value

Fixes #1263
Thanks to Eckhart W?\195?\182rner <ewoerner@kde.org> for patch

------------------------------------------------------------------------
r6094 | cdfrey | 2010-08-16 22:45:08 +0400 (Mon, 16 Aug 2010) | 6 lines

Enhanced osync_time_timestamp() to handle ISO timezone offsets as well

If an ISO 8601 timezone offset exists in the timestamp passed to
osync_time_timestamp(), then it will attempt to convert it into
a UTC vtime timestamp in the form of YYYYMMDDTHHMMSSZ, which is
the Opensync time format.
------------------------------------------------------------------------
r6093 | cdfrey | 2010-08-16 22:44:57 +0400 (Mon, 16 Aug 2010) | 1 line

Added missing time_utc_offset test to 'make test' run
------------------------------------------------------------------------
r6092 | cdfrey | 2010-08-16 22:44:44 +0400 (Mon, 16 Aug 2010) | 1 line

Added osync_time_parse_iso_timezone_diff()
------------------------------------------------------------------------
r6091 | cdfrey | 2010-08-14 04:24:19 +0400 (Sat, 14 Aug 2010) | 1 line

Oops... opensync.sym is sorted, fixed so test will pass
------------------------------------------------------------------------
r6090 | cdfrey | 2010-08-14 04:12:27 +0400 (Sat, 14 Aug 2010) | 5 lines

Do not strip out the dashes related to timezone offsets

With a string such as "2010-05-01T03:15:00.000-03:00", the previous
version of the function would remove the dash from the "-03:00"
timezone offset.  This is not correct.
------------------------------------------------------------------------
r6078 | cdfrey | 2010-08-14 02:48:01 +0400 (Sat, 14 Aug 2010) | 1 line

API: added osync_plugin_get_default_configdir() to access OPENSYNC_CONFIGDIR
------------------------------------------------------------------------
r6077 | cdfrey | 2010-08-14 02:47:52 +0400 (Sat, 14 Aug 2010) | 5 lines

Allow time functions to accept YYYY-MM-DDTHH:MM:SS formats

Some formats, such as google calendar, hold timestamps in a format
that includes dashes and colons.  It makes sense to accept both in
the library time routines.
------------------------------------------------------------------------
r6076 | cdfrey | 2010-08-14 02:47:44 +0400 (Sat, 14 Aug 2010) | 1 line

time: put UTC detection in one function only
------------------------------------------------------------------------
r6074 | cdfrey | 2010-07-10 06:03:28 +0400 (Sat, 10 Jul 2010) | 1 line

Fixed memory leak in osync_member_load()
------------------------------------------------------------------------
r6051 | cdfrey | 2010-07-05 22:51:38 +0400 (Mon, 05 Jul 2010) | 26 lines

Removed all unnecessary long longs from IDs, and gave IDs typedef names

The new ID types are:

        typedef int osync_memberid;
        typedef int osync_mappingid;
        typedef int osync_groupid;
        typedef long long int osync_archiveid;
        typedef long long int osync_messageid;

osync_archiveid is 64 bits because the ID is the row ID of the underlying
database.  This must match the database used.

Note that there is a bug in the implementation where the above 64 bit
IDs are crammed into a 32 bit pointer on 32 bit systems.  The
implementation should be fixed, not the size of the osync_archiveid.
Look for FIXME's in the code.

osync_messageid is 64 bits because 6 bytes are used for the time in
seconds and microseconds, and the lower 2 bytes are a random number,
to create a unique IPC message ID.

The other 3 IDs usually start at 1 or 0 and increment from there,
and int should be completely sufficient for them.


------------------------------------------------------------------------
r6049 | cdfrey | 2010-06-29 06:17:12 +0400 (Tue, 29 Jun 2010) | 3 lines

Fixed memory leak in osync_capabilities_unref()


------------------------------------------------------------------------
r6048 | cdfrey | 2010-06-29 06:13:17 +0400 (Tue, 29 Jun 2010) | 3 lines

Applied Daniel Gollub's patch to memory leak in osync_member_get_config_or_default


------------------------------------------------------------------------
r6045 | dgollub | 2010-04-18 12:49:40 +0400 (Sun, 18 Apr 2010) | 6 lines

Make serialization of username optional, depending on support flags.
Fixes issues with Barry plugin.

Patch by Nicolas


------------------------------------------------------------------------
r6035 | prahal | 2010-02-11 01:07:08 +0300 (Thu, 11 Feb 2010) | 5 lines

Adapt the number of formats and converters as I added any new ones

Those added where in testcase for see #1207.


------------------------------------------------------------------------
r6034 | prahal | 2010-02-11 00:53:13 +0300 (Thu, 11 Feb 2010) | 9 lines

Add testcase for #1207

Ie if a change is shared (members have "same" entries) , the conversion in
prepare write will apply more than once to this change.
As the conversion path is cached, conversion will happens with a forced conversion
path on data already converted to another format.
Which can segfault and is anyway of no use and harmfull( change is not meant to be written).


------------------------------------------------------------------------
r6033 | markellis | 2010-02-08 00:41:32 +0300 (Mon, 08 Feb 2010) | 1 line

correct func entry trace after possible failing statement
------------------------------------------------------------------------
r6027 | dgollub | 2010-01-31 20:06:57 +0300 (Sun, 31 Jan 2010) | 9 lines

Don't call _osync_obj_engine_clone_and_demerge_change() in
_osync_obj_engine_mapping_find() if the merge is disabled by the group
configuration. Otherwise this would cause:

"Couldn't handle the capabilities in format"

Patch by Nicolas, fixes #1206


------------------------------------------------------------------------
r6021 | dgollub | 2010-01-23 20:33:22 +0300 (Sat, 23 Jan 2010) | 10 lines

Avoid string-pointer NULL dereference in TRACE_ENTRY calls in
opensync_client_proxy.c

This might be often the case, since main-sinks are identified by objtype
= NULL. This got spotted by scriptor. Extended patch, by using
__NULLSTR() macro a fixed all other TRACE_ENTRY places where a string
got used.

fixes #1204

------------------------------------------------------------------------
r6018 | dgollub | 2010-01-22 18:45:55 +0300 (Fri, 22 Jan 2010) | 3 lines

Added more trace hints to hunt down more easily Changes/Entries with
wrong format or malformed OSyncData object. For debugging purposes only.

------------------------------------------------------------------------
r6017 | dgollub | 2010-01-22 18:22:29 +0300 (Fri, 22 Jan 2010) | 3 lines

Give summary of conversion results in trace files. This is for debugging
purposes only.

------------------------------------------------------------------------
r6005 | markellis | 2010-01-13 15:08:22 +0300 (Wed, 13 Jan 2010) | 1 line

glib has deprecated individual includes, replaced with glib.h and check for GRegex by version
------------------------------------------------------------------------
r6002 | dgollub | 2010-01-11 18:28:13 +0300 (Mon, 11 Jan 2010) | 13 lines

Make multisync_conflict_hybrid_choose more reliable by switching to a
new conflict handler. Instead of taking the "first" modified entry we
choose the modified entry of member 2.

For this a new conflict resolution function got introduced in the
testsuite. The memberid get passed via userdata pointer.

The order of the mapping_engine list seems to be not sorted by memberid.
TODO: How is this list of changes sorted?

fixes #1124


------------------------------------------------------------------------
r6001 | dgollub | 2010-01-10 22:11:36 +0300 (Sun, 10 Jan 2010) | 6 lines

Move all doxygen anotation from C-files to their header files.
This is now complete for the opensync/ directory.

fixes #898


------------------------------------------------------------------------
r6000 | dgollub | 2010-01-10 22:02:37 +0300 (Sun, 10 Jan 2010) | 4 lines

Move doxygen anotation to header file

refs #898

------------------------------------------------------------------------
r5999 | dgollub | 2010-01-10 21:56:22 +0300 (Sun, 10 Jan 2010) | 7 lines

Added some simple plugin configuration with resources configuration.
Even that resources configuration is optional. Most plugin starts might
want to start with hardcoded resources configuration.

fixes #922


------------------------------------------------------------------------
r5998 | dgollub | 2010-01-10 21:50:28 +0300 (Sun, 10 Jan 2010) | 6 lines

Drop fail() calls which require libcheck linking.
Drop libcheck link. This allows sane Debian packaging.

fixes #833


------------------------------------------------------------------------
r5997 | dgollub | 2010-01-10 21:38:05 +0300 (Sun, 10 Jan 2010) | 5 lines

Avoid assert() if no mapping entry got found.
This patch is orignally from scriptor, slightly adapted by dgollub.

fixes #1093

------------------------------------------------------------------------
r5993 | dgollub | 2010-01-10 21:03:23 +0300 (Sun, 10 Jan 2010) | 7 lines

Changed order of main_sink connect and sink connect calls.
Adapted testsuite which verified correct order of plugin sink function
calls. Testsuite patch by paule

fixes #1198


------------------------------------------------------------------------
r5992 | dgollub | 2010-01-10 20:34:33 +0300 (Sun, 10 Jan 2010) | 6 lines

Introduce testcase to verify correct slow-sync once the hashtable gets
deleted.

fixes #960


------------------------------------------------------------------------
r5991 | dgollub | 2010-01-10 20:34:06 +0300 (Sun, 10 Jan 2010) | 11 lines

Reset slow-sync set to allow multiple syncs (multi-sync) with one
initialized OSyncEngine. Slow-sync reset was always unclean and only got
reseted after the next connect() call. Since slow-syncs now can be
triggered even before a connect (e.g. hashtable deletion) things needed
to get cleaned up. Since sync-done() function is the very last plugin
call in a multi-sync the slow-sync state get rested there for
OSyncClientProxy and OSyncClient.

refs #960


------------------------------------------------------------------------
r5990 | dgollub | 2010-01-10 20:29:30 +0300 (Sun, 10 Jan 2010) | 5 lines

remove debugging statement/printf

refs #960


------------------------------------------------------------------------
r5989 | dgollub | 2010-01-10 20:23:59 +0300 (Sun, 10 Jan 2010) | 6 lines

Fix build of test/support.o
this got broken with previous commit when introducing a new parameter to
osync_hashtable_new

refs #960

------------------------------------------------------------------------
r5988 | dgollub | 2010-01-10 20:07:53 +0300 (Sun, 10 Jan 2010) | 5 lines

Set slow-sync for ObjTypeSink if the hashtable got deleted.


refs #960

------------------------------------------------------------------------
r5987 | dgollub | 2010-01-10 20:06:11 +0300 (Sun, 10 Jan 2010) | 6 lines

Add a parameter in osync_hashtable_new to allow to report that the
hashtable got newly created. This helps to identify that the hashtable
might got deleted. This is useful to report a slowsync in this case

see #960

------------------------------------------------------------------------
r5986 | dgollub | 2010-01-10 19:58:47 +0300 (Sun, 10 Jan 2010) | 7 lines

Marshal/Denmarshal the slow-sync attribute of a ObjtypeSink.
This is required to trigger a slow-sync in the initailze state. This
coudl happen in case the hashtable got deleted.

see #960


------------------------------------------------------------------------
r5984 | dgollub | 2010-01-10 18:22:03 +0300 (Sun, 10 Jan 2010) | 5 lines

Introduced example plugin with static capabilities.

fixes #1048


------------------------------------------------------------------------
r5982 | markellis | 2010-01-10 18:09:19 +0300 (Sun, 10 Jan 2010) | 1 line

wrapper modifications due to API changes, sufficient to allow a clean import into python
------------------------------------------------------------------------
r5972 | dgollub | 2010-01-05 16:31:28 +0300 (Tue, 05 Jan 2010) | 7 lines

Export osync_queue_cross_link to make this available to osplugin process
for external plugins. This fixes evo2-sync plugin and other
OSYNC_START_TYPE_PROCESS plugins.

fixes #1190


------------------------------------------------------------------------
r5971 | dgollub | 2010-01-05 16:29:49 +0300 (Tue, 05 Jan 2010) | 4 lines

Added osync_capability_add_parameter function to the symbols fail to let
the symbols API test pass. Got broken due to previous commit.


------------------------------------------------------------------------
r5970 | dgollub | 2010-01-05 00:10:37 +0300 (Tue, 05 Jan 2010) | 6 lines

Introduced osync_capability_add_parameter interface to handle a list of
parameters.

fixes #1182


------------------------------------------------------------------------
r5969 | dgollub | 2010-01-04 23:58:59 +0300 (Mon, 04 Jan 2010) | 2 lines

Fix gcc 4.4.1 compiler warning of uninitialized variable.

------------------------------------------------------------------------
r5968 | dgollub | 2010-01-04 23:58:11 +0300 (Mon, 04 Jan 2010) | 3 lines

Introduce OSYNC_DEPRECATED to declare function as deprecated.
Macros got copied from libsyncml.

------------------------------------------------------------------------
r5966 | dgollub | 2010-01-04 23:15:22 +0300 (Mon, 04 Jan 2010) | 8 lines

Fix issue in osync_xmlfield_new_xmlfield() when the first child pointer
get always overwritten. This requires that the previous pointer (in this
case the last child in the siblings-list) get retrieved via a new
function: osync_xmlfield_get_last_child()

see #1183


------------------------------------------------------------------------
r5964 | bricks | 2009-11-30 22:33:01 +0300 (Mon, 30 Nov 2009) | 2 lines

fixed some compiler warnings about: "format not a string literal and no format arguments"

------------------------------------------------------------------------
r5963 | dgollub | 2009-11-16 08:46:20 +0300 (Mon, 16 Nov 2009) | 2 lines

Revert redudant function declartion - introduced by r5962

------------------------------------------------------------------------
r5962 | dgollub | 2009-11-13 19:16:10 +0300 (Fri, 13 Nov 2009) | 5 lines

Updated tbl_changelog columns names to make clear which IDs are used.
This also fixes the issue that the information which member reported the
entry, which gets ignored, had which changetype.


------------------------------------------------------------------------
r5956 | cdfrey | 2009-11-11 02:20:20 +0300 (Wed, 11 Nov 2009) | 3 lines

Fixed all format errors reported by new GCC_FORMAT_CHECK


------------------------------------------------------------------------
r5955 | cdfrey | 2009-11-11 02:18:28 +0300 (Wed, 11 Nov 2009) | 3 lines

Added GCC printf format string / arg checking to printf-like functions


------------------------------------------------------------------------
r5950 | dgollub | 2009-11-08 19:11:26 +0300 (Sun, 08 Nov 2009) | 5 lines

Marshal/demarhasl the objtype sink also on the plugin initialize phase
to get information if plugins provide a get_changes or read function,
which are optional and have impact on conflict-handling (e.g. read() and
ignore resolution-hanlder) if they aren't available.

------------------------------------------------------------------------
r5942 | dgollub | 2009-11-05 23:12:29 +0300 (Thu, 05 Nov 2009) | 7 lines

Reenable pending limit. This got temporarly disabled by r5858 to address
issue described in #1161

Finally we can commit/write more then 10 changes with the SyncML plugin,
without loosing pending limit capability!


------------------------------------------------------------------------
r5939 | dgollub | 2009-11-05 22:10:05 +0300 (Thu, 05 Nov 2009) | 4 lines

Fix osync_trace() varg list which was missing the error parameter.
Added input_data and input_size of converter trace instrumentation for
easier debugging.

------------------------------------------------------------------------
r5938 | dgollub | 2009-11-05 22:09:09 +0300 (Thu, 05 Nov 2009) | 3 lines

ix jumps based on uninitialized values - reported by valgrind.
Caused crashes if one or more members didn't had any capabilities.

------------------------------------------------------------------------
r5937 | dgollub | 2009-11-05 22:00:41 +0300 (Thu, 05 Nov 2009) | 3 lines

Instrument start of conversion function with trace entry/exit calls.
This helps debugging with trace files when a conversion plugin fails.

------------------------------------------------------------------------
r5936 | dgollub | 2009-11-05 21:56:39 +0300 (Thu, 05 Nov 2009) | 4 lines

By default the format-plugin should fail on any conversion, otherwise
this cause unexpected conversion path once the example format plugin got
installed in the system-environment

------------------------------------------------------------------------
r5934 | dgollub | 2009-11-05 21:41:39 +0300 (Thu, 05 Nov 2009) | 4 lines

Fail if conversion results in a converted-change with size 0.
This should report broekn format plugins.


------------------------------------------------------------------------
r5933 | dgollub | 2009-11-05 21:40:46 +0300 (Thu, 05 Nov 2009) | 6 lines

Sanity check for demerger. Check if the change to demerge has a
reasonable size ... size > 0

This avoids that a format-plugin which isn't expecting an empty change
is crashing. Instead the engine fails smoothly with an OSyncError

------------------------------------------------------------------------
r5930 | dgollub | 2009-11-05 21:13:34 +0300 (Thu, 05 Nov 2009) | 2 lines

Start sub-error-message in a new line

------------------------------------------------------------------------
r5929 | dgollub | 2009-11-05 19:31:39 +0300 (Thu, 05 Nov 2009) | 9 lines

Introduced context-unittest

Currently only the osync_context_report_uid_update() function gets
tested.

Fixes #1161



------------------------------------------------------------------------
r5928 | dgollub | 2009-11-05 19:30:06 +0300 (Thu, 05 Nov 2009) | 7 lines

Implement the required mapping-table update calls for a UID-update
during the sync-done phase.

osync_context_report_uid_update() is no longer NOP.

see #1161

------------------------------------------------------------------------
r5927 | dgollub | 2009-11-05 19:28:53 +0300 (Thu, 05 Nov 2009) | 5 lines

Update hashtable if a plugin sends a osync_context_report_uid_update()
event.

see #1161

------------------------------------------------------------------------
r5926 | dgollub | 2009-11-05 19:27:29 +0300 (Thu, 05 Nov 2009) | 5 lines

Introduce archive function to update the UID in the mapping-table, which
is inside the archive-database.

see #1161

------------------------------------------------------------------------
r5925 | dgollub | 2009-11-05 19:25:05 +0300 (Thu, 05 Nov 2009) | 6 lines

Introduce internal hashtable function to update the UID.
This got introduced for osync_context_report_uid_update()

see #1161


------------------------------------------------------------------------
r5923 | dgollub | 2009-11-04 19:07:07 +0300 (Wed, 04 Nov 2009) | 11 lines

Introduce osync_context_report_uid_update() to report mapping changes
for async protocolos (e.g. syncml, ...). This context function is
useable inside the sync_done() phase.

The interface it self is currently NOP. Mapping table update still needs
to be implemented.


See #1161


------------------------------------------------------------------------
r5920 | dgollub | 2009-11-03 21:20:53 +0300 (Tue, 03 Nov 2009) | 11 lines

Fix parsing and assembling of ObjFormatSink XML configuration by
replacing prepend with append. Not very likely that parsing the
configuration is getting to complex ...

Added testcase plugin_config_save_load_save
Adapted sanity checks of various testcases to deal with the new order of
assembling of the ObjFormatSink XML fields.

Fixes #969


------------------------------------------------------------------------
r5919 | dgollub | 2009-11-03 20:01:39 +0300 (Tue, 03 Nov 2009) | 6 lines

Check if conflict handlers use_latest and ignore are supported for the
current mapping-engines in advance.

Fixes #1185


------------------------------------------------------------------------
r5916 | dgollub | 2009-11-02 16:52:11 +0300 (Mon, 02 Nov 2009) | 2 lines

Validate External Plugin Configuration XML files against OSYNC_EXTERNAL_PLUGIN_CONFIG_SCHEMA

------------------------------------------------------------------------
r5915 | dgollub | 2009-11-02 16:02:51 +0300 (Mon, 02 Nov 2009) | 10 lines

Created XML Schema (XSD) for ExternalPlugin XML configuraiton file.
Based on ./docs/examples/plugins/src/external_plugin.xml and it's C
parsing implementation by Graham.

Hint for everyone how needs to write XSD from scratch on an already
exisitng XML file. Use this commandline:

xmllint --schema external_plugin_config.xsd external_plugin.xml


------------------------------------------------------------------------
r5914 | dgollub | 2009-11-02 15:49:22 +0300 (Mon, 02 Nov 2009) | 15 lines

Introduced internal interfaces:
- osync_plugin_{set,get}_external_command

This functions get and set the default plugin external command.
The default external_command value is set inside the XML external plugin
configuration file. Once this configuration file got parsed (during
plugin_env_load phase) osync_plugin_get_external_command will return the
default external_command.

If none external_command is set in the indiviual
plugin-member-configuration (aka. OSyncPuginConfig) the external_command
of OSyncPlugin gets used (osync_plugin_get_external_command) to spawn
the external process.


------------------------------------------------------------------------
r5913 | dgollub | 2009-11-02 15:27:58 +0300 (Mon, 02 Nov 2009) | 4 lines

Drop external-demo configuration from the build-env. The default config
got dropped in a previous commit. This fixes the build of the example
plugins.

------------------------------------------------------------------------
r5912 | dgollub | 2009-11-02 15:26:41 +0300 (Mon, 02 Nov 2009) | 5 lines

Renamed the external-demo plugin to external-plugin.
plugin developers don't need to know that there are other possibilities
beside XML to register such a plugin. The XML way is the prefered way to
register external-plugins.

------------------------------------------------------------------------
r5911 | dgollub | 2009-11-02 15:24:32 +0300 (Mon, 02 Nov 2009) | 6 lines

Drop plugin-stub which is obsolete since we have external-plugin xml
configuration which register external plugins in the PluginEnv.

Also drop stub configuration file, since we try to support plugins
without any configuration: OSyncPluginConfigurationType: None

------------------------------------------------------------------------
r5910 | dgollub | 2009-11-02 15:19:13 +0300 (Mon, 02 Nov 2009) | 5 lines

Changed INSTALL parameter from TARGETS to FILES, since external plugin
configuration files are not in the build directory, neither they're
targets.


------------------------------------------------------------------------
r5909 | dgollub | 2009-11-02 15:15:46 +0300 (Mon, 02 Nov 2009) | 3 lines

Introduced OPENSYNC_EXTERNAL_PLUGIN_INSTALL CMake Macro to install
external (XML) plugin configuration

------------------------------------------------------------------------
r5908 | dgollub | 2009-11-02 15:03:43 +0300 (Mon, 02 Nov 2009) | 7 lines

Fixed compiler warnings/errors, with gcc optimzation.
Fixed wrong refrence of OSyncError - it got dereferecd twice.
Changed some signed chars and unsigned chars for xmlChar API
Fixed potential memory leak of returned pointer of xmlPropGet, which
needs to get freed, not only in error condition, with the
xmlFree/osync_xml_free function.

------------------------------------------------------------------------
r5907 | dgollub | 2009-11-02 15:01:07 +0300 (Mon, 02 Nov 2009) | 3 lines

Fixed build of swig-wrapper, due to renaming enum OSyncConfigratuionType
to OSyncPluginConfigurationType

------------------------------------------------------------------------
r5906 | Graham Cobb | 2009-11-02 02:18:35 +0300 (Mon, 02 Nov 2009) | 1 line

External plugin configuration file support
------------------------------------------------------------------------
r5903 | dgollub | 2009-11-01 21:22:17 +0300 (Sun, 01 Nov 2009) | 5 lines

Fix memory allocator erros if format example plugin got installed.
Allocating size of 0 by osync_try_malloc0 causes:
ERROR: No memory left (tried to allocate 0 bytes)


------------------------------------------------------------------------
r5900 | bricks | 2009-11-01 19:26:59 +0300 (Sun, 01 Nov 2009) | 1 line

fixed some compiler warnings and indentation
------------------------------------------------------------------------
r5899 | bricks | 2009-11-01 19:24:51 +0300 (Sun, 01 Nov 2009) | 1 line

renamed OSyncConfigurationType to OSyncPluginConfigurationType
------------------------------------------------------------------------
r5898 | dgollub | 2009-11-01 18:42:50 +0300 (Sun, 01 Nov 2009) | 7 lines

Retrieve the external_command directly in
_osync_engine_initialize_member() since this function honors the
OSyncConfigurationType or if the plugin already has a configuration.

Another reason is that this avoids too many calls of
osync_member_get_config_or_default()

------------------------------------------------------------------------
r5897 | dgollub | 2009-11-01 18:01:04 +0300 (Sun, 01 Nov 2009) | 6 lines

Fix various test-suite regression by commit r5896 which get caused by a
segfault.

Due to a missing initization by NULL of an OSyncError *struct


------------------------------------------------------------------------
r5896 | henrik | 2009-11-01 17:32:43 +0300 (Sun, 01 Nov 2009) | 32 lines

Plugins of type OSYNC_START_TYPE_EXTERNAL needs to be able to spawn an external command to run the actual plugin code.

This patch allows a member to set an ExternalCommand in the plugin configuration file.
This command will be executed by the proxy to start up the external process.

The external_command should be a string in printf format, with one %s.
Before the command is executed, a variant of printf will be called
to replace the %s with the path to the plugin pipe.

Example:
<ExternalPlugin>
  <ExternalCommand>thunderbird -mozilla-sync %s</ExternalCommand>
</ExternalPlugin>

Added to public API:
osync_plugin_config_get_externalplugin
osync_plugin_config_set_externalplugin
osync_plugin_externalplugin_new
osync_plugin_externalplugin_unref
osync_plugin_externalplugin_ref
osync_plugin_externalplugin_get_external_command
osync_plugin_externalplugin_set_external_command
(as well as the changed format for the plugin configuration file)

Changed internal interface:
From
  osync_bool osync_client_proxy_spawn(OSyncClientProxy *proxy, OSyncStartType type, const char *path, OSyncError **error)
To
  osync_bool osync_client_proxy_spawn(OSyncClientProxy *proxy, OSyncStartType type, const char *path, const char* external_command, OSyncError **error)



------------------------------------------------------------------------
r5895 | dgollub | 2009-10-31 00:30:07 +0300 (Sat, 31 Oct 2009) | 45 lines

Added reference implementation of an EXTERNAL plugin, which can be a
standalone userspace application.

Currently a stub plugin-module is required to register the plugin to
OpenSync's plugin environment and configure the start type to
OSYNC_START_TYPE_EXTERNAL. This will be obsolate soon and replaced by
simple config files instead, so no programming of a stub plugin is
required ..


Proof of Concept:
~~~~~~~~~~~~~~~~~

$ ./example_external_demo ~/.config/opensync/0.40/group6/1/pluginpipe &
[1] 10841
$
[EXTERNAL-DEMO]: OSyncPlugin:0x40159d OSyncClient:0x603040
[EXTERNAL-DEMO]: Starting (blocking) OSyncClient ...
$
$ osynctool --sync external
Synchronizing group "external"
[EXTERNAL-DEMO]: initialize
data sink of member 2 of type file-sync just connected
Main sink of member 2 of type file-sync just connected
data sink of member 1 of type external-demo just connected
Main sink of member 1 of type external-demo just connected
All clients connected or error
[EXTERNAL-DEMO]: get_changes slow_sync: no
data sink of member 2 of type file-sync just sent all changes
data sink of member 1 of type external-demo just sent all changes
Main sink of member 1 of type external-demo just sent all changes
Main sink of member 2 of type file-sync just sent all changes
[...]
The sync was successful
data sink of member 1 of type external-demo just disconnected
Main sink of member 1 of type external-demo just disconnected
data sink of member 2 of type file-sync just disconnected
Main sink of member 2 of type file-sync just disconnected
All clients have disconnected
[EXTERNAL-DEMO]: OSyncClient completed.
[1]+  Done                    ./example_external_demo ~/.config/opensync/0.40/group6/1/pluginpipe
$



------------------------------------------------------------------------
r5894 | dgollub | 2009-10-31 00:09:28 +0300 (Sat, 31 Oct 2009) | 17 lines

API changes for osync_client_run_and_block()

Added parameter: OSyncError** which gets set on any error. Additionally
the return type changed to osync_bool. The return value is FALSE on any
error, on success TRUE.

New OSyncClient interfaces:
* osync_client_{get,set}_plugin
* osync_client_{get,set}_pipe_path

This changes allow to assemble plugins which run as an external process:
OSYNC_START_TYPE_EXTERNAL

Such plugins assemble OSyncPlugin* and OSyncClient* and need to set the
pipe path to the "pluginpipe" in the member direcotry.


------------------------------------------------------------------------
r5890 | paule | 2009-10-23 01:34:00 +0400 (Fri, 23 Oct 2009) | 1 line

API documentation: minor fix to OSyncStartType documentation
------------------------------------------------------------------------
r5889 | paule | 2009-10-23 01:28:15 +0400 (Fri, 23 Oct 2009) | 1 line

API documentation: document OSyncStartType enum. Fixes bug #921.
------------------------------------------------------------------------
r5888 | cdfrey | 2009-10-23 00:42:43 +0400 (Fri, 23 Oct 2009) | 3 lines

Fixed "out of memory" bug where xmlformat->child_count == 0


------------------------------------------------------------------------
r5887 | cdfrey | 2009-10-23 00:22:11 +0400 (Fri, 23 Oct 2009) | 3 lines

Added explanation message of why we're running out of memory


------------------------------------------------------------------------
r5875 | henrik | 2009-10-21 01:19:45 +0400 (Wed, 21 Oct 2009) | 1 line

Make osync_bool osync_group_env_setup_config_dir work even if user has neither the new XDG_CONFIG_HOME/opensync/0.40 directory nor the old /home/Henrik//.opensync.  Fixes #1172
------------------------------------------------------------------------
r5874 | henrik | 2009-10-21 00:31:05 +0400 (Wed, 21 Oct 2009) | 1 line

Correct cloning of mapping change in _osync_obj_engine_mapping_find. Fixes ticket 1170
------------------------------------------------------------------------
r5872 | cdfrey | 2009-10-17 01:06:15 +0400 (Sat, 17 Oct 2009) | 10 lines

Fixed bug where member_id is not updated when new member is added

This patch sets the member_id in osync_group_add_member() in the same
place that the configdir is set, since that's when
osync_group_create_member_id() is called.

With this fix, it is possible to add a member to a group, and then
immediately list it, without reloading from disk.


------------------------------------------------------------------------
r5870 | henrik | 2009-10-13 23:35:20 +0400 (Tue, 13 Oct 2009) | 1 line

demerge_xmlformat in xmlformat_merge.c requires capabilities to be sorted. So now we sort them before saving. Fixes bug 1168
------------------------------------------------------------------------
r5869 | dgollub | 2009-10-13 22:51:22 +0400 (Tue, 13 Oct 2009) | 16 lines

Fix invalid comparsion results.
Mixing up the OSyncChange pointers caused that the logical same entries
got compared together. This was not obvious due to the cloning.

This bug was introduced by r5747

Overwriting pointer change1 too early with clone_change1 caused that the clone_demerge function
processed the logical change2, instead of change1. The twist of
demerging with capabililtiies of member 1, the change of member 2 and
vice-versa, is intended.


Report and most of the debugging was done by henrik



------------------------------------------------------------------------
r5863 | cdfrey | 2009-09-30 03:30:16 +0400 (Wed, 30 Sep 2009) | 3 lines

Forgot to add my name to the comments


------------------------------------------------------------------------
r5861 | cdfrey | 2009-09-30 03:25:31 +0400 (Wed, 30 Sep 2009) | 3 lines

pkgconfig: renamed libopensync.pc.in to libopensync1.pc.in


------------------------------------------------------------------------
r5860 | cdfrey | 2009-09-30 03:20:47 +0400 (Wed, 30 Sep 2009) | 18 lines

opensync_group_env.c: added 0.22 -> 0.40 copy upgrade behaviour

The first time that opensync runs and creates its default directory
(which will not exist on any pure 0.22 system because the new default
directory has a version number in it) opensync will search for
old 0.22 group configs in the ~/.opensync directory, and if found,
copy them all to the new $XDG_CONFIG_HOME (~/.config/opensync/0.40)
directory.

After this copy is complete, it is safe to run OSyncUpdater on
the new 0.40 config directory.

Note: this patch contains two generic functions: osync_glob_copy()
and osync_copy_file() which perhaps should be moved into somewhere
genericly useful.  The OSyncUpdater code could possibly use these
functions too... they were based on OSyncUpdater code.


------------------------------------------------------------------------
r5859 | cdfrey | 2009-09-30 03:19:39 +0400 (Wed, 30 Sep 2009) | 6 lines

opensync_group_env.c: added XDG_CONFIG_HOME support

Opensync 0.40's config directory is now $XDG_CONFIG_HOME/opensync/0.40
and falling back to $HOME/.config/opensync/0.40


------------------------------------------------------------------------
r5858 | Graham Cobb | 2009-09-30 02:18:03 +0400 (Wed, 30 Sep 2009) | 1 line

Temporarily disable pending limit
------------------------------------------------------------------------
r5857 | bricks | 2009-09-28 13:39:10 +0400 (Mon, 28 Sep 2009) | 4 lines

create a xmlfield if value is an empty string ("")
added testcase for xmlfield_set_key_value
fixes #1155

------------------------------------------------------------------------
r5855 | cdfrey | 2009-09-27 09:49:22 +0400 (Sun, 27 Sep 2009) | 3 lines

opensync_group.c: fixed missing error checking of sscanf()


------------------------------------------------------------------------
r5854 | cdfrey | 2009-09-27 09:01:09 +0400 (Sun, 27 Sep 2009) | 6 lines

opensync_group_env.c: fixed printing of null pointers

osync_group_env_load_groups() used 'path' where it should have
used 'env->groupsdir' when printing status and error messages


------------------------------------------------------------------------
r5825 | dgollub | 2009-09-22 01:19:14 +0400 (Tue, 22 Sep 2009) | 2 lines

Increase version to 0.40 in advance for snapshot builds

------------------------------------------------------------------------
r5810 | cdfrey | 2009-09-19 20:19:02 +0400 (Sat, 19 Sep 2009) | 15 lines

Fixed osync_time_utcoffset2sec()'s mistaken reliance on sscanf()

Tightened up checking for input format validation, according to
the documented comments.

Added an OSyncError parameter, for the error case.

Added a test for osync_time_utcoffset2sec()

-This line, and those below, will be ignored--

M    opensync/format/opensync_time.h
M    opensync/format/opensync_time.c
M    tests/format-tests/check_time.c

------------------------------------------------------------------------
r5808 | cdfrey | 2009-09-19 02:22:53 +0400 (Sat, 19 Sep 2009) | 3 lines

Clarified error return values in time function documentation


------------------------------------------------------------------------
r5803 | bricks | 2009-09-18 11:49:51 +0400 (Fri, 18 Sep 2009) | 2 lines

Fixed the example format plugin for converter finalize api changes

------------------------------------------------------------------------
r5802 | dgollub | 2009-09-18 11:41:01 +0400 (Fri, 18 Sep 2009) | 3 lines

Don't unref the error in get_sync_info()
Spotted by Chris Frey

------------------------------------------------------------------------
r5798 | bricks | 2009-09-18 11:04:03 +0400 (Fri, 18 Sep 2009) | 2 lines

moved doxygen annotations to private header and renamed private functions to osync_time_xyz

------------------------------------------------------------------------
r5797 | bricks | 2009-09-18 10:56:30 +0400 (Fri, 18 Sep 2009) | 2 lines

fixed typos

------------------------------------------------------------------------
r5796 | bricks | 2009-09-18 10:53:23 +0400 (Fri, 18 Sep 2009) | 3 lines

Made osync time api less error prone
Added checks if error is set to avoid segfaults

------------------------------------------------------------------------
r5795 | dgollub | 2009-09-18 02:10:46 +0400 (Fri, 18 Sep 2009) | 3 lines

Add OSyncError** to OSyncConverterFinalize format-plugin function to
make this interface future proof. And also allow reporting errors.

------------------------------------------------------------------------
r5794 | paule | 2009-09-18 01:34:10 +0400 (Fri, 18 Sep 2009) | 1 line

API documentation: improve documentation of sink state API
------------------------------------------------------------------------
r5793 | dgollub | 2009-09-18 01:10:23 +0400 (Fri, 18 Sep 2009) | 6 lines

Changed OSyncMergerFinalizeFunc to fit the plugin function API pattern:

- osync_bool return value (at least a non-void return value)
- last arugment is OSyncError**


------------------------------------------------------------------------
r5792 | dgollub | 2009-09-18 01:09:03 +0400 (Fri, 18 Sep 2009) | 6 lines

Change OSyncCapsConverter API of the finalize plugin function:
- added OSyncError** as last parameter
- changed return value from void to osync_bool

To fit the plugin function pattern ...

------------------------------------------------------------------------
r5790 | dgollub | 2009-09-18 00:28:40 +0400 (Fri, 18 Sep 2009) | 5 lines

Introduce OSyncError** parameter to OSyncTime API, due to replacment of
g_error0 by osync_try_malloc0

Patch by bricks - testsuite porting by dgollub

------------------------------------------------------------------------
r5789 | dgollub | 2009-09-18 00:17:50 +0400 (Fri, 18 Sep 2009) | 3 lines

Get rid of g_malloc0() in osync_queue_setup_with_gmainloop() to avoid
assert() on OOM conditions

------------------------------------------------------------------------
r5786 | dgollub | 2009-09-17 22:29:33 +0400 (Thu, 17 Sep 2009) | 6 lines

Reference port of the example format plugin for the
OSyncFormatFinalizeFunc, OSyncFormatCompareFunc, OSyncFormatCreateFunc,
        OSyncFormatDestroyFunc, OSyncFormatPrintFunc API changes.

See commit r5785

------------------------------------------------------------------------
r5785 | dgollub | 2009-09-17 22:26:15 +0400 (Thu, 17 Sep 2009) | 22 lines

Changed Format Plugin API - following function are affected:

* OSyncFormatCompareFunc
* OSyncFormatCreateFunc
* OSyncFormatDestroyFunc
* OSyncFormatPrintFunc
* OSyncFormatFinalizeFunc

Changed API to fit the follwoing format plugin pattern:

Individual return type - but not (void)! To easier determine an error.

Second last argument: void *userdata
Last Argument: OSyncError **error


Porting instruction:

Add OSyncError** to the prototype of your format plugin functions.
Adapt the return value of your plugin function to osync_bool.


------------------------------------------------------------------------
r5783 | dgollub | 2009-09-17 21:02:06 +0400 (Thu, 17 Sep 2009) | 9 lines

Add OSyncError** struct to:
* osync_xmlformat_sort
* osync_xmlformat_assemble

To make those interface more future safe

refs #1087


------------------------------------------------------------------------
r5780 | dgollub | 2009-09-17 20:36:52 +0400 (Thu, 17 Sep 2009) | 6 lines

Make OSyncMarshal API more future proof and apply a common API pattern:

osync_bool osync_masrhal_XXXX(...., OSyncError**)

refs #1087, comment:11

------------------------------------------------------------------------
r5779 | dgollub | 2009-09-17 18:39:20 +0400 (Thu, 17 Sep 2009) | 4 lines

Add OSyncError** to parameter list of osync_rand_str

See #1087, comment:10

------------------------------------------------------------------------
r5778 | dgollub | 2009-09-17 04:22:25 +0400 (Thu, 17 Sep 2009) | 1 line

Port example plugins to format_env and plugin_env register API changes. See #1087
------------------------------------------------------------------------
r5772 | dgollub | 2009-09-17 04:15:23 +0400 (Thu, 17 Sep 2009) | 6 lines

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


------------------------------------------------------------------------
r5769 | dgollub | 2009-09-17 03:02:57 +0400 (Thu, 17 Sep 2009) | 9 lines

Add OSyncError** to parameter list for

* osync_xmlfield_add_key_value
* osync_xmlfield_set_key_value
* osync_xmlfield_sort

refs #1087


------------------------------------------------------------------------
r5768 | dgollub | 2009-09-17 02:31:11 +0400 (Thu, 17 Sep 2009) | 5 lines

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.


------------------------------------------------------------------------
r5767 | dgollub | 2009-09-17 02:25:54 +0400 (Thu, 17 Sep 2009) | 4 lines

Completed TODO-task by moving osync_marshal_{read,write}_data to
internal/private API.


------------------------------------------------------------------------
r5765 | dgollub | 2009-09-17 02:10:41 +0400 (Thu, 17 Sep 2009) | 6 lines

Break trunk API by dropping schemadir parameter from
osync_plugin_config_load_file()

refs #1013


------------------------------------------------------------------------
r5762 | dgollub | 2009-09-07 05:01:09 +0400 (Mon, 07 Sep 2009) | 6 lines

Convert the capabilities format to a capabilities format of a merger
which is able to demerge capabilties of the current objformat.

e.g.: evo2-caps to xmlformat the capsformat


------------------------------------------------------------------------
r5761 | dgollub | 2009-09-07 04:58:49 +0400 (Mon, 07 Sep 2009) | 7 lines

Don't unref the origianl capabilities object. This caused various issues
in the test-suite. TODO: check if this is not leaking the old
capabiltieis object.

Sort capabiliteis object after caps-format conversion


------------------------------------------------------------------------
r5760 | dgollub | 2009-09-07 04:57:32 +0400 (Mon, 07 Sep 2009) | 2 lines

Note for final API review

------------------------------------------------------------------------
r5759 | dgollub | 2009-09-07 04:57:11 +0400 (Mon, 07 Sep 2009) | 2 lines

Implementation of r5758

------------------------------------------------------------------------
r5758 | dgollub | 2009-09-07 04:56:48 +0400 (Mon, 07 Sep 2009) | 3 lines

Add interface osync_format_env_find_mergers_objformat() to get a list of
all mergers which are able to deal with a specified objformat

------------------------------------------------------------------------
r5757 | dgollub | 2009-09-07 04:54:23 +0400 (Mon, 07 Sep 2009) | 5 lines

Added interfaces for OSyncCapabilities API to sort the capabilities
object. This is handy after converting/assemling to a different
capsformat. Sorted capabilities is required by various mergers. e.g. the
xmlformat merger

------------------------------------------------------------------------
r5756 | dgollub | 2009-09-07 04:51:40 +0400 (Mon, 07 Sep 2009) | 2 lines

Fix typo in declaration

------------------------------------------------------------------------
r5752 | dgollub | 2009-09-07 04:27:45 +0400 (Mon, 07 Sep 2009) | 3 lines

If there is no marshaled data, due to missing marshal function, store
the orignal data (e.g. vcard-dump) in the archive

------------------------------------------------------------------------
r5749 | dgollub | 2009-09-05 16:21:58 +0400 (Sat, 05 Sep 2009) | 2 lines

Added OSyncCapsConverter API

------------------------------------------------------------------------
r5747 | dgollub | 2009-09-05 04:24:21 +0400 (Sat, 05 Sep 2009) | 10 lines

Make use of Capabilities (if available) to make mapping of changes more
successful.

With the help of capabilities a copy of the change get demerged of the
oponenten capabilities. This will results more often on a compare in a
SAME mapping - instead of a SIMILAR. This means less conflicts on a
(slow-)sync.

Enjoy! ;)

------------------------------------------------------------------------
r5745 | dgollub | 2009-09-05 02:58:28 +0400 (Sat, 05 Sep 2009) | 9 lines

Added new public interface: osync_format_env_find_merger

This functions allows to search for a merger which is registered in the
format env. The search is based on the tuple: objformat and capsformat

The objformat is a const char* string, so format plugins can register
merger for formats which aren't registered yet.


------------------------------------------------------------------------
r5743 | dgollub | 2009-09-05 01:39:00 +0400 (Sat, 05 Sep 2009) | 2 lines

Remove dirty debugging statements

------------------------------------------------------------------------
r5742 | dgollub | 2009-09-05 00:45:50 +0400 (Sat, 05 Sep 2009) | 4 lines

Introduce cmake option OPENSYNC_API_EXAMPLE, to enable API example
builds. By default this is turned off.


------------------------------------------------------------------------
r5741 | dgollub | 2009-09-05 00:17:46 +0400 (Sat, 05 Sep 2009) | 2 lines

Added new symbols - missing from previous commit

------------------------------------------------------------------------
r5740 | dgollub | 2009-09-05 00:06:31 +0400 (Sat, 05 Sep 2009) | 3 lines

- initial OSyncMerger implement of drafted API
- added support for Child-Capability fields in OSyncCapability API

------------------------------------------------------------------------
r5739 | dgollub | 2009-09-04 17:10:21 +0400 (Fri, 04 Sep 2009) | 2 lines

Fix wrong trace parameter list

------------------------------------------------------------------------
r5738 | dgollub | 2009-09-04 16:52:50 +0400 (Fri, 04 Sep 2009) | 2 lines

Port example format plugin. Got broken with r5671

------------------------------------------------------------------------
r5737 | dgollub | 2009-09-04 16:01:44 +0400 (Fri, 04 Sep 2009) | 2 lines

Ported list_all_formats example

------------------------------------------------------------------------
r5736 | dgollub | 2009-09-04 15:56:26 +0400 (Fri, 04 Sep 2009) | 3 lines

Fix potential memory leak - freeing the newly created OSyncList was
missing

------------------------------------------------------------------------
r5735 | dgollub | 2009-09-04 15:53:37 +0400 (Fri, 04 Sep 2009) | 2 lines

Fix list_all_groups example

------------------------------------------------------------------------
r5730 | dgollub | 2009-09-03 04:28:18 +0400 (Thu, 03 Sep 2009) | 4 lines

Allow reporting of discovered capabilities during the get_changes phase.
This is required for plugins/protocols which are only able to get
capabilities information during a sync.

------------------------------------------------------------------------
r5727 | dgollub | 2009-09-02 16:09:34 +0400 (Wed, 02 Sep 2009) | 5 lines

Make testcase member_get_config_or_default more robust and working even
without any opensync installation.

fixes #1144

------------------------------------------------------------------------
r5726 | dgollub | 2009-09-01 18:46:49 +0400 (Tue, 01 Sep 2009) | 5 lines

Fix assembling of capabilities.
Multiple recalls of osync_capabilities_assemble() appended the same
capabilities information over and over again.


------------------------------------------------------------------------
r5725 | dgollub | 2009-09-01 18:32:57 +0400 (Tue, 01 Sep 2009) | 2 lines

Don't assemble capability values if they're empty/default.

------------------------------------------------------------------------
r5720 | dgollub | 2009-09-01 15:40:46 +0400 (Tue, 01 Sep 2009) | 7 lines

Merged ticket #1084 branch

To speed up trunk development

refs #1084


------------------------------------------------------------------------
r5675 | marka | 2009-06-21 18:16:08 +0400 (Sun, 21 Jun 2009) | 1 line

Fix build errors in the Swig wrappers due to recent API changes
------------------------------------------------------------------------
r5674 | bricks | 2009-06-17 17:14:12 +0400 (Wed, 17 Jun 2009) | 3 lines

added OSyncError parameter to osync_member_add_objformat and osync_member_add_objformat_with_config
refs #1087

------------------------------------------------------------------------
r5673 | bricks | 2009-06-17 14:43:46 +0400 (Wed, 17 Jun 2009) | 3 lines

added an OSyncError parameter to osync_group_lock
refs #1087

------------------------------------------------------------------------
r5671 | bricks | 2009-06-17 14:23:24 +0400 (Wed, 17 Jun 2009) | 3 lines

Added an OSyncError parameter for osync_format_env_register_converter
refs #1087

------------------------------------------------------------------------
r5661 | dgollub | 2009-06-01 13:38:55 +0400 (Mon, 01 Jun 2009) | 2 lines

Add glib2 2.12 version requirmnet to the coding style file

------------------------------------------------------------------------
r5660 | dgollub | 2009-06-01 13:37:45 +0400 (Mon, 01 Jun 2009) | 5 lines

Set minimum required/supported glib2 version to 2.12
Refs discussion on opensync-devel
http://thread.gmane.org/gmane.comp.misc.opensync.devel/3901/focus=3902


------------------------------------------------------------------------
r5650 | dgollub | 2009-05-31 22:27:59 +0400 (Sun, 31 May 2009) | 7 lines

Fix build for older glib versions. g_strcmp0 got introduced within glib
2.16. But we try to support much older version of glib.

refs #1123



------------------------------------------------------------------------
r5649 | dgollub | 2009-05-28 18:48:03 +0400 (Thu, 28 May 2009) | 24 lines

Fix for mapping_engine_same_similar_conflict which was randomly failing.



Sometimes I see the mapping_engine_same_similar_conflict test fail on my
system. I tracked the issue down to the order in which the mock_sync
plugin reports changes in mock_report_dir. If entryA is reported before
entryB then the test passes. If entryB is reported first then the test
fails.

I have 2 patches. The first one modifies mock_sync to sort the changes
by file name before reporting them. It also adds a test which takes
advantage of that to reliably reproduce this issue.

The second patch tries to address the root cause of the issue. I'm not
completely familiar with the opensync internals so it may need some
work. It works for me and doesn't break any of the other tests.


Patch by marka

fixes #1123


------------------------------------------------------------------------
r5648 | dgollub | 2009-05-28 18:19:03 +0400 (Thu, 28 May 2009) | 17 lines

OSyncMappingEngine & OSyncMappingEntryEngine's don't get freed

When the engine is finalized, it doesn't look like the
OSyncMappingEngines or OSyncMappingEntryEngines are getting freed. I
checked by adding log messages to the *_unref() functions.

It looks like that an OSyncMappingEngines holds a reference on each
OSyncMappingEntryEngines and each OSyncMappingEntryEngines holds a
reference on the OSyncMappingEngines. A nice circle.

Original patch by marka
Sligthly adapted (coding style: // to /* */)

fixes #1122



------------------------------------------------------------------------
r5647 | dgollub | 2009-05-28 18:06:41 +0400 (Thu, 28 May 2009) | 7 lines

Fix failing engine_error_discover_error testcase.
Original patch by marka
Slightly adapted - added ticket referces and additional sanity check.

fixes #1121


------------------------------------------------------------------------
r5646 | bricks | 2009-05-28 12:47:30 +0400 (Thu, 28 May 2009) | 3 lines

Fix for memory leak in osync_mapping_engine_new
thanks to marka
#refs 1120
------------------------------------------------------------------------
r5641 | dgollub | 2009-05-09 22:49:48 +0400 (Sat, 09 May 2009) | 4 lines

Fix testcase member_configdir_deep_path, which got recently added.
Allow deep member configuration directories


------------------------------------------------------------------------
r5637 | dgollub | 2009-05-09 13:59:56 +0400 (Sat, 09 May 2009) | 2 lines

Changed contact mail address

------------------------------------------------------------------------
r5634 | ianmartin | 2009-04-29 16:15:50 +0400 (Wed, 29 Apr 2009) | 2 lines

Some simple tests for OSyncMember

------------------------------------------------------------------------
r5632 | bellmich | 2009-04-28 14:02:54 +0400 (Tue, 28 Apr 2009) | 2 lines

Preferred can only occur one time.

------------------------------------------------------------------------
r5624 | ianmartin | 2009-04-20 21:11:01 +0400 (Mon, 20 Apr 2009) | 7 lines

Test multisync_conflict_dual_delete added.  Isolates a
problem found whilst porting multisync_delayed_conflict_handler
test.

Test fails due to propogation of delete change type to a
member that also reported change type delted.

------------------------------------------------------------------------
r5623 | friedrich.beckmann | 2009-04-19 19:09:32 +0400 (Sun, 19 Apr 2009) | 1 line

windows port: Test result checking was not working on windows platform
------------------------------------------------------------------------
r5622 | friedrich.beckmann | 2009-04-19 17:47:28 +0400 (Sun, 19 Apr 2009) | 1 line

windows: logfiles are not split per thread
------------------------------------------------------------------------
r5621 | friedrich.beckmann | 2009-04-19 17:13:10 +0400 (Sun, 19 Apr 2009) | 1 line

Test result check was not working on windows platform
------------------------------------------------------------------------
r5620 | friedrich.beckmann | 2009-04-19 17:12:20 +0400 (Sun, 19 Apr 2009) | 1 line

Tests did not compile on windows platform
------------------------------------------------------------------------
r5619 | bricks | 2009-04-19 15:53:18 +0400 (Sun, 19 Apr 2009) | 1 line

moved doxygen annotation from c file to internal header
------------------------------------------------------------------------
r5615 | bellmich | 2009-04-17 12:02:28 +0400 (Fri, 17 Apr 2009) | 2 lines

patch from Johan Ladan to correct grammar errors

------------------------------------------------------------------------
r5605 | bricks | 2009-04-14 14:13:53 +0400 (Tue, 14 Apr 2009) | 2 lines

updated objtype sink function doxygen documentation

------------------------------------------------------------------------
r5604 | bricks | 2009-04-14 13:44:27 +0400 (Tue, 14 Apr 2009) | 2 lines

updated objtype sink committedall function documentation

------------------------------------------------------------------------
r5602 | bricks | 2009-04-14 13:32:35 +0400 (Tue, 14 Apr 2009) | 5 lines

dropped objtype sink write function declaration
changed objtype sink read function return value from osync_bool to void
added objtype sink doxygen annotations
fixes #864

------------------------------------------------------------------------
r5601 | bricks | 2009-04-14 13:30:00 +0400 (Tue, 14 Apr 2009) | 2 lines

Updated the documentation regarding objtype sink changes

------------------------------------------------------------------------
r5600 | bricks | 2009-04-14 13:04:36 +0400 (Tue, 14 Apr 2009) | 2 lines

make output clearer in trace

------------------------------------------------------------------------
r5586 | bricks | 2009-04-12 20:57:16 +0400 (Sun, 12 Apr 2009) | 2 lines

fixed bug while marshalling plugin config advanced options

------------------------------------------------------------------------
r5585 | bricks | 2009-04-12 16:14:09 +0400 (Sun, 12 Apr 2009) | 3 lines

return copy of plugin config advancedoption
refs #975

------------------------------------------------------------------------
r5584 | bricks | 2009-04-12 15:51:33 +0400 (Sun, 12 Apr 2009) | 3 lines

return a copy of plugin advancedoption paramater valenums
refs #975

------------------------------------------------------------------------
r5583 | bricks | 2009-04-12 15:39:42 +0400 (Sun, 12 Apr 2009) | 3 lines

return a copy of plugin advancedoption valenums
refs #975

------------------------------------------------------------------------
r5582 | bricks | 2009-04-12 15:22:27 +0400 (Sun, 12 Apr 2009) | 3 lines

return a copy of advancedoption parameters
refs #975

------------------------------------------------------------------------
r5581 | bricks | 2009-04-12 15:11:09 +0400 (Sun, 12 Apr 2009) | 4 lines

return a copy of objformats instead of the original list
spotted by Chris Frey
refs #975

------------------------------------------------------------------------
r5571 | cdfrey | 2009-04-10 01:56:49 +0400 (Fri, 10 Apr 2009) | 3 lines

Fixed inverted error check in sample plugin code when doing a hashtable slowsync


------------------------------------------------------------------------
r5566 | cdfrey | 2009-04-09 00:22:24 +0400 (Thu, 09 Apr 2009) | 3 lines

Removed unused code and variables to clean up strict compiler warnings in plugin


------------------------------------------------------------------------
r5563 | dgollub | 2009-04-08 22:08:33 +0400 (Wed, 08 Apr 2009) | 3 lines

Changed E-Mail contact.
opensync.org is facing issues with MX record.

------------------------------------------------------------------------
r5561 | bellmich | 2009-04-08 19:14:01 +0400 (Wed, 08 Apr 2009) | 6 lines

further batch_commit cleanups

- documentation
- CMakeLists.txt for test cases
- TODOs

------------------------------------------------------------------------
r5560 | bellmich | 2009-04-08 19:08:25 +0400 (Wed, 08 Apr 2009) | 2 lines

removed all disabled tests which used batch_commit

------------------------------------------------------------------------
r5559 | bellmich | 2009-04-08 19:01:53 +0400 (Wed, 08 Apr 2009) | 2 lines

removed batch_commit (please see ticket #1078)

------------------------------------------------------------------------
r5525 | dgollub | 2009-04-04 02:09:03 +0400 (Sat, 04 Apr 2009) | 8 lines

Fix slow-sync issues with plugins using the SinkStateDB.
The REPLACE queries and the table struct caused that only one row is
left, even if a member has multiple objtype sinks active.

Adapting the primary keys solves the problem.
Dropped the ID column whcih was unused.


------------------------------------------------------------------------
r5522 | ianmartin | 2009-04-03 13:42:43 +0400 (Fri, 03 Apr 2009) | 1 line

More tests ported to current API Ticket #981
------------------------------------------------------------------------
r5509 | dgollub | 2009-04-01 22:15:48 +0400 (Wed, 01 Apr 2009) | 5 lines

Fixed potential segfault if OSyncClient allocation would fail.

Patch by Nicolas


------------------------------------------------------------------------
r5506 | cdfrey | 2009-04-01 02:15:45 +0400 (Wed, 01 Apr 2009) | 3 lines

Fixed spelling typo


------------------------------------------------------------------------
r5505 | cdfrey | 2009-04-01 02:13:25 +0400 (Wed, 01 Apr 2009) | 7 lines

Updated python wrapper with API changes... wrapper should now compile

- get_conflict_resolution's long long change
- anchor / state_db rename
- set_functions/set_userdata API change


------------------------------------------------------------------------
r5504 | cdfrey | 2009-04-01 02:12:31 +0400 (Wed, 01 Apr 2009) | 3 lines

Removed deleted API functions and types from python wrapper


------------------------------------------------------------------------
r5503 | cdfrey | 2009-04-01 02:11:36 +0400 (Wed, 01 Apr 2009) | 3 lines

Cleaned up ambiguous comments surrounding commented out code


------------------------------------------------------------------------
r5484 | bellmich | 2009-03-31 15:38:25 +0400 (Tue, 31 Mar 2009) | 2 lines

fixed documentation for migration of OSyncAnchor to OSyncSinkStateDB

------------------------------------------------------------------------
r5483 | bellmich | 2009-03-31 15:30:58 +0400 (Tue, 31 Mar 2009) | 2 lines

renamed OSyncAnchor to OSyncSinkStateDB

------------------------------------------------------------------------
r5482 | bellmich | 2009-03-31 15:30:31 +0400 (Tue, 31 Mar 2009) | 2 lines

renamed OSyncAnchor to OSyncSinkStateDB

------------------------------------------------------------------------
r5481 | bellmich | 2009-03-31 15:29:49 +0400 (Tue, 31 Mar 2009) | 2 lines

renamed OSyncAnchor to OSyncSinkStateDB

------------------------------------------------------------------------
r5480 | bellmich | 2009-03-31 15:29:05 +0400 (Tue, 31 Mar 2009) | 3 lines

- renamed OSyncAnchor to OSyncSinkStateDB
- renamed some functions because of the getter/setter pattern

------------------------------------------------------------------------
r5479 | bellmich | 2009-03-31 13:28:47 +0400 (Tue, 31 Mar 2009) | 2 lines

fixed the includes for the OSyncAnchor to OSyncSinkStateDB migration

------------------------------------------------------------------------
r5478 | dgollub | 2009-03-31 13:26:16 +0400 (Tue, 31 Mar 2009) | 8 lines

Make sure that generate fiels from tempaltes get generated outside the
current working directory (e.g. config.h).

e.g. cmake -B/tmp/build/

Spotted by bellmich


------------------------------------------------------------------------
r5477 | bellmich | 2009-03-31 13:11:44 +0400 (Tue, 31 Mar 2009) | 2 lines

replaced opensync_anchor.c by opensync_sink_state_db.c

------------------------------------------------------------------------
r5476 | bellmich | 2009-03-31 13:09:47 +0400 (Tue, 31 Mar 2009) | 3 lines

renamed source files to prepare the renaming
from OSyncAnchor to OSyncSinkStateDB

------------------------------------------------------------------------
r5462 | dgollub | 2009-03-30 19:02:40 +0400 (Mon, 30 Mar 2009) | 27 lines

Introduced OSyncAnchor key=value interface. This unfortuantely breaks
the API and requires all plugins using the anchor to port.

Porting instruction:

char *anchor_value = plugin_specific_anchor();

-osync_anchor_compare(anchor, anchor_value, &anchormatch, &error);
+osync_anchor_compare(anchor, "anchor_key"1, anchor_value, &anchormatch, &error);

-osync_anchor_update(anchor, anchor_value, &error);
+osync_anchor_update(anchor, "anchor_key1", anchor_value, &error);

-osync_anchor_retrieve(anchor, &error);
-osync_anchor_retrieve(anchor, "anchor_key1", &error);


This key=value pair is per ObjTypeSink. This means you can reuse the
key-name for each ObjTypeSink.

Dropped old and unintended anchor.db file from test fixtures for
filter_destobjtype_delete testcase

fixes #1090



------------------------------------------------------------------------
r5461 | dgollub | 2009-03-30 16:32:13 +0400 (Mon, 30 Mar 2009) | 4 lines

Fix warning about different signess compare in string marshal functions.
Spotted by Bj?\195?\182rn.


------------------------------------------------------------------------
r5458 | dgollub | 2009-03-30 08:59:57 +0400 (Mon, 30 Mar 2009) | 5 lines

Cleaned up int vs. unsigned int for marshal API

refs #974


------------------------------------------------------------------------
r5456 | dgollub | 2009-03-30 08:35:07 +0400 (Mon, 30 Mar 2009) | 6 lines

Fix data type of osync_group_get_conflict_resolution' paramter "winner"
to long long int, which represents a mmeber id (which is long long int)

refs #974


------------------------------------------------------------------------
r5455 | dgollub | 2009-03-30 08:29:09 +0400 (Mon, 30 Mar 2009) | 6 lines

Fixed data type of osync_mapping_engine_member_change()'s member id
parameter, whichi is long long int - not int.

refs #974


------------------------------------------------------------------------
r5454 | dgollub | 2009-03-30 08:27:22 +0400 (Mon, 30 Mar 2009) | 5 lines

Fix data type of osync_group_find_member() parameter member id

refs #974


------------------------------------------------------------------------
r5453 | dgollub | 2009-03-30 08:22:15 +0400 (Mon, 30 Mar 2009) | 6 lines

Fix coding style. Change return value of osync_group_objtype_enabled()
to osync_bool.

refs #974


------------------------------------------------------------------------
r5452 | dgollub | 2009-03-30 07:53:06 +0400 (Mon, 30 Mar 2009) | 2 lines

Cleanup hashtable header

------------------------------------------------------------------------
r5451 | dgollub | 2009-03-30 07:52:00 +0400 (Mon, 30 Mar 2009) | 2 lines

Drop duplicated declartion of osync_objtype_sink_set_connect_done_func

------------------------------------------------------------------------
r5444 | dgollub | 2009-03-30 06:34:56 +0400 (Mon, 30 Mar 2009) | 21 lines

Dropped osync_objtype_sink_set_slowsync.
Replacment is osync_context_report_slowsync(OSyncContext*)

Reporting a slow-sync is only allowed/handled inside the connect()
function context. Call this context report function before
osync_context_report_success()!

For further information see #1085

Furhter changes:
* fixing typedef typo in public API
* dropped wrong and unused test instrumentation in mock-sync
   ("LATE-SLOW-SYNC", is about getting not setting slow-sync)
* ported example plugins
* ported osyncplugin tool
* some cleanups inside OSyncClient

fixes #1085



------------------------------------------------------------------------
r5435 | dgollub | 2009-03-30 02:16:21 +0400 (Mon, 30 Mar 2009) | 6 lines

Drop Sink Plugin function "write" (don't mixup with "commit"!).
This plugin function was never used inside the engine and just causes
confusion. Currently there is also no need for a "sync framework" to do
"single writes" out of sync order.


------------------------------------------------------------------------
r5432 | dgollub | 2009-03-30 01:44:10 +0400 (Mon, 30 Mar 2009) | 38 lines

Dropped OSyncObjTypeSinkFunctions struct from public API.
Replacement are newly introduced osync_objtype_sink_set_*_func() interfaces:

osync_objtype_sink_set_batch_commit_func
osync_objtype_sink_set_commit_func
osync_objtype_sink_set_committed_all_func
osync_objtype_sink_set_connect_done_func
osync_objtype_sink_set_connect_func
osync_objtype_sink_set_disconnect_func
osync_objtype_sink_set_get_changes_func
osync_objtype_sink_set_read_func
osync_objtype_sink_set_sync_done_func
osync_objtype_sink_set_write_func

and

osync_objtype_sink_set_userdata


Porting example:

-OSyncObjTypeSinkFunctions functions;
-memset(&functions, 0, sizeof(functions));
-functions.connect = connect_error;
-functions.disconnect = disconnect;
-functions.get_changes = get_changes;
-
-osync_objtype_sink_set_functions(sink, functions, user_data);
+
+osync_objtype_sink_set_connect_func(sink, connect);
+osync_objtype_sink_set_disconnect_func(sink, disconnect);
+osync_objtype_sink_set_get_changes_func(sink, get_changes);
+
+osync_objtype_sink_set_userdata(sink, user_data);

fixes #1086


------------------------------------------------------------------------
r5431 | bricks | 2009-03-29 22:29:36 +0400 (Sun, 29 Mar 2009) | 2 lines

fixed symbol test again

------------------------------------------------------------------------
r5430 | bricks | 2009-03-29 22:20:04 +0400 (Sun, 29 Mar 2009) | 6 lines

OSyncObjTypeSink had a osync_objtype_sink_get_objformat_sinks functions
Changed this function to return a copy of the list
Therefore other functions which depend on the list had to be changed too
removed osync_objtype_sink_num_objformat_sinks and osync_objtype_sink_nth_objformat_sink from public api
refs #975

------------------------------------------------------------------------
r5429 | bricks | 2009-03-29 21:48:30 +0400 (Sun, 29 Mar 2009) | 3 lines

changed list pattern for all mapping related interfaces
refs #975

------------------------------------------------------------------------
r5428 | bricks | 2009-03-29 19:58:31 +0400 (Sun, 29 Mar 2009) | 2 lines

fixed symbol test for latest changes

------------------------------------------------------------------------
r5427 | bricks | 2009-03-29 19:49:55 +0400 (Sun, 29 Mar 2009) | 2 lines

dropped osync_hashtable_num_entries from public interface

------------------------------------------------------------------------
r5425 | bricks | 2009-03-29 19:38:26 +0400 (Sun, 29 Mar 2009) | 3 lines

changed list pattern for all group related interfaces
refs #975

------------------------------------------------------------------------
r5422 | dgollub | 2009-03-29 18:40:22 +0400 (Sun, 29 Mar 2009) | 13 lines

Added "osync_bool slowsync" to the connect_done plugin sink function
paramter list. To determine the current sync mode (slow-/fast-sync).

Also fixed a bug where connect_done() got called with the wrong sync
mode. Due to the sepeartion of Client and ClientProxy and the missing
update of the Sync Mode the connect_done() got called with fast-sync
even if the engine was supposed to do a slow-sync and would call
slow-ysnc with get_changes().

Added regression testcase inside mock-sync.



------------------------------------------------------------------------
r5421 | bricks | 2009-03-29 18:14:48 +0400 (Sun, 29 Mar 2009) | 3 lines

changed list pattern for all format related interfaces
refs #975

------------------------------------------------------------------------
r5420 | bricks | 2009-03-29 17:28:07 +0400 (Sun, 29 Mar 2009) | 1 line

fixed symbol test
------------------------------------------------------------------------
r5417 | bricks | 2009-03-29 17:12:18 +0400 (Sun, 29 Mar 2009) | 3 lines

changed list pattern for all engine related interfaces
refs #975

------------------------------------------------------------------------
r5416 | dgollub | 2009-03-29 16:36:42 +0400 (Sun, 29 Mar 2009) | 5 lines

Tolerate NULL in osync_list_free and osync_list_free1 as list argument.
This avoids sanity checks when dealing with osync_list which is now more
common with the API list-pattern changes.


------------------------------------------------------------------------
r5412 | dgollub | 2009-03-29 01:36:14 +0300 (Sun, 29 Mar 2009) | 5 lines

Fix potentioanl memory leak in example plugins.
osync_plugin_info_get_objtype_sinks() returns a copy of the original
list which needs to be freed by the caller.


------------------------------------------------------------------------
r5411 | dgollub | 2009-03-29 01:32:29 +0300 (Sun, 29 Mar 2009) | 5 lines

Ported example plugins to OSyncPluginEnv API changes.

Dropped sinkenv from simple_plugin to make it even simpler.


------------------------------------------------------------------------
r5410 | dgollub | 2009-03-29 01:22:30 +0300 (Sun, 29 Mar 2009) | 7 lines

Renamed osync_plugin_info_get_objtypes to
osync_plugin_info_get_objtype_sinks.

Thsi should avoid confusion between "objtype" which is often just const
char* and between OSyncObjTypeSink.


------------------------------------------------------------------------
r5409 | dgollub | 2009-03-29 00:57:04 +0300 (Sun, 29 Mar 2009) | 3 lines

Port list_all_plugins example to latest OSyncPluginEnv API changes.
Build got broken due to API change by r5383

------------------------------------------------------------------------
r5407 | dgollub | 2009-03-29 00:42:14 +0300 (Sun, 29 Mar 2009) | 34 lines

Cleaned up engine interface namespaces.
And unexported Update struct and repalced them with an anonymous typdef struct.

Renamed enum namespaces:
OSYNC_MAPPING_EVENT_ to  OSYNC_ENGINE_MAPPING_EVENT_
OSYNC_CLIENT_EVENT_ to OSYNC_ENGINE_MEMBER_EVENT_
OSYNC_CHANGE_EVENT_ to OSYNC_ENGINE_CHANGE_EVENT_
OSYNC_MAPPING_EVENT_ to OSYNC_ENGINE_MAPPING_EVENT_

Renamed structs and unexported to anonymouse typedefs:
OSyncChangeUpdate to OSyncEngineChangeUpdate
OSyncMemberUpdate to OSyncEngineMemberUpdate
OSyncMappingUpdate to OSyncEngineMappingUpdate

Added following interface to get data from the Update structs inside the
Update-callbacks:

OSyncError *osync_engine_change_update_get_error(OSyncEngineChangeUpdate *update);
OSyncEngineChangeEvent osync_engine_change_update_get_event(OSyncEngineChangeUpdate *update);
OSyncMember *osync_engine_change_update_get_member(OSyncEngineChangeUpdate *update);
OSyncChange *osync_engine_change_update_get_change(OSyncEngineChangeUpdate *update);

OSyncError *osync_engine_member_update_get_error(OSyncEngineMemberUpdate *update);
OSyncEngineMemberEvent osync_engine_member_update_get_event(OSyncEngineMemberUpdate *update);
OSyncMember *osync_engine_member_update_get_member(OSyncEngineMemberUpdate *update);
const char *osync_engine_member_update_get_objtype(OSyncEngineMemberUpdate *update);

OSyncError *osync_engine_mapping_update_get_error(OSyncEngineMappingUpdate *update);
OSyncEngineMappingEvent osync_engine_mapping_update_get_event(OSyncEngineMappingUpdate *update);

OSyncError *osync_engine_update_get_error(OSyncEngineUpdate *update);
OSyncEngineEvent osync_engine_update_get_event(OSyncEngineUpdate *update);


------------------------------------------------------------------------
r5406 | dgollub | 2009-03-28 23:06:04 +0300 (Sat, 28 Mar 2009) | 5 lines

Remove osync_remove_directory_recursively() from the public installed
header. This function wasn't exported but got isntalled with the public
headers.


------------------------------------------------------------------------
r5405 | dgollub | 2009-03-28 22:58:10 +0300 (Sat, 28 Mar 2009) | 4 lines

Remove gmtime_r and localtime_r, which are only used internally, from
the public API header.


------------------------------------------------------------------------
r5402 | dgollub | 2009-03-28 22:35:17 +0300 (Sat, 28 Mar 2009) | 7 lines

Fix osync_obj_engine_nth_sinkengine() interface which could return on a
mixed-syncing group NULL even if _num_sinkengine() reports a different
limit.

Spotted by bricks.


------------------------------------------------------------------------
r5401 | dgollub | 2009-03-28 22:15:46 +0300 (Sat, 28 Mar 2009) | 1 line

Dropped legacy includes.
------------------------------------------------------------------------
r5385 | dgollub | 2009-03-28 21:57:03 +0300 (Sat, 28 Mar 2009) | 3 lines

Include cleanup. Set #warning for legacy includes which get dropped
before 0.39 release.

------------------------------------------------------------------------
r5384 | dgollub | 2009-03-28 21:22:32 +0300 (Sat, 28 Mar 2009) | 3 lines

Remove OSyncArchive interfaces from public API.


------------------------------------------------------------------------
r5383 | bricks | 2009-03-28 21:16:08 +0300 (Sat, 28 Mar 2009) | 3 lines

changed list pattern for all plugin related interfaces
refs #975

------------------------------------------------------------------------
r5381 | dgollub | 2009-03-28 20:45:34 +0300 (Sat, 28 Mar 2009) | 6 lines

Fix build of wrapper.

Got broken due to API changes on hashtable and the drop of
osync_plugin_info_get_configdir().


------------------------------------------------------------------------
r5379 | dgollub | 2009-03-28 18:26:33 +0300 (Sat, 28 Mar 2009) | 6 lines

Fix regression of ipc_callback_break caused by r5360.

refs #1039 comment:5
fixes #1039


------------------------------------------------------------------------
r5378 | dgollub | 2009-03-28 18:02:45 +0300 (Sat, 28 Mar 2009) | 10 lines

Drop osync_plugin_info_get_configdir() from plugin interface to avoid
that plugins directly access the filesystem of the configuration
direcoty. This hopefully avoids an maintenance nightmare.

osync_plugin_info_get_configdir() will not get replaced by any other
function.

fixes #1083


------------------------------------------------------------------------
r5374 | dgollub | 2009-03-28 16:59:51 +0300 (Sat, 28 Mar 2009) | 7 lines

Port example plugins to latest hashtable API change.
Dropped obbsolate sinkenv userdata structs.
Just kept pluginenv struct as example.

refs #1082


------------------------------------------------------------------------
r5373 | dgollub | 2009-03-28 16:41:02 +0300 (Sat, 28 Mar 2009) | 6 lines

Introduced osync_objtype_sink_save_hashtable() for osyncplugin tool.
Temporarily disabled hashtable dumping inf osyncdump.

refs #1082


------------------------------------------------------------------------
r5372 | dgollub | 2009-03-28 16:20:04 +0300 (Sat, 28 Mar 2009) | 5 lines

Ported mock-sync plugin to latest Hashtable API change r5371

refs #1082


------------------------------------------------------------------------
r5371 | dgollub | 2009-03-28 16:19:04 +0300 (Sat, 28 Mar 2009) | 32 lines

Dropped following interfaces:
osync_hashtable_new
osync_hashtable_ref
osync_hashtable_unref
osync_hashtable_load
osync_hashtable_save

This affects all plugins using hashtables!

Short Porting instruction:
- Drop osync_hashtable_{un,}ref() calls (no replacement required)
- Drop osync_hashtable_new() (no replacement required)
- Drop calls like osync_plugin_info_get_configdir() if they were used to
  create a hashtable path (obsolete now)
- Drop calls of osync_hashtable_save() (no replacement required)
- Call osync_objtype_sink_enable_hashtable(OSyncObjTypeSink *sink, TRUE);
  in plugin init function for each ObjTypeSink
- Hashtable will be initilaized and loaded by the Engine right after the
  plugin init function. Don't expect to get a HashTable pointer in the
  init function!
- You can get an valid OSyncHashTable pointer by calling inside Plugin
  Sink Functions (e.g. connect, get_changes, commit, sync_done, ...):
  
  OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink);

- Hashtable get stored after the sync_done() plugin call. No call by
  plugin required.

refs #1082
refs #1083


------------------------------------------------------------------------
r5370 | cdfrey | 2009-03-28 09:00:59 +0300 (Sat, 28 Mar 2009) | 3 lines

Fixed typo in comment


------------------------------------------------------------------------
r5369 | dgollub | 2009-03-28 05:13:10 +0300 (Sat, 28 Mar 2009) | 6 lines

Prepare new hashtable interface to request a OSyncHashTable.
Similar to the OSyncAnchor request implementation.

refs #1082


------------------------------------------------------------------------
r5368 | dgollub | 2009-03-28 05:04:57 +0300 (Sat, 28 Mar 2009) | 3 lines

Fixed compiler warnings about unhandled return value of system() in
multisync testsuite.

------------------------------------------------------------------------
r5364 | dgollub | 2009-03-27 21:46:42 +0300 (Fri, 27 Mar 2009) | 8 lines

Deleted duplicate testcase of sync_error unit. Those used to be 1:1 the
same to engine_error unit.

Thanks to Ian for finding this 2000 lines of redudant code!

fixes #980


------------------------------------------------------------------------
r5363 | dgollub | 2009-03-27 21:00:20 +0300 (Fri, 27 Mar 2009) | 2 lines

Add an example how to disable testcases. Currently all are enabled :)

------------------------------------------------------------------------
r5362 | dgollub | 2009-03-27 20:54:00 +0300 (Fri, 27 Mar 2009) | 11 lines

Remove testcase hack to simulate an unclean shutdown of a
synchronization. Since this test is designed just to simulate a "stale
lock" situtation - it's enough by just faking a "stale lock" without the
need of simulating a crash.

Thanks to Friedrich for the initial review of this issue.

fixes #1066



------------------------------------------------------------------------
r5361 | dgollub | 2009-03-27 20:28:07 +0300 (Fri, 27 Mar 2009) | 4 lines

Reenable ipc_callback_break_pipes which got fixed with r5360.

refs #1039

------------------------------------------------------------------------
r5360 | dgollub | 2009-03-27 20:26:25 +0300 (Fri, 27 Mar 2009) | 8 lines

Make ipc_callback_break_pipes more reliable by sending and processing
message one by one. This avoids that the queue gets flushed to early -
which was quite racy if the client was faster then the server processing
the callbacks.

fixes #1039


------------------------------------------------------------------------
r5359 | ianmartin | 2009-03-27 15:59:25 +0300 (Fri, 27 Mar 2009) | 2 lines

Updating multisync tests to current API and config file format. Ticket #981

------------------------------------------------------------------------
r5358 | dgollub | 2009-03-27 14:21:01 +0300 (Fri, 27 Mar 2009) | 2 lines

Test commit to trigger continuous build hosts.

------------------------------------------------------------------------
r5357 | bricks | 2009-03-27 11:24:18 +0300 (Fri, 27 Mar 2009) | 2 lines

removed osync_plugin_info_get_sink and osync_objtype_sink_get_slowsync from the public api

------------------------------------------------------------------------
r5350 | ianmartin | 2009-03-26 17:18:09 +0300 (Thu, 26 Mar 2009) | 2 lines

Updated python wrapper to match api change in r5349

------------------------------------------------------------------------
r5349 | ianmartin | 2009-03-26 16:25:12 +0300 (Thu, 26 Mar 2009) | 8 lines

Move sync function userdata determination into
osync_objtype_sink_<sink_function>.  This forces
all callers of pluing sync functions to pass the
user data the plugin set for the sink.

Fixes bug with osyncplugin passing plugindata to
plugin sync functions

------------------------------------------------------------------------
r5348 | dgollub | 2009-03-26 06:20:31 +0300 (Thu, 26 Mar 2009) | 6 lines

Reenable testcase engine_error_dual_commit_timeout.
Not failing after 30 test cycles.

fixes #1041


------------------------------------------------------------------------
r5347 | dgollub | 2009-03-26 06:14:03 +0300 (Thu, 26 Mar 2009) | 6 lines

Reduced engine_sync_stress number of iterrations from 1000 to 250.
Profiling is scheduled after 0.40 release

refs #1040


------------------------------------------------------------------------
r5346 | dgollub | 2009-03-26 06:08:45 +0300 (Thu, 26 Mar 2009) | 6 lines

Reenabled engine_error_dual_connect_timeout. Not reproducible. 100% pass
after 60 test cycles on Linux Host x86_64 SMP.

fixes #1038


------------------------------------------------------------------------
r5345 | dgollub | 2009-03-26 05:57:56 +0300 (Thu, 26 Mar 2009) | 5 lines

Ignore new changes messages from plugins if they delayed/timedout.

fixes #1030


------------------------------------------------------------------------
r5344 | dgollub | 2009-03-26 04:48:16 +0300 (Thu, 26 Mar 2009) | 12 lines

Fixed #994 with r5342, r5343

Tested engine_sync_read_write_stress with 10 cycles - 10 passed.
Reduced the number of stress commits in engine_sync_read_write_stress
from 1000 to 250 to "workaround" #1040

Profiling to fix #1040 will be done after 0.40

fixes #994



------------------------------------------------------------------------
r5343 | dgollub | 2009-03-26 04:32:27 +0300 (Thu, 26 Mar 2009) | 3 lines

Fix UID conflict issue of engine_sync_read_write_stress
Got broken from previous commit r5342

------------------------------------------------------------------------
r5342 | dgollub | 2009-03-26 04:07:12 +0300 (Thu, 26 Mar 2009) | 9 lines

Fix random fails of testcases: engine_sync_read_write,
engine_sync_read_write_stress, engine_sync_read_write_stress2

Testcases failed randomly due to "random" assembled uid using %p pointer
address. %p got replace by osync_rand_str().

fixes #943


------------------------------------------------------------------------
r5320 | dgollub | 2009-03-26 02:27:25 +0300 (Thu, 26 Mar 2009) | 6 lines

Fix and renable engine_error_dual_connect_error testcase.

Tolerate the "disconnect" event signal on a dual_connect_error.

fixes #995

------------------------------------------------------------------------
r5317 | dgollub | 2009-03-26 01:48:38 +0300 (Thu, 26 Mar 2009) | 5 lines

Define how the memory of the format plugin "print" function must get
allocated and freed.

fixes #1028

------------------------------------------------------------------------
r5316 | dgollub | 2009-03-26 00:37:09 +0300 (Thu, 26 Mar 2009) | 4 lines

Add testcase for error handling in discover phase.
Fix error reporting of discover engine command.


------------------------------------------------------------------------
r5315 | dgollub | 2009-03-25 21:52:52 +0300 (Wed, 25 Mar 2009) | 14 lines

Final fix of mapping_engine for similiar&same conflicts.

The change/entry_engine of the "similar" entry got overwritten by the
"same" entry. So the similar&same was never fixed to 100%

This fixes tescases:
mapping_engine_same_similar_conflict
mapping_engine_same_similar_conflict_multi

(This was not a $ARCH problem as stated before)

fixes #883


------------------------------------------------------------------------
r5314 | bricks | 2009-03-25 20:14:22 +0300 (Wed, 25 Mar 2009) | 3 lines

Added CHECK_LIBRARY_DIRS to link directories
BUGFIX:  Build failed if check wasn't installed in a default location

------------------------------------------------------------------------
r5313 | dgollub | 2009-03-25 19:22:32 +0300 (Wed, 25 Mar 2009) | 6 lines

Fix sync_detect_obj2 and outstanding issue as described in #992
comment:16 and comment:17

fixes #992


------------------------------------------------------------------------
r5312 | dgollub | 2009-03-25 18:43:18 +0300 (Wed, 25 Mar 2009) | 5 lines

Add additional test description for sync_detect_obj2, also why it is
currently failing.

refs #992

------------------------------------------------------------------------
r5311 | dgollub | 2009-03-25 17:53:29 +0300 (Wed, 25 Mar 2009) | 2 lines

Fixes sync_detect_obj testcase

------------------------------------------------------------------------
r5301 | dgollub | 2009-03-24 17:50:40 +0300 (Tue, 24 Mar 2009) | 5 lines

Unexexport osync_db interface

refs #1050


------------------------------------------------------------------------
r5300 | dgollub | 2009-03-24 17:48:20 +0300 (Tue, 24 Mar 2009) | 10 lines

Dropped public osync_db_ interface.
The public osync_db_ interface needs a redesing - which is not mandatory
for 0.40.

(partial commit facing issues with webserver)

refs #1050



------------------------------------------------------------------------
r5287 | bricks | 2009-03-10 14:18:28 +0300 (Tue, 10 Mar 2009) | 4 lines

interface cleanup for osync_..._nth_... and osync_..._num_... functions
now all these functions use unsigned int instead of int
see ticket #973

------------------------------------------------------------------------
r5286 | bricks | 2009-03-10 13:21:54 +0300 (Tue, 10 Mar 2009) | 2 lines

fixed unsigned/signed int errors spotted by -Wsign-compare

------------------------------------------------------------------------
r5283 | bricks | 2009-03-09 11:49:26 +0300 (Mon, 09 Mar 2009) | 2 lines

ported example plugins to latest api changes (objtypesink userdata pointer)

------------------------------------------------------------------------
r5277 | bricks | 2009-02-26 11:02:23 +0300 (Thu, 26 Feb 2009) | 3 lines

Pass objtype sink userdata to all objtype sink plugin function instead of the plugin/client data
fix for ticket #1018

------------------------------------------------------------------------
r5276 | friedrich.beckmann | 2009-02-25 23:54:21 +0300 (Wed, 25 Feb 2009) | 1 line

changed indentation replaced space with tabs
------------------------------------------------------------------------
r5275 | friedrich.beckmann | 2009-02-25 23:47:04 +0300 (Wed, 25 Feb 2009) | 1 line

test lock_dual_sync_engine_unclean does not work as expected - see ticket 1066 - disabled the test
------------------------------------------------------------------------
r5274 | friedrich.beckmann | 2009-02-25 19:23:43 +0300 (Wed, 25 Feb 2009) | 1 line

windows port - engine tests and multisync tests did not run on windows. Mainly because the test command is not available in the msys environment.
------------------------------------------------------------------------
r5273 | friedrich.beckmann | 2009-02-25 16:58:27 +0300 (Wed, 25 Feb 2009) | 1 line

Added thread based communication for the queues. This avoids the usage of the file pipe mechanism. Messages are simple forwarded directly between g_async_queues. This is required for the windows port and is usefull also on unix as the communication is faster (no file i/o). It is automatically enabled, when the start type of the plugin is THREAD.
------------------------------------------------------------------------
r5272 | friedrich.beckmann | 2009-02-25 16:31:43 +0300 (Wed, 25 Feb 2009) | 1 line

anchor has one reference count too much and is not released
------------------------------------------------------------------------
r5270 | dgollub | 2009-02-19 20:06:25 +0300 (Thu, 19 Feb 2009) | 2 lines

Test commit

------------------------------------------------------------------------
r5268 | bricks | 2009-02-13 15:33:18 +0300 (Fri, 13 Feb 2009) | 2 lines

changed indentation to tabs

------------------------------------------------------------------------
r5267 | bricks | 2009-02-13 13:50:28 +0300 (Fri, 13 Feb 2009) | 2 lines

changed indentation to tab and all /*! to /**

------------------------------------------------------------------------
r5266 | bricks | 2009-02-13 11:54:35 +0300 (Fri, 13 Feb 2009) | 2 lines

changed commentation to c style and fixed indentation

------------------------------------------------------------------------
r5265 | bricks | 2009-02-13 11:52:28 +0300 (Fri, 13 Feb 2009) | 2 lines

Fixed some indentation, typos and compiler warnings in tests

------------------------------------------------------------------------
r5264 | bricks | 2009-02-13 11:42:09 +0300 (Fri, 13 Feb 2009) | 2 lines

Fixed compiler warning: don't unref a char* as an OSyncAdvancedOption

------------------------------------------------------------------------
r5262 | Graham Cobb | 2009-02-07 02:29:07 +0300 (Sat, 07 Feb 2009) | 4 lines

Bug #1032: Change osync_plugin_config_get_advancedoption_value_by_name
to return the option value, not the option itself


------------------------------------------------------------------------
r5261 | Graham Cobb | 2009-02-04 18:37:58 +0300 (Wed, 04 Feb 2009) | 4 lines

Fix double-deallocation crash during exit caused by bad refcounting in
opensync_member.c.


------------------------------------------------------------------------
r5260 | friedrich.beckmann | 2009-02-04 17:32:36 +0300 (Wed, 04 Feb 2009) | 1 line

engine_error_single_init_error, ..double_init_error, ...no_objtype_error, ...no_config_error did not work. See ticket #1056
------------------------------------------------------------------------
r5258 | Graham Cobb | 2009-02-03 22:54:04 +0300 (Tue, 03 Feb 2009) | 4 lines

Timeout merge complete

This commit is just to tidy up attributes

------------------------------------------------------------------------
r5257 | Graham Cobb | 2009-02-03 22:48:24 +0300 (Tue, 03 Feb 2009) | 8 lines

Timeout merge #3:

6) Implement a mechanism to protect the queue itself: i.e. is the
receiver still reading the queue?
4) Handle timeout before reply queue set up by generating an
error message on the command queue


------------------------------------------------------------------------
r5256 | Graham Cobb | 2009-02-03 22:35:06 +0300 (Tue, 03 Feb 2009) | 2 lines

Bug #1052: add refs in obj_engine and sink_engine

------------------------------------------------------------------------
r5255 | Graham Cobb | 2009-02-03 22:26:06 +0300 (Tue, 03 Feb 2009) | 8 lines

Timeout merge 2:

3) Add references for cross-linked pointers between queues and
remove linkages (and unref) when queue disconnected
2) Limit the number of pending entries so the timeout is not
dependent on the number of outstanding requests


------------------------------------------------------------------------
r5254 | Graham Cobb | 2009-02-03 22:07:09 +0300 (Tue, 03 Feb 2009) | 3 lines

Merge of basic timeout changes


------------------------------------------------------------------------
r5245 | dgollub | 2009-01-31 20:16:47 +0300 (Sat, 31 Jan 2009) | 6 lines

Add sync_mixed_objtype testcase to test mixed-objtype syncing #992
This testcase is on intention not integrated into CTest, since it's
failing due to a bug in the mock-format plugin (marshal function
assigned to the wrong registered objformat - r5243).


------------------------------------------------------------------------
r5244 | dgollub | 2009-01-31 20:12:45 +0300 (Sat, 31 Jan 2009) | 9 lines

Reassing mixed-objtype synced mapping-entries  after the MULITPLY engine
event. To fix conversion to the correct destination format of the peer.
Converting in the "native" ObjEngine allows to access the origianl
OSyncObjTypeSink which stores the resource/format configuration of the
peer.

To handle the objengine re-assigning before the conversion, the
alternative-objtype hashtable of the member get used.

------------------------------------------------------------------------
r5243 | dgollub | 2009-01-31 20:05:12 +0300 (Sat, 31 Jan 2009) | 3 lines

The mock-format plugin assigns the  marshal function to all formats,
even if it's only valid for one format

------------------------------------------------------------------------
r5242 | dgollub | 2009-01-31 20:00:28 +0300 (Sat, 31 Jan 2009) | 5 lines

Implement for OSyncMember a hashtable which stores the "alternative"
objtypes. "alternative" objtypes are  those objtypes which could be
handled by the member with a "native" objtype, when doing
mixed-objtype-syncing.

------------------------------------------------------------------------
r5241 | dgollub | 2009-01-31 19:57:47 +0300 (Sat, 31 Jan 2009) | 3 lines

Start with empty lists in osync_archive_load_changes()
Avoid issues with uninitalized lists.

------------------------------------------------------------------------
r5240 | dgollub | 2009-01-31 16:05:17 +0300 (Sat, 31 Jan 2009) | 3 lines

Fix engine_sync_read_write_stress2 testcase. Same regression fix as in
commit r5239

------------------------------------------------------------------------
r5239 | dgollub | 2009-01-31 16:03:59 +0300 (Sat, 31 Jan 2009) | 12 lines

Fix testcase engine_sync_read_write. Regression got introduced by r5237
(mixed-objtype related modification)

test-fixture "group5" (from _create_group5) create two members with
different set of formats/objtypes. The second member had additionally
mockformat2/mockobjtype2 and mockformat3/mockobjtype3. Member 1 didn't.
So the engine failed syncing, since there were no further
peer-sinkengine which would support this anyway. Since this testcase
doesn't is intended to this this, the two additional format got dropped.
This still needs to be handled in the osync_engine_initialize()
function, by an error/fail. And not in the actual sync() call #992

------------------------------------------------------------------------
r5238 | cstender | 2009-01-30 19:58:35 +0300 (Fri, 30 Jan 2009) | 2 lines

fixed build

------------------------------------------------------------------------
r5237 | dgollub | 2009-01-30 00:29:33 +0300 (Fri, 30 Jan 2009) | 27 lines

Introduce support for determining "mixed objtypes".

This commit addresses following problem:

To create/initialize an OSyncObjEngine at least two member are required
which share the same ObjType. With mixed-objtype this this would not
work. Example:

          (objtype)
Member 1: event
Member 2: calendar


The engine would fail in initializing since it would not found a pair of
equal objtypes. This commit adds some logic to detect how many possible
ObjEngine could be initialized, and would not restrict them to at least
one. With the introduction with "dummy" OSyncSinkEngine, a ...