2009-02-04  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/group/opensync_member.c (osync_member_load): Use osync_member_add_objtype_sink
	so references get added properly.
	(osync_member_flush_objtypes): Use osync_member_remove_objtype_sink so references get 
	removed properly

	* opensync/ipc/opensync_queue.c (osync_queue_set_message_handler): Fix bad osync_trace format

2009-02-03  Graham Cobb  <g+770@cobb.uk.net>

	* tests/plugin-tests/check_plugin_config.c (plugin_config_advancedoption_set_get): Use new definition
	of osync_plugin_config_get_advancedoption_value_by_name

	* opensync/plugin/opensync_plugin_config.c (osync_plugin_config_get_advancedoption_value_by_name): Return
	option value [Bug #1032]

	* opensync/plugin/opensync_plugin_config.h: Fix osync_plugin_config_get_advancedoption_value_by_name
	to return a const char * [Bug #1032]

	* tests/ipc-tests/check_ipc.c (ipc_loop_timeout_with_idle): Change test parameters
	so test completes within 30 second limit.

2009-02-02  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/ipc/opensync_queue_private.h (OSYNC_QUEUE_PENDING_QUEUE_MIN_TIMEOUT): Define
	minimum pending queue timeout.

	* opensync/ipc/opensync_queue.c (_osync_queue_restart_pending_timeout): Apply
	minimum value to pending queue timeout.

2009-02-01  Graham Cobb  <g+770@cobb.uk.net>

	* tests/ipc-tests/check_ipc.c: Add ipc_timeout_noreceiver test.

	* opensync/ipc/opensync_queue.c (osync_queue_send_message_with_timeout): Track maximum 
	timeout seen.  Start pending queue timeout.
	(_osync_queue_remove_pending_reply): restart pending queue timeout if necessary
	(_osync_queue_restart_pending_timeout): Add function to start/restart pending queue timeout
	(_timeout_check): Fix calculation of expiry of timeout.  Add pending queue timeout.
	(_timeout_dispatch): Fix calculation of expiry of timeout.  Add pending queue timeout.

	* opensync/ipc/opensync_queue_private.h: Add max_timeout and pending_timeout fields (to queue).
	(OSYNC_QUEUE_PENDING_QUEUE_IPC_DELAY): Add value to assume for IPC delay in pending queue timout.

2009-01-25  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/engine/opensync_sink_engine.c (osync_sink_engine_new): Ref objengine [Bug #1052]
	(osync_sink_engine_unref): Unref objengine [Bug #1052]

	* opensync/engine/opensync_obj_engine.c (_osync_obj_engine_*_callback): Unref sinkengine [Bug #1052]
	(osync_obj_engine_command): Ref sinkengine every time it is used for a callback [Bug #1052]

	* opensync/ipc/opensync_queue.c (osync_queue_disconnect): Empty pending
	queue before performing disconnect.  Pending messages with callbacks
	will get called with an error message.
	(_incoming_check): Do not action incoming queue if a disconnect is in progress.
	This avoids entries being added to pending queue while we are trying to empty it.
	(osync_queue_send_message_with_timeout): Do not allow sending messages which require
	adding entries to the reply queue pending list if the reply queue is being disconnected.

	* opensync/ipc/opensync_queue_private.h: Add disc_in_progress flag to queue.

2009-01-24  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/ipc/opensync_queue.c (_osync_queue_generate_error): Add 
	_osync_queue_generate_error
	(_osync_send_timeout_response): If there is no reply queue, 
	call _osync_queue_generate_error

	* tests/CMakeLists.txt: Add ipc_timeout_noreplyq

	* tests/ipc-tests/check_ipc.c: Add ipc_timeout_noreplyq

	* opensync/ipc/opensync_queue.c (osync_queue_remove_cross_link): Add
	osync_queue_remove_cross_link
	(osync_queue_disconnect): Call osync_queue_remove_cross_link

	* opensync/ipc/opensync_queue_internals.h: Add osync_queue_remove_cross_link

2009-01-23  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/client/opensync_client.c (osync_client_set_incoming_queue): Call
	osync_queue_set_pending_limit

	* tests/ipc-tests/check_ipc.c: Call osync_queue_set_pending_limit in timeout tests.

	* opensync/ipc/opensync_queue_internals.h: Add osync_queue_set_pending_limit
	and OSYNC_QUEUE_PENDING_LIMIT

	* opensync/ipc/opensync_queue.c (_incoming_check): Check pendingLimit not exceeded.
	Add increments/decrements of pendingCount whenever pendingReplies is manipulated.
	(osync_queue_set_pending_limit): Add osync_queue_set_pending_limit

	* opensync/ipc/opensync_queue_private.h: Add pendingCount, pendingLimit to OSyncQueue

	* tests/CMakeLists.txt: Add ipc_loop_timeout_with_idle.

	* tests/ipc-tests/check_ipc.c: Rename callback_handler as callback_handler_check_reply.
	Rename server_handler3 as server_handler_abort.
	Rename client_handler6 as client_handler_sleep.
	Add ipc_loop_timeout_with_idle.

2009-01-22  Graham Cobb  <g+770@cobb.uk.net>

	* tests/CMakeLists.txt: Add ipc_loop_with_timeout
	Add ipc_late_reply

	* tests/ipc-tests/check_ipc.c: Call osync_queue_cross_link every time
	client mainloop is setup.
	(ipc_timeout): Rewrite client to use a mainloop and a callback so new 
	timeout processing can run
	Rewrite server to use a mainloop so message callback gets called
	(ipc_loop_with_timeout): Add ipc_loop_with_timeout
	(ipc_late_reply): Add ipc_late_reply

	* opensync/ipc/opensync_queue.c (_timeout_dispatch): Restart timeout search at start of
	pending list as list may have been modified while unlocked.
	(_timeout_dispatch): Set message id in error message
	(_timeout_dispatch): Undo change to restart timeout search (above)

2009-01-21  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/ipc/opensync_queue.c (osync_queue_send_message_with_timeout): If this is
	a reply, remove pending command

	* opensync/client/opensync_client_proxy.c (_osync_client_proxy_hup_handler): treat
	a queue error as a disconnect
	(osync_client_proxy_spawn): cross-link command and reply queues

	* opensync/client/opensync_client.c (_osync_client_handle_initialize): cross-link
	command and reply queues
	(_osync_client_hup_handler): treat a queue error as a disconnect

2009-01-20  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/ipc/opensync_queue_internals.h: Add osync_queue_cross_link

	* opensync/ipc/opensync_queue.c (osync_queue_cross_link): Cross-link command and reply queues

	* opensync/ipc/opensync_queue.c (_osync_send_timeout_response): 
	Callback function for timeouts: send the timeout error reponse
	(_incoming_dispatch): For incoming messages which have timeouts, 
	create a pending list entry

	* opensync/ipc/opensync_queue_private.h: Add reply_queue for pointer to 
	queue used for replies to incoming messages, if any.
	Add cmd_queue for pointer to queue used to store pending commands.

2009-01-19  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/ipc/opensync_message.c: Add opensync_message_set/get_timeout

	* opensync/ipc/opensync_message_internals.h: Add opensync_message_set/get_timeout

	* opensync/ipc/opensync_message_private.h: Add timeout to message

2008-05-04  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/helper/opensync_hashtable.c (osync_hashtable_get_deleted): 
	Reimplement change below to avoid local function declaration, which does not
	work on suncc.  Use user_data parameter on callback_check_deleted instead.

2008-05-03  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/helper/opensync_hashtable.c (osync_hashtable_get_deleted): 
	Avoid use of g_hash_table_get_keys so code can be built using glib 2.12.
	Uses g_hash_table_foreach with a callback routine instead.

2008-04-12  Daniel Gollub <gollub@b1-systems.de>

	* tools/osyncplugin.c:
	  Full rewrite of osyncplugin to work with OpenSync 0.30 API
	
	* tests/mock-plugin/mock_sync.c, tests/mock-plugin/mock_format.c: 
	  Stripped entire error handling of mock-sync and mock-format for best
	  code coverage. Instead of error handling in testing code use
	  osync_assert().

2008-04-10  Graham Cobb  <g+770@cobb.uk.net>

	* opensync/helper/opensync_hashtable.c (osync_hashtable_reset_reports): conditionalise g_hash_table_remove_all
	on GLIB version 2.12 or later.  Use g_hash_table_foreach_remove for earlier versions.

	* ChangeLog: create a ChangeLog

