2012-11-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_send_xml): Don't crash when the connection is
	deleted during the sent callback.

2012-11-26  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c: Fix assertion fail at drawing selection
	of not yet fully synchronized document.

2012-10-21  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.5.4.

2012-10-21  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.5.3 ===

	* NEWS: Update for release.

2012-10-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Fix a crash that could
	occur when it is noticed at send time that a connection is down.

	* test/inf-test-mass-join.c:
	* test/Makefile.am: Add a test which connects 128 users
	simultaneously to an infinote server. Disconnecting all these users at
	once is a way to reproduce the crash the above change fixes.

2012-06-02  Philipp Kern  <phil@0x539.de>

	* test/Makefile.am: Add non-interactive tests to `make check'.
	(Except for text-replay, which takes a long time to complete and
	needs additional CLI parameters.)

2012-06-02  Philipp Kern  <phil@0x539.de>

	* configure.ac: Check for libm for libinftextgtk (uses atan2, floor
	and sin/cos).

2012-05-30  Colomban Wendling <ban@herbesfolles.org>

	* libinfgtk/inf-gtk-browser-model.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/common/inf-xml-connection.c: InfXmlConnectionStatus,
	InfcBrowserStatus and InfGtkBrowserModelStatus GType registration code
	missed an array sentinel leading to GType reading invalid memory paste
	the end of the array.

2012-03-25  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.5.3.

2012-03-25  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.5.2 ===

	* NEWS: Update for release.

2012-03-17  Philipp Kern  <phil@0x539.de>

	* INSTALL: Boilerplate content updated.

2012-02-07  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c
	(inf_gtk_certificate_manager_certificate_func): Fix a crash when the
	certificate has no hostname set.

2012-01-09  Dominique Leuenberger  <dimstar@opensuse.org>

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-util.h:
	* libinfinity/common/inf-xml-util.h: Fix compilation with glib 2.31.

2011-10-13  Philipp Kern  <phil@0x539.de>

	* infinoted/infinoted-0.5.man:
	* infinoted/infinoted-options.c: State that sync interval is
	in seconds.

2011-08-28  Philipp Kern  <phil@0x539.de>

	* infinoted/infinoted-0.5.man: Update whatis entry to be
	actually useful.

2011-08-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Fix a crash when the
	initial message contains invalid UTF-8.

2011-08-01  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.5.2.

2011-08-01  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.5.1 ===

	* NEWS: Update for release.

2011-08-01  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-config-reload.c (infinoted_config_reload):
	Update directory sync on config reload.

2011-08-01  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-directory-sync.c
	(infinoted_directory_sync_remove_session): Do not run into an
	assertion failue if the removed session had a timeout running.

2011-08-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c
	(inf_standalone_io_iteration_impl): Wait for the earliest timeout, not
	for the latest one.

2011-07-17  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-pam.c: Fix pam_appl.h include on MacOS X (#563,
	nairboon).

2011-06-23  Philipp Kern  <phil@0x539.de>

	* configure.ac: Print if PAM support is enabled or not.

2011-06-19  Benjamin Herr  <ben@0x539.de>

	* libinfinity/server/infd-directory.c
	(infd_directory_node_is_name_available): Disallow node names
	containing non-printable or only space characters.

2011-06-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c
	(infd_directory_node_is_name_available): Enable localization of two
	error messages.

2011-06-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c (infd_directory_add_note): Do
	not leak a reference on the subscription group.

2011-05-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c
	(infd_directory_node_get_and_link_session): Only call
	infd_directory_node_link_session() if the session is not yet linked,
	otherwise an assertion fails. This could happen if the
	infd_directory_iter_get_session() public API function was called
	when the session existed already.

2011-03-27  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.5.0 ===

	* NEWS: Update for release.

	* infinoted/Makefile.am: Distribute the manpage since it is not
	generated.

	* docs/reference/Makefile.am:
	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinfinity/Makefile.am;
	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am: Fix make distcheck with
	recent gtk-doc.

2011-02-23  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-note-plugin.h:
	* libinfinity/server/infd-note-plugin.h: Add typedefs for the function
	pointers used to be more friendly to binding generators.

2011-02-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-undo-grouping.c
	(inf_adopted_undo_grouping_class_init): Fix struct offset of the
	group_requests signal.

2011-01-30  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c (inf_text_session_get_xml_user_props):
	If the "selection" attribute is not set, default to zero. Otherwise an
	invalid selection might arise if the selection-length of a rejoined
	user is kept but caret-position is set to another value.

2011-01-30  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c
	(inf_text_gtk_view_expose_event_after_cb): Add a few assertions to
	make sure our internal state is OK.

2011-01-30  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-viewport.c
	(inf_text_gtk_viewport_remove_user): Remove remote cursor position
	indicator when the corresponding client leaves.

2011-01-30  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-viewport.c: Adapt remote cursor position
	indicator when the scrollbar's adjustment changes. This happens for
	example when GtkTextView lazily computes the height of the text.

2011-01-29  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-viewport.c: Fix display of remote cursor
	position in scrollbar with GTK+ 3, and make the marker a bit nicer.

2011-01-29  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c
	(inf_text_gtk_view_expose_event_after_cb): With GTK+ 3, fix remote
	cursors not being drawn if remote selections are not activated to be
	drawn.

2011-01-23  Armin Burgmeier  <armin@arbur.net>

	* all source files: Add 2011 to copyright years.

2011-01-23  Armin Burgmeier  <armin@arbur.net>

	* configure.ac:
	* libinfgtk.pc.in:
	* libinftextgtk.pc.in: Add a gtk_version variable for pkg-config and
	request the correct GTK+ version in the pkg-config file.

2011-01-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-group-private.h:
	* libinfinity/communication/inf-communication-group.c: Add a private
	_inf_communication_group_foreach_method() function.

	* libinfinity/communication/inf-communication-method.h:
	* libinfinity/communication/inf-communication-method.c:
	* libinfinity/communication/inf-communication-central-method.c: Change
	the return type of the _received vfunc to InfCommunicationScope,
	returning the scope given by the InfCommunicationObject target.

	* libinfinity/communication/inf-communication-registry.c
	(inf_communication_registry_received_cb): Relay any received messages
	with INF_COMMUNICATION_SCOPE_GROUP to connections in other networks of
	the same group.

2011-01-17  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-undo-grouping.c: Fix two typos in comments.

2011-01-17  Armin Burgmeier  <armin@arbur.net>

	* README: Add new gthread-2.0 dependency to the README file.

2011-01-14  Philipp Kern  <phil@0x539.de>

	* infinoted/Makefile.am:
	* infinoted/infinoted-0.5.man: add a manpage for infinoted

2011-01-01  Elliot Kroo  <elliot.kroo@gmail.com>

	* libinfinity/server/infd-filesystem-storage.c
	(infd_filesystem_storage_remove_rec): If g_unlink fails with EPERM
	then this can also mean that the file being unlinked is a directory,
	so also try to recurse in this case. This fixes node removal on Mac OS
	X.

2010-12-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c: Don't confuse dispatch list
	with timeout list on dispatch invocation.

	* libinfinity/common/inf-sasl-context.h:
	* libinfinity/common/inf-sasl-context.c:
	* libinfinity/common/Makefile.am: Add InfSaslContext, which provides
	a wrapper for Gsasl. It provides an asynchronous callback mechanism,
	implemented via an extra thread for each authentication session.

	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c:
	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-startup.c:
	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c:
	* infinoted/infinoted-pam.h:
	* infinoted/infinoted-config-reload.c: Replace Gsasl usage by
	InfSaslContext and adapt to API changes.

2010-12-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_terminate): If sending an authentication abort,
	then free the corresponding XML node afterwards.

	* libinfinity/server/infd-directory.c (infd_directory_dispose): Free
	the connections hash table.

	* libinfinity/server/infd-filesystem-storage.c
	(infd_filesystem_storage_storage_read_subdirectory): Close the DIR*
	returned by fdopendir().

	* infinoted/infinoted-run.c (infinoted_run_start): If the IPv6 server
	could start but the IPv4 server couldn't (or vice versa), then still
	free the error from the failing server.

2010-12-25  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-io.c: Fix a possible race condition.

2010-12-25  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c
	(inf_gtk_browser_view_browser_added): Remove two unused variables.

2010-12-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c (inf_standalone_io_wakeup):
	Make this actually work by writing to the writing end of the pipe, not
	to the reading end.

2010-12-14  Felix Kaser  <f.kaser@gmx.net>

	* libinftextgtk/inf-text-gtk-hue-chooser.c: Use get_preferred_width
	and get_preferred_height instead of size_request when building against
	recent enough GTK+ 3, fixing the build.

2010-11-27  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-io.c (inf_gtk_io_dispatch_func): Fix a crash when
	a dispatch handler is supposed to be called (Felix Kaser).

2010-11-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-simulated-connection.h:
	* libinfinity/common/inf-simulated-connection.c: Add
	INF_SIMULATED_CONNECTION_IO_CONTROLLED mode.

2010-11-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-simulated-connection.c
	(inf_simulated_connection_connect): Improve the docs to make it clear
	that the function needs only to be called once for both connections to
	be connected to each other.

2010-11-24  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c
	(inf_gtk_browser_view_browser_added): Check for browser status to be
	connected instead of connection status before doing initial root
	exploration. Otherwise it can happen that the browser is not yet ready
	for exploration in case it is still waiting for the server's welcome
	message (Felix Kaser).

2010-11-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-certificate-chain.h:
	* libinfinity/common/inf-chat-session.c:
	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-io.c:
	* libinfinity/common/inf-local-publisher.h:
	* libinfinity/common/inf-protocol.c:
	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c:
	* libinfinity/common/inf-xmpp-manager.c:
	* libinfinity/communication/inf-communication-factory.h:
	* libinfinity/communication/inf-communication-object.h:
	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/infc-explore-request.h:
	* libinfinity/client/infc-explore-request.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/adopted/inf-adopted-algorithm.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinfinity/adopted/inf-adopted-undo-grouping.c: Some documentation
	fixes.

2010-11-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_sasl_error): Don't assert that sasl session is
	set since it can happen that it isn't in case the SASL session cannot
	be initiated.

2010-11-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity.pc.in:
	* configure.ac: Require and link against gthread-2.0.

2010-10-31  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-record.c (infinoted_record_new): Initialize
	the record->records list to NULL.

2010-10-31  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-io.c: Change the watch interface slightly,
	add inf_io_add_dispatch() and inf_io_remove_dispatch() and require
	implementations to be thread-safe.

	* libinfinity/common/inf-standalone-io.c:
	* libinfgtk/inf-gtk-io.c: Adapt, and provide thread-safety.

	* libinfinity/common/inf-init.c: Call g_thread_init as a part of the
	libinfinity startup procedure.

	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-tcp-server.c:
	* libinftext/inf-text-session.c:
	* libinftextgtk/inf-text-gtk-view.c:
	* infinoted/infinoted-signal.h:
	* infinoted/infinoted-signal.c:
	* infinoted/infinoted-autosave.c:
	* infinoted/infinoted-directory-sync.c:
	* test/inf-test-browser.c:
	* test/inf-test-chat.c:
	* test/inf-test-tcp-connection.c: Adapt to the API changes.

2010-10-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c (infc_browser_disconnected):
	Discard the browser's chat session on disconnection.

2010-10-09  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-gtk-browser.c: Add a missing include.

2010-10-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_sax_end_element): Fix an assertion so that the
	ending top-level tag is allowed not to be stream:stream if the
	connection is going to be terminated. This can happen if the opening
	and closing XML tag is sent in one go so that both are processed by
	the parser. The XML handler for the start element will then terminate
	the connection. Bug #546.

2010-10-03  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-central-method.c
	(inf_communication_central_method_send_all): Make the code aware of
	the send callback modifying the connection list.

2010-10-03  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-remote-delete-operation.c
	(inf_text_remote_delete_operation_transform_split): When a remote
	delete operation is splitted, make sure to keep the recon order in the
	splitted operations. Also fix recon position index in the second
	operation.

	* test/session/test-53.xml:
	* test/replay/replay-11.record.xml: Add a test and a record which make
	libinfinity run into a failed assertion when reconstructing the delete
	operation without this being fixed.

2010-10-02  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-gtk-browser.c (main): Allow to open connections via
	their IP address when given as commandline arguments.

2010-10-02  Jesse van den Kieboom  <jessevdk@gnome.org>

	* libinfgtk/inf-gtk-browser-view.c:
	* libinftextgtk/inf-text-gtk-hue-chooser.c:
	* libinftextgtk/inf-text-gtk-view.c:
	* libinftextgtk/inf-text-gtk-viewport.c: Adapt for latest GTK+3.

2010-09-21  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.h:
	* libinftextgtk/inf-text-gtk-view.c: Add
	inf_text_gtk_view_set_show_remote_cursors(),
	inf_text_gtk_view_set_show_remote_selections() and
	inf_text_gtk_view_set_show_remote_current_lines().

	* libinftextgtk/inf-text-gtk-viewport.h:
	* libinftextgtk/inf-text-gtk-viewport.c: Add
	inf_text_gtk_viewport_set_show_user_markers().

2010-09-19  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/inf-gtk-certificate-dialog.c:
	* libinfgtk/inf-gtk-certificate-manager.c:
	* libinfgtk/inf-gtk-chat.c:
	* libinftextgtk/inf-text-gtk-hue-chooser.c: Fix the GTK+2 build (#545).

2010-09-19  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-main.c: Include <sys/types.h> and <sys/stat.h>,
	so that umask() is available (fixes the build on Ubuntu).

2010-09-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-tcp-server.c (infd_tcp_server_io): Fix a
	compiler warning.

2010-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/inf-gtk-certificate-dialog.c:
	* libinfgtk/inf-gtk-certificate-manager.c:
	* libinfgtk/inf-gtk-chat.c:
	* libinftextgtk/inf-text-gtk-hue-chooser.c: Adapt to recent changes in
	GTK+ 3.

2010-08-22  Jesse van den Kieboom  <jessevdk@gnome.org>

	* libinfinity/common/inf-protocol.h:
	* libinfinity/common/inf-protocol.c: Add
	inf_protocol_get_default_port().

	* infinoted/infinoted-options.c:
	* test/inf-test-browser.c:
	* test/inf-test-chat.c:
	* test/inf-test-daemon.c: Make use of the new function instead of
	hardcoding the port value.

2010-08-22  Jesse van den Kieboom  <jessevdk@gnome.org>

	* libinftextgtk/inf-text-gtk-hue-chooser.c
	(inf_text_gtk_hue_chooser_realize): Set correct user_data for correct
	window, fixing the behavior of the hue chooser.

2010-08-15  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Added a --with-gtk3 switch which makes libinfgtk and
	libinftexgtk build against GTK+ 3.

	* libinfgtk/inf-gtk-browser-model-filter.h:
	* libinfgtk/inf-gtk-browser-model-sort.h:
	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-store.h:
	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/inf-gtk-certificate-dialog.c:
	* libinfgtk/inf-gtk-certificate-manager.c:
	* libinfgtk/inf-gtk-certificate-view.c:
	* libinfgtk/inf-gtk-chat.c:
	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-hue-chooser.h:
	* libinftextgtk/inf-text-gtk-hue-chooser.c:
	* libinftextgtk/inf-text-gtk-view.h:
	* libinftextgtk/inf-text-gtk-view.c:
	* libinftextgtk/inf-text-gtk-viewport.h:
	* libinftextgtk/inf-text-gtk-viewport.c: Make libinfgtk and
	libinftextgtk compile with GTK+ 3. This involves adhering to the
	single include policy and replacing some sealed struct member accesses
	with their corresponding accessor functions.

2010-08-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-session.c (inf_chat_session_user_join,
	inf_chat_session_user_part): Set correct flags for userjoin and
	userpart messages.

2010-08-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-session.c
	(inf_chat_session_to_xml_sync): Fix sending chat backlog to clients
	which was broken since 2010-03-12.

2010-08-15  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-gtk-browser.c: Fixed a crash when closing the chat
	or session window while joining. Also do not attempt to rejoin with
	the same user name all the time if the user name is in use already.

2010-08-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-tcp-server.c: Add debugging code to observe
	badly-behaving accept(). There was a case where accept() returned a
	valid but non-connected socket which brought down the infinoted server
	due to getpeername failing. I want to find out more about when exactly
	this happens and how this can be catched instead of just fixing the
	symptoms.

2010-06-25  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_get_user_for_tag().

2010-06-05  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-move-operation.c
	(inf_text_move_operation_transform_insert,
	inf_text_move_operation_transform_delete): Make the delete
	transformation work correctly when deleting characters from within the
	selection, make the insert transformation not expand the selection
	when inserting at the selection bounds.

2010-06-05  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c:
	* libinftextgtk/inf-text-gtk-viewport.c: Avoid use of symbols not
	available in GTK+ 2.12.

2010-06-04  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Remove the VOID:UINT,UINT,OBJECT
	marshaller.

	* libinftext/inf-text-buffer.h:
	* libinftext/inf-text-buffer.c: Rename the insert-text and erase-text
	signals to text-inserted and text-erased, and make them RUN_FIRST
	signals. This does not require the signal to be emitted to insert or
	remove text, but if a modification to the buffer happens externally
	then the signal can (and should!) still be emitted afterwards. Also,
	turn the lengeth parameter of the text-erased signal to a
	InfTextChunk* chunk parameter, so that it is still possible to find
	out what text was deleted afterwards.

	* libinftextgtk/inf-text-gtk-buffer.c: Do not stop emission of
	GtkTextBuffer's insert-text and delete-range signals in our signal
	handlers. This allows other signal handlers to rely on proper signal
	emission and makes us handle recursive emissions correctly. 

	* libinftext/inf-text-default-buffer.c:
	* libinftext/inf-text-session.c:
	* infinoted/infinoted-directory-sync.c: Adapt for the API change.

2010-05-21  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-util.h:
	* infinoted/infinoted-util.c: Replaced
	infinoted_util_set_daemon_pid_file_proc() by
	infinoted_util_daemon_set_global_pid_file_proc(),
	infinoted_util_daemon_set_local_pid_file_proc(). Also add
	infinoted_util_daemon_pid_file_kill().

	* infinoted-main.c:
	* infinoted-options.c: Instead of setting the PID file directory
	directly, first try the global one and if that fails use the local
	one. This avoids a race condition which resulted from the previous use
	of access() to check whether the PID file directory is writable.
	These changes also fix a bug which prevented infinoted to launch in
	daemonized mode when the global PID file directory did not exist.

2010-05-08  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-options.c: Include signal.h to fix the build on
	Debian Lenny (#537).

2010-03-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.h:
	* libinfinity/common/inf-chat-buffer.c: Added a flags field to
	InfGtkChatBufferMessage indicating whether a message is a backlog
	message or not.

	* libinfgtk/inf-gtk-chat.c: Show backlog messages also if chat session
	is attached to widget after synchronization.

	* libinfinity/common/inf-chat-session.c:
	* test/inf-test-chat.c: Adapt for API changes.

2010-03-12  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c (inf_gtk_chat_init): Fix a typo in a
	comment.

2010-03-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/comon/inf-chat-buffer.c (inf_chat_buffer_get_message):
	Reversed the order in which messages are returned, so that the
	function does what the docs say.

	* libinfinity/common/inf-chat-session.c
	(inf_chat_session_to_xml_sync): Adapt to the API change.

2010-03-05  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-main.c: Call umask(077) explicitly after
	forking since libdaemon < 0.14 sets the mask to 0777.

2010-03-02  Eike Siewertsen  <e.siew@londeroth.org>

	* autogen.sh: Check for glibtoolize from OSX in addition to libtoolize
	* libinfinity/server/infd-filesystem-storage.c: use fdopendir
	work-around on Apple systems, too

2010-02-27  Armin Burgmeier  <armin@arbur.net>, Benjamin Herr  <ben@0x539.de>

	* libinftextgtk/inf-text-gtk-view.c: Fix rendering multi-selections
	far down a document, slightly increased minimum value of selection
	colors.

2010-02-26  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-reduce-replay.c: Make this compile on Windows (but
	not work yet).

2010-02-26  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-viewport.c: Fix redraw bugs.

2010-02-25  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/Makefile.am:
	* libinftextgtk/inf-text-gtk-viewport.h:
	* libinftextgtk/inf-text-gtk-viewport.c: Added InfTextGtkViewport,
	showing remote users' cursor positions in the scrollbar.

	* test/inf-test-gtk-browser.c: Show the functionality in
	inf-test-gtk-browser.

2010-02-21  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c: Highlight current line of remote
	users.

2010-02-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-session-proxy.c: Improved docs for
	infc_session_proxy_join_user().

2010-02-19  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c: Take TextView's left and right
	margin into account when drawing remote selections.

2010-02-19  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Don't play the first argument N times
	but every argument once.

2010-02-18  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c: Show remote selections.

2010-02-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in:
	* libinftext/inf-text-user.h:
	* libinftext/inf-text-user.c: Added a by_request parameter to the
	selection-changed signal.

	* libinftext/inf-text-move-operation.c:
	* libinftext/inf-text-session.c:
	* libinftextgtk/inf-text-gtk-buffer.c:
	* libinftextgtk/inf-text-gtk-view.c: Adapt for the API change.

2010-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c
	(inf_text_gtk_view_user_invalidate_cursor_rect): Convert to window
	coordinates before invalidating.

2010-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.c
	(inf_text_gtk_view_set_active_user): Readd previously active user
	correctly to list of users to track.

2010-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Added
	inf_xmpp_connection_get_tls_enabled() and the "tls-enabled" property.

2010-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_is_author_toggle(),
	inf_text_gtk_buffer_forward_to_author_toggle() and
	inf_text_gtk_buffer_backward_to_tag_toggle().

2010-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added the "show-user-colors"
	property and accessor functions.

2010-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-session-proxy.c
	(infc_session_proxy_unsubscribe_connection): Only send the
	"session-unsubscribe" message if the connection is still open.
	We might get to this point with a closed connection if a
	status::notify signal handler closes the session explicitely before
	our own signal handler ran (Jesse van den Kieboom).

2010-02-13  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c
	(inf_text_session_validate_user_props): Fix error domain for the
	"'caret' attribute is missing" error.

2010-02-13  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-view.h:
	* libinftextgtk/inf-text-gtk-view.c:
	* libinftextgtk/Makefile.am: Added InfTextGtkView, a class which draws
	remote cursors in a GtkTextView.

	* test/inf-test-gtk-browser.c: Make this show remote cursors.

2010-02-13  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c: When emitting
	"has_child_toggled" after the last node has been removed from a
	directory make sure that gtk_tree_model_iter_has_child() returns
	FALSE, and also that the other tree model functions skip the node to
	be removed.

2010-02-13  Jesse van den Kieboom  <jessevdk@gnome.org>

	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-store.h: Added
	inf_gtk_browser_store_set_connection_name() and
	inf_gtk_browser_store_clear_connection_error().

2010-02-13  Jesse van den Kieboom  <jessevdk@gnome.org>

	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-store.h: Added
	inf_gtk_browser_store_remove_connection().

2010-02-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c:
	* infinoted/infinoted-pam.c: Fixed compiler warnings.

2010-02-12  Armin Burgmeier  <armin@arbur.net>

	* all source files: Added 2010 to copyright years.

2010-02-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added
	infd_directory_foreach_connection().

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_AUTHENTICATION_DETAIL_ERROR_TRY_AGAIN.

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Added
	inf_xmpp_connection_reset_sasl_authentication(), implement gracefully
	abort of authentication.

	* infinoted/infinoted-config-reload.c: Set new SASL context and
	mechanisms for existing connections.

2010-02-11  Armin Burgmeier  <armin@arbur.net>
	
	* configure.ac: Use AC_USE_SYSTEM_EXTENSIONS, bump autoconf
	requirement to 2.60 to be able to make use of it. Check whether
	dirent.d_type and PAM_FAIL_DELAY exist.

	* libinfinity/server/infd-directory.c: Include config.h instead of
	defining _GNU_SOURCE manually, do lstat if d_type does not exist.

	* infinoted/infinoted-pam.c: Only set fail delay if
	HAVE_PAM_FAIL_DELAY is set.

2010-02-11  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c
	(inf_gtk_browser_view_status_icon_data_func,
	inf_gtk_browser_view_status_data_func): Handle
	INF_GTK_BROWSER_MODEL_DISCONNECTED in switch, to avoid a crash when
	adding disconnected connections to the browser (Jesse van den
	Kieboom).

2010-02-10  Benjamin Herr  <ben@0x539.de>, Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Check for SO_REUSEADDR.

	* libinfinity/server/infd-tcp-server.c: Set SO_REUSEADDR before
	calling bind() on server sockets. Also do not call
	infd_tcp_server_close() on error in infd_tcp_server_open() if the
	socket was bound already.

	* infinoted/infinoted-run.c: Only log errors on server startup if
	neither ipv4 nor ipv6 servers could be started. This is because
	SO_REUSEADDR apparently makes bind() work for both variants on the
	same port  even though a later listen() call will definitely fail.

2010-02-09  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-options.c:
	* infinoted/infinoted-startup.c: Fix stupid compilation errors without
	LIBINFINITY_HAVE_PAM.

2010-02-09  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c: Properly set GError in for invalid
	authentication-related options in infinoted_options_validate() so
	that for example config-reloading knows what is up.

2010-02-09  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-config-reload.c: Properly require authentication
	mechanism specified from newly loaded configuration.

2010-02-09  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-startup.c: Changed sasl callback to provide
	proper authentication error detail for server password authentication.

2010-02-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_NO_STORAGE.

	* libinfinity/server/infd-directory.c: Allow to pass NULL storage to
	directory in which case all nodes are kept in memory.

2010-02-07  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c
	(inf_test_text_replay_apply_operation_to_string): Handle the operation
	being a split operation, and apply both parts of it to the string in
	that case.

	* test/replay/replay-10.record.xml: Added a replay which requires this
	functionality.

2010-02-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-operation.c
	(inf_adopted_operation_get_concurrency_id): If the second operation is
	a split operation, then call the function on it, and reverse the
	result. This prevents every subclass to have to take that case into
	account.

	* libinfinity/adopted/inf-adopted-split-operation.c
	(inf_adopted_split_operation_get_concurrency_id): If both parts of the
	split operation agree, then return that. If one is none and the other
	has a decision, then return that decision. Only error out if the two
	IDs are contradictory.

	* test/replay/replay-08.record.xml:
	* test/replay/replay-09.record.xml: Added two records where
	get_concurrency_id for InfAdoptedSplitOperation is required (08 is a
	cut-down version of 09).

2009-12-28  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-reduce-replay.c:
	* test/Makefile.am: Added a tool to reduce a erroneous replay to a
	minimal testcase.

2009-12-27  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Reimplement using
	InfAdoptedSessionReplay.

2009-12-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-replay.h:
	* libinfinity/adopted/inf-adopted-session-replay.c:
	* libinfinity/adopted/Makefile.am: Added the InfAdoptedSessionReplay
	class, which can be used to replay a session recorded with
	InfAdoptedSessionRecord.

	* libinfinity/adopted/inf-adopted-session-record.c: Add a reference to
	InfAdoptedSessionReplay in the docs.

2010-01-31  Benjamin Herr  <ben@0x539.de>, Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Rename InfPostAuthenticationError to
	InfAuthenticationDetailError, added
	INF_AUTHENTICATION_DETAIL_ERROR_AUTHENTICATION_FAILED.

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c: Removed user-authenticated
	signals. Instead, allow the gsasl callback to use the new function
	inf_xmpp_connection_set_sasl_error() to provide further information
	regarding the failed authentication, which is sent to the clientside
	and can be queried, for example in error callbacks, on either side
	with inf_xmpp_connection_get_sasl_error(). The callback now needs to
	explicitly use inf_xmpp_connection_retry_sasl_authentication() to
	restart the authentication process. To make that possible, the client
	will now remember what sasl mechanisms are supported by the server.

	* infinoted/infinoted-config-reload.c:
	* infinoted/infinoted-pam.h:
	* infinoted/infinoted-pam.c:
	* infinoted/infinoted-run.c:
	* infinoted/infinoted-startup.c: Adapt to the above API changes.

2010-01-29  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-pam.c: Abort checking all groups early when an
	error happens even if the caller does not care, also localise strings
	properly and use proper quotation marks.

2010-01-29  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c:
	* infinoted/infinoted-pam.c: When an error happens while checking on
	a user after authentication, log it and also let the user know that
	something went wrong.

2010-01-28  Benjamin Herr  <ben@0x539.de>

	* libinfinity/server/infd-xmpp-server.c: Properly disconnect the
	post-auth signal handler when the server goes away before the
	connection either goes away or is done authenticating.

2010-01-27  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-xmpp-connection.c: Handle post-auth error
	separately from auth error and emit it instead of generic auth error.

2010-01-27  Benjamin Herr  <ben@0x539.de>

	* infinoted/Makefile.am:
	* infinoted/infinoted-startup.c:
	* infinoted/infinoted-pam.h:
	* infinoted/infinoted-pam.c: Shuffled pam functions into their own
	header and translation unit.

	* infinoted/infinoted-config-reload.c:
	* infinoted/infinoted-run.c: Connect the pam postauthentication
	callback to each new InfdXmppServer so that it might disallow clients
	that have been authenticated.

2010-01-27  Benjamin Herr  <ben@0x539.de>

	* libinfinity/inf-marshal.in:
	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Added user-authenticated
	signal that is emitted right before sasl authentication is finished
	successfully to give a last chance to interrupt it.

	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c: Added
	connection-user-authenticated signal that is emitted whenever the
	above signal is emitted for any connection to this server.

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added PostAuthentication error
	domain for authentication failures that happen during the above
	signals.

2010-01-23  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c:
	* infinoted/infinoted-startup.c: Added support for specifying a
	limited set of system users or groups that will be accepted after
	pam authentication.

	* libinfinity/common/inf-xmpp-connection.c: Added a todo comment that
	should probably be taken care of for the above changes not to suck.

2010-01-20  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-config-reload.c:
	* infinoted/infinoted-startup.c:
	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c: --pam is now --pam-service and
	requires an argument instead of using a gentoo-specific default; added
	the password pam options to config reloading.

2010-01-20  Benjamin Herr  <ben@0x539.de>

	* configure.ac:
	* libinfinity/inf-config.h.in:
	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c:
	* infinoted/infinoted-startup.c: Add option to use pam to check
	passwords instead of providing a server-wide one. No support for only
	allowing certain users yet.

2010-01-27  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-xml-util.h:
	* libinfinity/common/inf-xml-util.c: Added
	inf_xml_util_new_{error,node}_from_{node,error}() functions for
	[de]serializing GErrors to xml.

	* libinfinity/common/inf-session.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-session-proxy.c: Partially replaced manual
	[de]serializing of GErrors to xml with the above functions.

2010-01-22  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.c (infinoted_run_free): Avoid a runtime
	warning when freeing the InfinotedRun without having started it.

2010-01-11  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-browser.c:
	* test/inf-test-chat.c: Check the result of fgets(). Bug #523 (Philipp
	Kern).

2010-01-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_iter_is_valid(). Initial patch by Simon Veith.

2010-01-02  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-user.h:
	* libinftext/inf-text-user.c: Added inf_text_user_new(), to ease
	language bindings.

2009-12-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-undo-grouping.c
	(inf_adopted_undo_grouping_execute_request_cb): Also do cleanup if the
	request does not affect the buffer, but it was issued by the undo
	grouping's user. In that case that user's vector time increases, which
	might cause requests being dropped from its request log.

	* test/replay/replay-07.record.xml: Added a replay in which this
	caused a problem.

2009-12-24  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-undo-grouping.c
	(inf_adopted_undo_grouping_cleanup): Don't throw away requests
	prematurely, which might result in a failed assertion later when they
	are needed. This happened when undoing a large number of requests.

	* test/replay/replay-06.record.xml: Added a replay in which this
	scenario occurs.

2009-12-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-cert-util.h:
	* libinfinity/common/inf-certificate-chain.h:
	* libinfinity/common/inf-certificate-credentials.h:
	* libinfinity/common/inf-error.c:
	* libinfinity/common/inf-init.c:
	* libinfinity/common/inf-ip-address.c:
	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/server/infd-xmpp-server.h:
	* libinfgtk/inf-gtk-certificate-view.h: Include <unistd.h> before
	including <gnutls.h>, to make sure the definition of ssize_t is
	available also when compiling with MSVC.

	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/server/infd-tcp-server.c:
	* libinfinity/server/infd-filesystem-storage.c: #ifdef-out some
	variables not needed on Windows.

	* win32/libinfinity/libinfinity.def:
	* win32/libinftext/libinftext.def:
	* win32/libinfgtk/libinfgtk.def:
	* win32/libinftextgtk/libinftextgtk.def: Added module definition files
	to create proper import libraries with MSVC.

	* win32/libinfinity/inf-config.h:
	* win32/libinfinity/inf-marshal.h:
	* win32/libinfinity/inf-marshal.c:
	* win32/config.h: Add static versions of files that would otherwise be
	generated at the configure step, in order to be able to build
	libinfinity with MSVC.

	* win32/unistd.h: Added fake unistd.h, declaring ssize_t.

	* win32/libinfinity/libinfinity.vcproj:
	* win32/libinftext/libinftext.vcproj:
	* win32/libinfgtk/libinfgtk.vcproj:
	* win32/libinftextgtk/libinftextgtk.vcproj: Added MSVC project files
	for libinfinity.

	* win32/inf-test-browser/inf-test-browser.vcproj:
	* win32/inf-test-chat/inf-test-chat.vcproj:
	* win32/inf-test-chunk/inf-test-chunk.vcproj:
	* win32/inf-test-daemon/inf-test-daemon.vcproj:
	* win32/inf-test-gtk-browser/inf-test-gtk-browser.vcproj:
	* win32/inf-test-state-vector/inf-test-state-vector.vcproj:
	* win32/inf-test-tcp-connection/inf-test-tcp-connection.vcproj:
	* win32/inf-test-tcp-server/inf-test-tcp-server.vcproj:
	* win32/inf-test-text-cleanup/inf-test-text-cleanup.vcproj:
	* win32/inf-test-text-operations/inf-test-text-operations.vcproj:
	* win32/inf-test-text-replay/inf-test-text-replay.vcproj:
	* win32/inf-test-text-session/inf-test-text-session.vcproj:
	* win32/inf-test-xmpp-connection/inf-test-xmpp-connection.vcproj:
	* win32/inf-test-xmpp-server/inf-test-xmpp-server.vcproj: Added MSVC
	project files for its tests.

	* win32/libinfinity.sln: Added a MSVC solution file containing all the
	project files mentioned above.

2009-12-22  Armin Burgmeier  <armin@arbur.net>

	* test/Makefile.am: Added inf-test-xmpp-server to build.

	* test/inf-test-xmpp-server.c: Adapt to latest libinfinity API.

2009-12-20  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Set connection for users that joined
	later in the replay, to avoid the request being rejected.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.5.0.

	* docs/reference/libinfinity/libinfinity-0.5-docs.sgml:
	* docs/reference/libinfinity/libinfinity-0.5-overrides.txt:
	* docs/reference/libinfinity/libinfinity-0.5-sections.txt:
	* docs/reference/libinftext/libinftext-0.5-docs.sgml:
	* docs/reference/libinftext/libinftext-0.5-overrides.txt:
	* docs/reference/libinftext/libinftext-0.5-sections.txt:
	* docs/reference/libinfgtk/libinfgtk-0.5-docs.sgml:
	* docs/reference/libinfgtk/libinfgtk-0.5-overrides.txt:
	* docs/reference/libinfgtk/libinfgtk-0.5-sections.txt:
	* docs/reference/libinftextgtk/libinftextgtk-0.5-docs.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-0.5-overrides.txt:
	* docs/reference/libinftextgtk/libinftextgtk-0.5-sections.txt:
	* infinoted/Makefile.am:
	* libinfgtk/Makefile.am:
	* libinfinity/Makefile.am:
	* libinftext/Makefile.am:
	* libinftextgtk/Makefile.am: Bump API version to 0.5.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.4.0 ===

	* NEWS: Update for release.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Track used SASL mechanism,
	instead of using gsasl_mechanism_name(), since the latter is only
	available since gsasl 0.2.28.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-util.c (infinoted_util_logv): On Windows,
	convert the output from UTF-8 to the character set of the console.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-directory-sync.c
	(infinoted_directory_sync_add_session): Fix the build on Windows.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-session.c
	(inf_chat_session_receive_message): Accept messages not issued from
	the corresponding's user's connection on synchronization.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c: Change the wording of the
	check button in the certificate dialog, to make clear that it only
	affects whether to trust the certificate.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-session.c:
	* libinfinity/adopted/inf-adopted-session.c: Deny operation if the
	user has not joined from the connection from which the request is
	received.

2009-12-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Added a TODO comment
	about not considering translation against inactive users.

2009-12-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-filesystem-storage.c
	(infd_filesystem_storage_open): Specify O_CREAT when opening the file
	in writing mode.

2009-12-18  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-directory-sync.h:
	* infinoted/infinoted-directory-sync.c:
	* infinoted/Makefile.am: Added a new object which synchronizes the
	document tree to disk.

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c: Added the --sync-directory and
	--sync-interval command line and config file options.

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Create a InfinotedDirectorySync in case
	the corresponding options were provided. Bug #428.

2009-12-18  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-buffer.c (inf_text_buffer_create_iter): Fixed a
	typo in a documentation string.

2009-12-18  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_show_user_colors().

2009-12-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-filesystem-storage.c
	(infd_filesystem_storage_storage_read_subdirectory): If readdir_r does
	not report the type of the enumerated file, then find it out via
	lstat().

2009-12-18  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-signal.c: Replace C++ style comments by C style
	comments.

	* infinoted/infinoted-option.c: Fix #ifdef check, to avoid a warning.

2009-12-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c:
	* libinfinity/server/infd-xmpp-server.c: #undef ERROR on Windows. Some
	crazy Windows header defines it, but we want to use it as an
	identifier.

	* infinoted/infinoted-options.c:
	* infinoted/infinoted-signal.c:
	* infinoted/infinoted-util.c: Fix the build on Windows.

2009-12-16  Benjamin Herr  <ben@0x539.de>

	* libinfinity/server/infd-filesystem-storage.c: Try to ignore symlinks
	when reading directories or opening files.

2009-12-15  Benjamin Herr  <ben@0x539.de>

	* ChangeLog:
	* infinoted/infinoted-config-reload.c:
	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c:
	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c:
	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-startup.c: Enable requiring authentication via
	SASL PLAIN, giving a server-wide password via startup options.

	* libinfinity/common/inf-xmpp-connection.c: Perform multiple
	authentication attempts.

2009-12-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_notify_status_cb): Reset priv->position when the
	TCP connection was closed.
	(inf_xmpp_connection_clear): Reset priv->pull_data and priv->pull_len.

2009-12-14  Armin Burgmeier  <armin@arbur.net>

	* infinoted/Makefile.am: Create PID file directory via an empty _DATA
	variable, for make distcheck to pass.

2009-12-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Reset exploration flag for root
	node.

	* libinfinity/common/inf-xmpp-manager.h:
	* libinfinity/common/inf-xmpp-manager.c: Keep closed connections,
	handle changing addresses or ports.

	* libinfinity/common/inf-xml-connection.h:
	* libinfinity/common/inf-xml-connection.c: Added
	inf_xml_connection_open(), and a corresponding vfunc.

	* libinfinity/common/inf-xmpp-connection.c: Implement
	inf_xml_connection_open().

	* libinfinity/common/inf-discovery-avahi.c: Reopen existing
	connections, if any, instead of opening new connections.

	* libinfgtk/inf-gtk-browser-view.c: Reconnect when double-clicking an
	item with a disconnected browser.

	* libinfgtk/inf-gtk-browser-store.c: Keep undiscovered items if they
	have browser or error set.

2009-12-14  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c: Don't complain about a
	certificate having changed if the new certificate was issued by a CA.

2009-12-12  Benjamin Herr  <ben@0x539.de>

	* configure.ac: Added AM_SILENT_RULES, defaulting to off.

	* docs/reference/libinfinity/Makefile.am:
	* infinoted/infinoted-autosave.c:
	* infinoted/infinoted-note-plugin.c:
	* infinoted/infinoted-options.c:
	* infinoted/infinoted-record.c:
	* infinoted/infinoted-startup.c:
	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* libinfgtk/inf-gtk-browser-model-filter.c:
	* libinfgtk/inf-gtk-browser-model-sort.c:
	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/inf-gtk-certificate-dialog.c:
	* libinfgtk/inf-gtk-certificate-manager.c:
	* libinfgtk/inf-gtk-chat.c:
	* libinfinity/Makefile.am:
	* libinfinity/adopted/inf-adopted-algorithm.c:
	* libinfinity/adopted/inf-adopted-request-log.c:
	* libinfinity/adopted/inf-adopted-session-record.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-split-operation.c:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinfinity/adopted/inf-adopted-undo-grouping.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/infc-request-manager.c:
	* libinfinity/client/infc-session-proxy.c:
	* libinfinity/common/Makefile.am:
	* libinfinity/common/inf-chat-buffer.c:
	* libinfinity/common/inf-chat-session.c:
	* libinfinity/common/inf-session.c:
	* libinfinity/common/inf-tcp-connection-private.h:
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/common/inf-user-table.c:
	* libinfinity/common/inf-user.h:
	* libinfinity/common/inf-user.c:
	* libinfinity/common/inf-xml-util.c:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/common/inf-xmpp-manager.c:
	* libinfinity/inf-communication-central-method.c:
	* libinfinity/communication/inf-communication-group.c:
	* libinfinity/communication/inf-communication-joined-group.c:
	* libinfinity/communication/inf-communication-manager.c:
	* libinfinity/communication/inf-communication-registry.c:
	* libinfinity/inf-i18n.c:
	* libinfinity/inf-signals.h:
	* libinfinity/inf-signals.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-filesystem-storage.c:
	* libinfinity/server/infd-server-pool.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/server/infd-tcp-server.c:
	* libinfinity/server/infd-xmpp-server.c:
	* libinftext/inf-text-chunk.c:
	* libinftext/inf-text-default-buffer.c:
	* libinftext/inf-text-default-delete-operation.c:
	* libinftext/inf-text-default-insert-operation.c:
	* libinftext/inf-text-move-operation.c:
	* libinftext/inf-text-remote-delete-operation.c:
	* libinftext/inf-text-session.c:
	* libinftext/inf-text-undo-grouping.c:
	* libinftextgtk/inf-text-gtk-buffer.c:
	* libinftextgtk/inf-text-gtk-hue-chooser.c:
	* test/inf-test-browser.c:
	* test/inf-test-chat.c:
	* test/inf-test-gtk-browser.c:
	* test/inf-test-tcp-connection.c:
	* test/inf-test-xmpp-connection.c:
	* test/util/inf-test-util.c: Fixed warnings.

	To that effect, introduced wrappers for glib functions with funny
	types and did a lot of casting-const-away or casting between object
	pointers and function pointers with more indirection, so that gcc
	would not notice it, and a few other minor changes. Also some
	whitespace. Everything appears to build with -Werror now for at least
	the following CFLAGS: -pedantic -ansi -Wall -Wextra -Wwrite-strings
	-Wpointer-arith -Wcast-qual -Wno-missing-field-initializers
	-Wdeclaration-after-statement -Wbad-function-cast -Wstrict-prototypes
	-Wmissing-prototypes -Wmissing-declarations -Wnested-externs
	-Waggregate-return -Wno-unused-parameter.

2009-12-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-method.h:
	* libinfinity/communication/inf-communication-method.c:
	* libinfinity/communication/inf-communication-group.h:
	* libinfinity/communication/inf-communication-group.c: Removed the
	except parameter for sending a message to the whole group.

	* libinfinity/communication/inf-communication-central-method.c: Adapt.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Removed the except parameter for
	inf_session_send_to_subscriptions().

	* libinfinity/common/inf-chat-session.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinftext/inf-text-session.c:
	* test/inf-test-text-replay.c: Adapt.

2009-12-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:OBJECT,UINT marshaller.

	* libinfinity/server/infd-session-proxy.h:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/server/infd-directory.c: Send seqs in the form
	"seq-id/seq-num". This allows to send the same message to the whole
	group, not requiring an extra message for the host which issued the
	request. Added the seq_id parameter to InfdSessionProxy's
	add-subscription signal.

	* libinfinity/client/infc-request-manager.h:
	* libinfinity/client/infc-request-manager.c:
	* libinfinity/client/infc-session-proxy.h:
	* libinfinity/client/infc-session-proxy.c:
	* libinfinity/client/infc-browser.c: Correctly deal with this kind of
	seqs; pass sequence-id from welcome message to request manager and
	session proxy and added the sequence-id property for
	InfcRequestManager.

2009-12-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_NO_WELCOME_MESSAGE and
	INF_DIRECTORY_ERROR_VERSION_MISMATCH error codes.

	* libinfinity/common/inf-protocol.h:
	* libinfinity/common/inf-protocol.c:
	* libinfinity/common/Makefile.am: Added this new file containing
	common protocol properties used by both client and server. Currently
	contains a function returning the Infinote protocol version
	implemented by libinfinity, and a function to split the version
	string.

	* libinfinity/server/infd-directory.c: Send a welcome message to the
	client, telling it the protocol version the server uses and a sequence
	identifier.

	* libinfinity/client/infc-browser.c: Only activate itself after the
	welcome message was received, produce an error if it did not arrive
	after 5 seconds. Remember the sequence identifier which will be used
	in a followup patch.

2009-12-10  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-error.c: Include gsasl.h so that
	gsasl_strerror() is not assumed to return int and consequently works
	on non-32bit platforms, fixing a crash.

2009-12-10  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-config-reload.c:
	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c:
	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c:
	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-startup.c: Added --password/-P option to require
	a password from clients via GNU SASL 'PLAIN' authentication.

2009-12-10  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Add public inf_gsasl_error_quark(),
	inf_gsasl_set_error() for error codes returned from GNU GSASL
	functions.

	* libinfinity/common/inf-xmpp-connection.c: Use
	inf_gsasl_error_set_error() instead of manually setting errors for
	gsasl error codes.

2009-12-10  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-tcp-connection.h:
	* libinfinity/common/inf-tcp-connection.c: Add functions to create new
	connections: inf_tcp_connection_new(),
	inf_tcp_connection_new_and_open().

	* libinfinity/common/inf-discovery-avahi.c:
	* test/inf-test-browser.c:
	* test/inf-test-chat.c:
	* test/inf-test-tcp-connection.c:
	* test/inf-test-xmpp-connection.c:
	* libinfinity/common/inf-tcp-connection.c: Use
	inf_tcp_connection_new(), inf_tcp_connection_new_and_open() instead of
	manually creating new InfTcpConnection objects.

2009-12-08  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c (inf_text_session_remove_local_user):
	Fix a crash a user's selection changes after it becomes non-local.

2009-12-08  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_set_modified): Notify the "modified" property.

2009-12-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Move root node destruction to
	finalize.

2009-12-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added the "status" property,
	infc_browser_get_status() and the "error" signal. Keep connection
	around if it is closed, to allow easy reconnections.

	* libinfgtk/inf-gtk-browser-model.h: Added
	INF_GTK_BROWSER_MODEL_DISCONNECTED status.

	* libinfgtk/inf-gtk-browser-store.c: Drop connection bookkeeping, keep
	browser alive when it reaches INFC_BROWSER_DISCONNECTED status.

	* test/inf-test-browser.c:
	* test/inf-test-gtk-browser.c: Simplify the code by making use of the
	new API.

	* libinfinity/communication/inf-communication-manager.c: Added a
	TODO comment questioning whether we should continue to allow joining
	groups with connections with status INF_XML_CONNECTION_OPENING.

2009-12-07  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Added an Undo Grouping for each user in
	the replay, to test that undo grouping can at least handle all cases.

	* libinfinity/adopted/inf-adopted-undo-grouping.c: Fixed some bugs
	which showed up when replaying test/replays/.

2009-12-07  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Allow UTF-8 input files.

2009-12-05  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added a BOOL:OBJECT,OBJECT marshaller.

	* libinfinity/adopted/inf-adopted-undo-grouping.h:
	* libinfinity/adopted/inf-adopted-undo-grouping.c:
	* libinfinity/adopted/Makefile.am: Added the #InfAdoptedUndoGrouping
	class. It allows to group requests to be undone at the same time.

	* libinftext/inf-text-undo-grouping.h:
	* libinftext/inf-text-undo-grouping.c:
	* libinftext/Makefile.am: Added a specialization of that class for
	text operations.

2009-12-05  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.h: Removed INF_TEXT_TYPE_SESSION_STATUS
	define as it's not used.

	* libinftext/inf-text-chunk.c: Removed commented-out code to serialize
	a chunk to/from XML.

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_class_init): Fixed a typo in the signal
	documentation.

2009-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_active_user_notify_status_cb): Added a TODO
	comment about unsetting active-user when it gets unavailable.

2009-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request-log.c: Added the
	"add-request" signal.

2009-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c: Made
	inf_adopted_algorithm_translate_request() public.

2009-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.h:
	* libinfinity/adopted/inf-adopted-session.c: Allow repetitive requests
	by sending a num="n" attribute in the <request/> message. Add a guint
	parameter to inf_adopted_session_undo() and inf_adopted_session_redo()
	to undo or redo multiple requests at once.

	* test/inf-test-gtk-browser.c: Adapt to the API change.

2009-12-01  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-config-reload.c: Properly wrap reference to
	startup->options->daemonize in #ifdef LIBINFINITY_HAVE_LIBDAEMON.

2009-11-30  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Immediately write an empty
	session to disk on sync-in, and refuse sync-in if that fails.

2009-11-30  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added INF_SESSION_PRESYNC status,
	and the inf_session_synchronize_from() function. Require setting
	status at construction.

	* libinfinity/common/inf-chat-session.h:
	* libinfinity/common/inf-chat-session.c (inf_chat_session_new): Added
	status parameter.

	* libinfinity/server/infd-note-plugin.h:
	* libinfinity/client/infc-note-plugin.h: Added a status parameter to
	the session_new function.

	* libinftext/inf-text-session.h:
	* libinftext/inf-text-session.c: Added a status parameter to
	inf_text_session_new() and inf_text_session_new_with_user_table().

	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/client/infc-browser.c:
	* libinftext/inf-text-session.c:
	* test/inf-test-gtk-browser.c:
	* test/inf-test-text-replay.c:
	* test/inf-test-text-session.c: Adapt to the API change.

2009-11-30  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-autosave.c (infinoted_autosave_remove_session):
	Disconnect from the notify::modified signal handler, preventing a
	crash when the autosaver is disabled at runtime.

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-config-reload.h:
	* infinoted/infinoted-config-reload.c:
	* infinoted/Makefile.am: Added a new file which handles reloading
	infinoted's configuration at runtime.

	* infinoted/infinoted-signal.c: Call it on SIGHUP (#509).

	* infinoted/infinoted-main.c (infinoted_main_run): After InfinotedRun
	terminates, check run->startup->options->daemonize, not
	startup->options->daemonize, since config reload might have
	invalidated the latter.

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-autosave.c (infinoted_autosave_walk_directory):
	Make this actually work, by initializing child before using it. This
	is used only when adding an autosaver at runtime.

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-server-pool.h:
	* libinfinity/server/infd-server-pool.c: Added
	infd_server_pool_remove_server() and
	infd_server_pool_foreach_server(). Changed semantics so that when a
	server is closed it is no longer removed automatically from the pool.

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Adapt to that, and remove a server from
	the pool if infd_tcp_server_open() failed (which it normally does not
	since we have bound it already, but just to be sure).

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/server/infd-xmpp-server.c: Allow changing credentials,
	SASL context and SASL mechanisms at runtime.

	* libinfinity/server/infd-directory.c: Allow setting a new storage
	backend at runtime.

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-creds.c (READ_FUNC_IMPL): Fixed a memory leak:
	Don't leak the data variable.

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-certificate-credentials.h:
	* libinfinity/common/inf-certificate-credentials.c:
	* libinfinity/common/Makefile.am: Added a wrapper for
	gnutls_certificate_credentials_t which does reference counting.

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c: Use InfCertificateCredentials
	instead of gnutls_certificate_credentials_t.

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-creds.c:
	* infinoted/infinoted-dh-params.h:
	* infinoted/infinoted-dh-params.c:
	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-startup.c: Adapt to the changed API.

2009-11-29  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-util.h: Added a TODO comment about moving the
	logging functions to an extra file.

	* infinoted/infinoted-dh-params.h:
	* infinoted/infinoted-dh-params.c:
	* infinoted/Makefile.am: Renamed infinoted_run_ensure_dh_params() to
	infinoted_dh_params_ensure() and moved this to an extra file.

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Adapt.

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-util.h:
	* infinoted/infinoted-util.c: Added infinoted_util_set_errno_error()
	and infinoted_util_set_daemon_pid_file_proc().

	* infinoted/infinoted-options.c: Added the -D option to kill a
	daemonized process.

	* infinoted/infinoted-main.c: Use
	infinoted_util_set_daemon_pid_file_proc().

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-main.c: Tell parent process whether PID file
	creation failed or not.

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-main.c: Change the location of the PID file to
	localstatedir/run, append libinfinity API version to PID file name.

	* infinoted/Makefile.am: Create directory for PID file on install.

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-util.c (infinoted_util_logv): Put an extra
	newline after the log message.

	* infinoted/infinoted-note-plugin.c:
	* infinoted/infinoted-run.c:
	* infinoted/infinoted-signal.c:
	* infinoted/infinoted-startup.c:
	* infinoted/infinoted-main.c: Remove newline from calls to
	infinoted_util_log_*() to prevent it from appearing in the syslog.

2009-11-28  Benjamin Herr  <ben@0x539.de>

	* infinoted-util.h:
	* infinoted-util.c: Added infinoted_util_log_{error,warning,info} that
	delegate to either fprintf(stderr, ...), or daemon_log with the proper
	priority when building with libdaemon.

	* infinoted-main.c:
	* infinoted-note-plugin.c:
	* infinoted-signal.c:
	* infinoted-startup.c: Use infinoted_util_log_{error,warning,info}
	instead of fprintf(stderr, ...).

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-signal.c (infinoted_signal_terminate): Fixed
	indentation.

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Added infinoted_run_ensure_dh_params(),
	take ownership of startup.

	* infinoted/infinoted-startup.c (infinoted_startup_load): Fixed
	documentation comment stating that this takes care about generating DH
	params. It does not anymore, the code has moved to InfinotedRun.

	* infinoted/infinoted-main.c: Adapt to startup ownership change in
	InfinotedRun.

2009-11-28  Benjamin Herr  <ben@0x539.de>

	* infinoted/infinoted-main.c: When daemonizing, write the pid file to
	$HOME/.infinoted/infinote.pid if the default location is not writable.

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-options.c: Allow passing NULL argc and argv in
	which case options are only read from config file.

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-signal.h:
	* infinoted/infinoted-signal.c: Implemented serial signal handling
	via libdaemon, handle SIGQUIT and SIGHUP signals. Bug #507 (Yarek
	"Fx3" Tyshchenko).

2009-11-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c
	(inf_discovery_avahi_create_client): Pass the error variable to the
	avahi_client_new() call, not NULL.

2009-11-25  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Check for libdaemon presence.

	* libinfinity/inf-config.h.in: Add a LIBINFINITY_HAVE_LIBDAEMON entry.

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c: Added a daemonize option.

	* infinoted/infinoted-main.c: Fork and create a PID file if the
	daemonize option is given, and libdaemon support is present. Bug
	#507 (Yarek "Fx3" Tyshchenko).

	* infinoted/Makefile.am: Link against libdaemon.

	* docs/reference/libinfinity/compiling.sgml:
	* README: Mention libdaemon as an optional dependency for the package.

2009-11-25  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-note-plugin.c: Fixed the build, broken by my
	last commit.

2009-11-24  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-note-plugin.c: Fixed some strings.

2009-11-23  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-record.h:
	* infinoted/infinoted-record.c:
	* infinoted/Makefile.am: Moved the session recording code to this new
	source file.

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Use the new file, removed the equivalent
	code from this file.

2009-11-23  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-util.h:
	* infinoted/infinoted-util.c:
	* infinoted/Makefile.am: Added this new source file, containing
	infinoted_util_create_dirname(), moved from infinoted-startup.

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-creds.c (infinoted_creds_create_credentials):
	Don't set DH params.

	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-startup.c: Don't load DH params in startup.

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Load DH params in run instead, and set
	them for the credentials after loading. Also bind the server sockets
	in _new() before starting the server. Create DH params just before
	starting it. This prepares for the upcoming daemonizing; the server
	should do all non-blocking work that might fail before fork()ing (so
	that an error message can be reported), and potentially blocking
	work (DH params generation) after fork()ing (so that it does not the
	block boot process).

	* infinoted-main.c: Adapt to infinoted_run_start() not taking an error
	argument anymore.

2009-11-23  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-tcp-server.h:
	* libinfinity/server/infd-tcp-server.c: Added infd_tcp_server_bind(),
	and a INFD_TCP_SERVER_BOUND state.

	* libinfinity/server/infd-xmpp-server.c: Treat INFD_TCP_SERVER_BOUND
	the same as INFD_TCP_SERVER_CLOSED.

2009-11-23  Armin Burgmeier  <armin@arbur.net>

	* test/session/test-52.xml:
	* test/session/Makefile.am: Added one more test which requires recon
	in remote delete operations.

2009-11-22  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-chat-buffer.c
	(inf_chat_buffer_reserve_message): Properly set offset into allocated
	messages when prepending a new message.

2009-11-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.c
	(inf_chat_buffer_reserve_message): Return the new message in case we
	wrap around, not another one.

2009-11-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user.h:
	* libinfinity/common/inf-user.c: Added the set-status signal which
	allows to access the previous user status.

	* libinfinity/common/inf-chat-session.c: Don't emit a new message
	userjoin message for each active->inactive and inactive->active user
	status change.

2009-11-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c:
	* libinftext/inf-text-session.c: Made some clarifying comments about
	implicit user activation and flushing pending requests.

2009-11-18  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c (inf_gtk_chat_commit_message): Fixed
	parantheses so that an emote message is only triggered when there is
	/me at the beginning, not when the fourth character is whitespace.

2009-11-17  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c (inf_gtk_chat_commit_message): Send
	messages beginning with /me as emote messages.
	(inf_gtk_chat_init): Fix a compiler warning.

2009-11-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-filesystem-storage.h:
	* libinfinity/server/infd-filesystem-storage.c: Fixed directory
	deletion on Windows. Bug #501.

2009-11-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c
	(infd_directory_node_name_equal): Don't always return TRUE.
	(infd_directory_handle_subscribe_ack): Use existing session and
	session proxy to notify client about cancellation in case the parent
	node was removed, instead of creating a new proxy.

2009-11-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_INVALID_NAME error code.

	* libinfinity/server/infd-directory.c
	(infd_directory_node_name_equal): Use Unicode-aware case-insensitive
	comparison.
	(infd_directory_node_is_name_available): Don't allow nodes with '/' in
	the name.

	* libinfinity/server/infd-filesystem-storage.c: Don't allow empty path
	components.

2009-11-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xml-util.c: Added documentation comments.

2009-11-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Check for non-NULL iter in
	infc_browser_return_if_iter_fail() and
	infc_browser_return_val_if_iter_fail().

2009-11-11  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c: Avoid the use of
	gtk_entry_get_text_length() because this is only available since GTK+
	2.14.

2009-11-11  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added the "saturation" and
	"value" properties, and the
	inf_text_gtk_buffer_set_saturation_value(),
	inf_text_gtk_buffer_get_saturation(), inf_text_gtk_buffer_get_value().

2009-11-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.c (inf_chat_buffer_finalize):
	Take into account that we may have preallocated space at the beginning
	of the buffer, so don't try to free the text of all entries from the
	beginning, avoiding a crash.

2009-11-10  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c (inf_gtk_chat_init): Set indentation of
	wrapped lines to 12 pixels.

2009-11-10  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c (inf_gtk_chat_init): Wrap text in the chat
	widget.

2009-11-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c
	(infd_directory_handle_subscribe_ack): Fix a crash in the ADD_NODE
	case introduced by my last change.

2009-11-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Fix crash when session could
	not initially be saved in response to an add-node request with
	initial-subscribe set. This fixes a crash on creating documents with
	names '.', '..'. Still not handled properly for sync-in.

2009-11-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.c: Added missing paranthesis to
	constructs like (priv->first_message + n) % priv->size, fixing a crash
	when the buffer starts to wrap around.

2009-11-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.c: Make sure to scroll to bottom initially,
	and keep bottom row in viewport visible on size change, instead of top
	row.

2009-11-08  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-chat-session.c
	(inf_chat_session_message_from_xml): Fixed bytes/chars mixup.

2009-11-08  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.c: Enable chat.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.h:
	* libinfgtk/inf-gtk-chat.c: Added inf_gtk_chat_get_active_user() as a
	complement to inf_gtk_chat_set_active_user().

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c (inf_tcp_connection_open):
	Fix the condition for closing an existing socket. Spotted by Gabríel
	A. Pétursson.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c
	(inf_gtk_browser_store_tree_model_get_column_type): Handle the case
	when index is INF_GTK_BROWSER_MODEL_COL_NAME.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/libinfinity/compiling.sgml: Added a chapter about
	compiling libinfinity.

	* docs/reference/libinfinity/libinfinity-0.4-docs.sgml: Added it to
	the documentation.

	* docs/reference/libinfinity/Makefile.am: Added it to the build.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Removed the --enable-traffic-output option.

	* libinfinity/common/inf-xmpp-connection.c: Add a global boolean
	variable called INF_XMPP_CONNECTION_PRINT_TRAFFIC instead of a #define
	with the same name.

	* libinfinity/common/inf-init.c: Set that variable in inf_init() based
	on the presence of the environment variable
	LIBINFINITY_DEBUG_PRINT_TRAFFIC. Bug #502.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_initiate): Removed commented-out try to allow
	non-printable characters via XML entities.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection (inf_tcp_connection_error):
	Fix a typo in a comment.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Don't crash if the
	underlying TCP connection goes down in an XML parser callback. This
	also involved simplifying the code a bit by introducing an additional
	state variable that tracks whether we are currently in an XML
	parser callback or not.

2009-11-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session-proxy.c
	(infd_session_proxy_set_property): When connecting to the "close"
	signal of a new session, connect before the default signal handler,
	not after, so that our signal handler can still figure out the
	synchronization status of the subscribed connections, to avoid sending
	"session-close" if the sync is/was in progress. Bug #499.

2009-11-06  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-xml-util.c: In inf_xml_util_add_child_text,
	only escape the characters which are actually forbidden by XML, not
	newlines and friends.

2009-11-06  Benjamin Herr  <ben@0x539.de>

	* libinfinity/common/inf-xml-util.h: 
	* libinfinity/common/inf-xml-util.c:
	* docs/reference/libinfinity/libinfinity-0.4-sections.txt: Added
	inf_xml_util_add_child_text and inf_xml_util_get_child_text which get
	the text content of an xml element while encoding or decoding
	unprintable characters as child elements.

	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* libinfinity/common/inf-chat-session.c:
	* libinftext/inf-text-chunk.c:
	* libinftext/inf-text-session.c:
	* test/util/inf-test-util.c:
	Use inf_xml_util_add_child_text and inf_xml_util_get_child_text
	instead of using the libxml2 calls directly. Bug #499.

2009-10-26  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c
	(inf_gtk_certificate_manager_certificate_func): Don't crash if a
	certificate of a known host does not have a hostname set. Ignore the
	certificate instead, because we can't identify it with a host
	properly. Bug #484.

2009-10-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c
	(inf_standalone_io_io_watch): Update event pointers after realloc.
	This fixes sporadic disconnections when there are more than two
	clients on a Windows infinoted.

2009-10-12  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-chat.h:
	* libinfgtk/inf-gtk-chat.c: Added the InfGtkChat class, a widget to
	show the conversation of an InfChatSession and to write messages if a
	local user has joined the session.

	* libinfgtk/Makefile.am: Added the new files to the build.

	* test/inf-test-gtk-browser.c: When connecting to a host, subscribe to
	its chat and open a window showing a InfGtkChat to make use of it.

2009-10-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfgtk/inf-gtk-io.c: Minor documentation fixes.

2009-10-09  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-chat.c: Added simple command-line based chat client
	as a test for InfChatSession.

	* test/inf-test-daemon.c: Enable the chat on the server.

	* test/Makefile.am: Added the file to the build.

2009-10-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.c
	(inf_chat_buffer_reserve_message): Fixed logic for first inserted
	message and fixed return value when the first message is reordered in
	memory.

	* libinfinity/common/inf-chat-session.c
	(inf_chat_session_message_from_xml): Don't require the "type"
	attribute being set but default to INF_CHAT_BUFFER_MESSAGE_NORMAL if
	it isn't. This is compatible to the way the inverse function,
	inf_chat_session_message_to_xml(), generates XML messages.

	* libinfinity/client/infc-browser.c
	(infc_browser_communication_object_sent): Handle correctly the case
	when the outgoing message has no ID set (chat subscription).

2009-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.c (inf_chat_buffer_get_size):
	Added a formal description of the return type in the documentation
	comment.

2009-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-session.c: Make InfChatSession's
	description appear in the documentation.

2009-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_subscribe_chat(),
	infc_browser_get_subscribe_chat_request() and
	infc_browser_get_chat_session(). This handles the client-side part of
	subscribing to a server's global chat.

	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-view.c: Ignore chat subscriptions in
	begin-subscribe and subscribe-session signal handlers.

2009-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added the
	INFD_DIRECTORY_ERROR_CHAT_DISABLED error code which is generated when
	a client tries to subscribe to a chat that is disabled on the server.

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added
	infd_directory_enable_chat(), infd_directory_get_chat_session() and
	handle <subscribe-chat/> requests from clients.

2009-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-chat-buffer.h:
	* libinfinity/common/inf-chat-buffer.c: Added the InfChatBuffer class.
	This is an InfBuffer-implementing class that holds chat messages in a
	ring-like structure (new messages replace old ones when a certain
	message size has been exceeded).

	* libinfinity/common/inf-chat-session.h:
	* libinfinity/common/inf-chat-session.c: Added the InfChatSession
	class which is a session allowing joined users to exchange messages.

	* libinfinity/common/Makefile.am: Added the new files to the build.

2009-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-manager.c: Fixed a typo
	in a comment.

2009-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Declared the iter member in the
	InfcBrowserIterGetSyncInRequestsForeachData,
	InfcBrowserIterGetNodeRequestForeachData and
	InfcBrowserIterGetExploreRequestForeachData structs as const to avoid
	compiler warnings.

2009-10-08  Armin Burgmeier  <armin@arbur.net>

	* autogen.sh: Updated autogen.sh from gnome-common. Bug #476.

2009-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session-proxy.c: Fixed the documentation
	comment of the infd_session_proxy_get_session() function.

2009-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c
	(infd_directory_handle_remove_node): Fixed the error domain of the
	error generated when attempting to remove the root node.

2009-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-manager.c:
	* libinfinity/common/inf-init.c:
	* libinfinity/common/inf-standalone-io.c:
	* libinfinity/common/inf-xmpp-manager.c:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/infc-explore-request.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-filesystem-storage.c:
	* libinfinity/server/infd-tcp-server.c: Fixed a few documentation
	comments.

2009-06-03  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c (inf_text_session_request_to_xml):
	For delete operations, don't assert that at least one segment exists.
	This avoids a crash when synchronizing a zero-length delete operation.

2009-05-13  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk.pc.in: Fixed "Name:" field. This is libinftextgtk, not
	libinftext.

2009-05-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Made several InfcBrowserIter
	arguments const.

2009-05-02  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c: Fixed a typo in a comment.

2009-05-02  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-browser.c: Connect after the default handler on
	the connection's notify::status, to give the communication method a
	chance to register the connection with the registry before we try to
	send stuff through it.

2009-05-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_ROOT_NODE_REMOVE_ATTEMPT error.

	* libinfinity/server/infd-directory.c
	(infd_directory_handle_remove_node): Produce the newly introduced
	error if a client attempts to remove the root node. This fixes bug
	#442 (Gregory Haynes).
	(infd_directory_remove_node): Added a g_return_val_if_fail() if a
	the root node is attempted to be removed.

	* libinfinity/client/infc-browser.c (infc_browser_remove_node): Added
	a g_return_val_if_fail() if the root node is attempted to be removed.

2009-04-26  Armin Burgmeier  <armin@arbur.net>

	* README: Added some notes about development of libinfinity.

2009-04-26  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.4.0.

	* docs/reference/libinfinity/libinfinity-0.4-docs.sgml:
	* docs/reference/libinfinity/libinfinity-0.4-overrides.txt:
	* docs/reference/libinfinity/libinfinity-0.4-sections.txt:
	* docs/reference/libinftext/libinftext-0.4-docs.sgml:
	* docs/reference/libinftext/libinftext-0.4-overrides.txt:
	* docs/reference/libinftext/libinftext-0.4-sections.txt:
	* docs/reference/libinfgtk/libinfgtk-0.4-docs.sgml:
	* docs/reference/libinfgtk/libinfgtk-0.4-overrides.txt:
	* docs/reference/libinfgtk/libinfgtk-0.4-sections.txt:
	* docs/reference/libinftextgtk/libinftextgtk-0.4-docs.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-0.4-overrides.txt:
	* docs/reference/libinftextgtk/libinftextgtk-0.4-sections.txt:
	* infinoted/Makefile.am:
	* libinfgtk/Makefile.am:
	* libinfinity/Makefile.am:
	* libinftext/Makefile.am:
	* libinftextgtk/Makefile.am: Bump API version to 0.4.

	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am: Clear .types file
	correctly on distclean.

2009-04-24  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.3.0 ===

	* NEWS: Update for release.

2009-04-24  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-i18n.c: Change gettext directory from lib/locale to
	share/locale on Windows.

2009-04-24  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c:
	* libinfinity/server/infd-directory.c: Updated a few comments.

2009-04-24  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/api_version.xml.in.in: Moved from api_version.xml.in.
	* docs/reference/version.xml.in.in: Moved from version.xml.in.

	* docs/reference/Makefile.am: Generate (api_)version.xml from
	(api_)version.xml.in by removing the trailing newline. This is to
	prevent that newline from appearing in the docbook XML when
	substituting the external entities.

	* configure.ac: Generate docs/reference/(api_)version.xml.in.

2009-04-22  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/libinftext/libinftext-0.3-docs.sgml:
	* docs/reference/libinftext/libinftext-0.3-overrides.txt:
	* docs/reference/libinftext/libinftext-0.3-sections.txt:
	* docs/reference/libinfgtk/libinfgtk-0.3-docs.sgml:
	* docs/reference/libinfgtk/libinfgtk-0.3-overrides.txt:
	* docs/reference/libinfgtk/libinfgtk-0.3-sections.txt:
	* docs/reference/libinftextgtk/libinftextgtk-0.3-docs.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-0.3-overrides.txt:
	* docs/reference/libinftextgtk/libinftextgtk-0.3-sections.txt: Moved
	from the unversioned files.

	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am: Adapted DOC_MODULE
	accordingly.

2009-04-21  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/api_version.xml.in: Added another external entity for
	the API version. There is still one newline too much at the end in the
	generated file, but I have currently no idea how to get rid of it.

	* configure.ac: Generate docs/reference/api_version.xml.

	* libinfinity/Makefile.am: Added inf-marshal.in to EXTRA_DIST instead
	of dist_pkgdata_DATA, so that it is not installed.

	* libinfinity/common/inf-discovery.h: Fixed a typo in a parameter
	name.

	* docs/reference/libinfinity/libinfinity-0.3-docs.sgml:
	* docs/reference/libinfinity/libinfinity-0.3-overrides.txt:
	* docs/reference/libinfinity/libinfinity-0.3-sections.txt: Moved from
	the non-versioned files for parallel installation of the
	documentation. This requires renaming these files with every API
	version bump. The other libraries (libinftext, libinfgtk,
	libinftextgtk) will follow soon.

	* docs/reference/libinfinity/Makefile.am: Changed DOC_MODULE to
	libinfinity-0.3 for parallel installation.

	* docs/reference/libinftext/libinftext-docs.sgml:
	* docs/reference/libinfgtk/libinfgtk-docs.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-docs.sgml: Include the
	new external entity, and name the API version in the book title.

2009-04-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-operation.h: Removed commented-out
	documentation as this causes a warning when building the
	documentation.

2009-04-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-record.c
	(inf_adopted_session_record_stop_recording): Fixed two compiler
	warnings about incompatible pointer types by properly casting them.

2009-04-21  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/Makefile.am:
	* libinftext/Makefile.am: Removed -release from LDFLAGS to not
	duplicate the API version number in the .so filename.

2009-04-21  Philipp Kern  <phil@0x539.de>

	* test/util/Makefile.am: correct hardcoded *-1.0.la import.

2009-04-20  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk.pc.in:
	* libinfinity.pc.in:
	* libinftext.pc.in:
	* libinftextgtk.pc.in: Moved from *-1.0.pc.in, respectively. The API
	version of the generated .pc file is not determined by the configure
	script.

	* infinoted/Makefile.am:
	* infinoted/note-plugins/text/Makefile.am:
	* libinfinity/Makefile.am:
	* libinfinity/common/Makefile.am:
	* libinfinity/communication/Makefile.am:
	* libinfinity/adopted/Makefile.am:
	* libinfinity/client/Makefile.am:
	* libinfinity/server/Makefile.am:
	* libinfgtk/Makefile.am:
	* libinftext/Makefile.am:
	* libinftextgtk/Makefile.am:
	* test/Makefile.am:
	* docs/reference/libinfinity/Makefile.am:
	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am:
	* configure.ac:
	* Makefile.am: Introduce libtool versioning, make libinfinity
	parallel-installable with future versions. The pkg-config files are
	now prefixed with the corresponding libinfinity API version, such as
	libinfinity-0.3.pc.

2009-04-20  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-hosted-group.c: Fixed
	the length of a documentation comment.

2009-02-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_NO_SUCH_SUBSCRIPTION_REQUEST, and some
	documentation fixes.

	* libinfinity/common/inf-session.c: Added a TODO item.

	* libinfinity/client/infc-browser.c: Send <subscribe-ack> or
	<subscribe-nack> after subscriptions, actually perform the
	subscription when the message has been sent. This is used to tell the
	server whether a subscription was successful or not. The subscription
	can fail if the client does not support the communication method used,
	or if it does not know the note type.

	* libinfinity/server/infd-directory.h: Made the InfdNotePlugin
	parameter const in infd_directory_add_note().

	* libinfinity/server/infd-directory.c: Don't immediately subscribe the
	client in <subscribe-session> or <add-node> requests, but wait for
	<subscribe-ack> instead. Don't add the node in the latter case if the
	client replies with <subscribe-nack>, so that <add-node> operations
	are atomic.

2009-02-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-group.c: Documentation
	fix for inf_communication_group_get_method_for_network(): Mention that
	conn does not need to be a member of the group.

2009-02-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c: Added <sys/socket.h>
	include to allow compilation on FreeBSD. Bug #430. Patch by
	Romain Tartière.

2009-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-dialog.c:
	* libinfgtk/inf-gtk-certificate-manager.c: Added TODO comments about
	how to improve certificate handling: For trusted hosts, we shouldn't
	show the hijack warning, and we should remember trusted hosts in the
	known hosts file.

2009-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xml-util.h:
	* libinfinity/common/inf-xml-util.c: Added xml property setter and
	getter functions for long and unsigned long values.

2009-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c
	(inf_tcp_connection_io_incoming): Make sure we don't try to read again
	when the connection has been closed in a signal handler.

2009-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c
	(inf_gtk_certificate_manager_certificate_func): Added
	GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT flag.

2009-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-cert-util.h:
	* libinfinity/common/inf-cert-util.c: Added a "current" GPtrArray
	parameter to inf_cert_util_load_file(), to which newly read
	certificates will be added, if non-NULL.

	* libinfgtk/inf-gtk-certificate-manager.c: Adapt to the API change.

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c: Added a certificate-chain
	command-line and configuration option, so that other certificates
	belonging to the certificate chain can be read from a separate file.

	* infinoted/infinoted-startup.c: Load more certificates from the
	certificate-chain-file, if given.

2009-01-15  Armin Burgmeier  <armin@arbur.net>

	* all source files: Added 2009 to copyright years.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.3.0.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.2.0 ===

	* NEWS: Update for release.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c
	(inf_tcp_connection_get_property): Compare priv->socket against
	INVALID_SOCKET instead of NULL in assertion for PROP_LOCAL_ADDRESS and
	PROP_LOCAL_PORT.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.c (infinoted_run_load_directory): Fixed a
	warning about an unused variable.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-startup.c:
	* infinoted/infinoted-run.c: Moved directory creation from
	InfinotedStartup to InfinotedRun.

	* infinoted/infinoted-signal.c: Terminate directly on signal handler,
	without relying on the mainloop being exited properly. Also set a
	ConsoleCtrlHandler on Windows, to save the documents when the server's
	console window is closed.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* infinoted/Makefile.am: Replace PLUGIN_PATH define by PLUGIN_LIBPATH
	and PLUGIN_BASEPATH.

	* infinoted/infinoted-startup.c (infinoted_startup_load_directory):
	Lookup the module path relative to the application's executable.

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_get_author().

2009-01-04  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-registry.c
	(inf_communication_registry_is_registered): Don't leak the publisher
	ID, and use g_return_val_if_reached instead of g_return_if_reached to
	avoid a warning.
	(inf_communication_registry_unregister): Fixed another compiler
	warning.

2008-12-30  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c: Made "security-policy" a
	construct property, don't allow passing NULL credentials for a
	non-only-unsecured security policy.

	* libinfinity/client/inf-xmpp-connections.c: Enable built-in
	credentials only for client connections, require valid credentials
	including certificate for server connections in case security policy
	is not only-unsecured.

	* infinoted/infinoted-run.c:
	* test/inf-test-daemon.c: Adapt to API change.

2008-12-30  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c: Some code cleanup, gather
	some common platform-specific stuff at the top.

2008-12-30  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Delay server opening to
	infinoted_run_start(), create both IPv6 and IPv4 server when possible.

	* infinoted/infinoted-main.c: Handle errors from
	infinoted_run_start().

2008-12-30  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-registry.h:
	* libinfinity/communication/inf-communication-registry.c: Added
	inf_communication_registry_is_registered().

	* libinfinity/communication/inf-communication-central-method.c: Make
	sure we don't try to unregister a connection we never registered.

2008-12-30  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_received_cb): Make sure we read the whole gnutls
	buffer, so that we don't stall when gnutls buffers some data.

2008-12-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c: Allow retrieving local
	remote and port on closed connections by keeping the native socket
	alive until disposal.

	* libinfinity/communication/inf-communication-method.h:
	* libinfinity/communication/inf-communication-method.c: Removed the
	unregistered method.

	* libinfinity/communication/inf-communication-registry.c: Support and
	require closed connections to be unregistered.

	* libinfinity/communication/inf-communication-central-method.c:
	Unregister the connection even if it has been closed already.

2008-12-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c: Added Win32 implementation
	using Winsock2's WSAWaitForMultipleEvents().

2008-12-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-central-method.c:
	Remember whether a connection has been open, so we do remove it from
	its group if it has not already been registered.

2008-12-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-central-method.c: Do not
	unregister unregistered connection when in _CONNECTION_OPENING status
	in inf_communication_central_method_remove_member()

2008-12-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Negated wrongly negated
	assertion in infd_directory_node_register_reply_subscription().

2008-12-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Make sure
	inf_xml_connection_sent() is not called twice for the same message,
	and that it is not omitted for others.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.c (inf_session_send_sync_error): Send
	synchronization error to synchronization client instead of whole
	group except client.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-registry.c
	(inf_communication_registry_register): Fixed reactivation of
	previously unregistered connection which still has final messages
	scheduled.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-record.c
	(inf_adopted_session_record_stop_recording): Avoid another warning.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-record.c
	(inf_adopted_session_record_stop_recording): Avoid runtime warnings
	when the recorded session is still in INF_SESSION_SYNCHRONIZING
	status.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session-proxy.c
	(infd_session_proxy_set_property): Connect after the default handler
	for the close signal, so that the session has a chance to cancel any
	synchronizations before we remove group membership of all subscribed
	connections.

	* libinfinity/communication/inf-communication-registry.c: Make
	flushing final messages on group unref for unregistered connections
	work.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/communication/inf-communication-manager.h:
	* libinfinity/communication/inf-communication-manager.c:
	* libinfinity/communication/inf-communication-group-private.h:
	* libinfinity/communication/inf-communication-group.h:
	* libinfinity/communication/inf-communication-group.c:
	* libinfinity/communication/inf-communication-method.h:
	* libinfinity/communication/inf-communication-method.c:
	* libinfinity/communication/inf-communication-factory.h:
	* libinfinity/communication/inf-communication-factory.c:
	* libinfinity/communication/inf-communication-object.h:
	* libinfinity/communication/inf-communication-object.c:
	* libinfinity/communication/inf-communication-joined-group.h:
	* libinfinity/communication/inf-communication-joined-group.c:
	* libinfinity/communication/inf-communication-hosted-group.h:
	* libinfinity/communication/inf-communication-hosted-group.c:
	* libinfinity/communication/inf-communication-registry.h:
	* libinfinity/communication/inf-communication-registry.c:
	* libinfinity/communication/inf-communication-central-method.h:
	* libinfinity/communication/inf-communication-central-method.c:
	* libinfinity/communication/inf-communication-central-factory.h:
	* libinfinity/communication/inf-communication-central-factory.c:
	* libinfinity/communication/Makefile.am: Added new "communication" API
	replacing the connection manager system. This allows multiple
	connections to the same host, and gets rid of the requirement for
	UUIDs.

	* libinfinity/common/inf-net-object.h:
	* libinfinity/common/inf-net-object.c:
	* libinfinity/common/inf-method-manager.h:
	* libinfinity/common/inf-method-manager.c:
	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-central-method.h:
	* libinfinity/common/inf-central-method.c:
	* libinfinity/methods/local-central/inf-method-local-central.c:
	* libinfinity/methods/local-central/Makefile.am:
	* libinfinity/methods/Makefile.am: Removed. These files are obsoleted
	by the communication API.

	* libinfinity/common/Makefile.am: Removed the above files from the
	build.

	* libinfinity/Makefile.am: Decend into communication subdirectory,
	link against libinfinity_communication.

	* configure.ac: Removed dependency on libuuid, don't link against
	rpcrt4 on Windows.

	* libinfinity/common/inf-simulated-connection.c: Small documentation
	fix.

	* libinfinity/common/inf-xmpp-connection.c: Renamed network from
	"local" to "tcp/ip".

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/client/infc-note-plugin.h:
	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/infc-session-proxy.h:
	* libinfinity/client/infc-session-proxy.c:
	* libinfinity/server/infd-note-plugin.h:
	* libinfinity/server/infd-filesystem-storage.h:
	* libinfinity/server/infd-session-proxy.h:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c:

	* libinftext/inf-text-session.h:
	* libinftext/inf-text-session.c:

	* libinfgtk/inf-gtk-browser-store.h:
	* libinfgtk/inf-gtk-browser-store.c:

	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* infinoted/infinoted-startup.c:
	
	* test/inf-test-browser.c:
	* test/inf-test-daemon.c:
	* test/inf-test-gtk-browser.c:
	* test/inf-test-text-cleanup.c:
	* test/inf-test-text-replay.c:
	* test/inf-test-text-session.c: Adapt to API change.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/configure.ac: Added an --enable-traffic-output configure
	option, defining INF_XMPP_CONNECTION_PRINT_TRAFFIC.

	* libinfinity/common/inf-xmpp-connection.c: Include config.h, so that
	we see when INF_XMPP_CONNECTION_PRINT_TRAFFIC is defined.

2008-12-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity-1.0.pc.in:
	* libinfgtk-1.0.pc.in:
	* libinftextgtk-1.0.pc.in: Fixed dependencies in pkg-config files.

2008-12-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-server-pool.c (infd_server_pool_entry_free):
	Free the InfdServerPoolPublisher struct for each publisher.

	* libinfinity/server/infd-directory.c (infd_directory_node_explore):
	Don't leak the path variable.

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_process_authentication): Free the result of
	xmlNodeGetContent() as we are supposed to.

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_dispose): Don't leak the buffer_modified_time.

2008-12-27  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-options.c (infinoted_options_load): Don't leak
	default security_policy if overwritten by command line.

	* infinoted/infinoted-startup.c (infinoted_startup_free): Don't leak
	options and the startup struct.

2008-12-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Improved error message
	when the remote site seems not to be an XMPP server.

2008-12-23  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-certificate-chain.h:
	* libinfinity/common/inf-certificate-chain.c: Made
	inf_certificate_chain_ref return the passed chain, so the function
	fulfills the requirements for a GBoxedCopyFunc. This lead to a crash
	with optimization enabled.

2008-12-23  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-dialog.c
	(inf_gtk_certificate_dialog_init): Free the icon_info so that we don't
	leak it.

2008-12-23  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c
	(inf_gtk_browser_view_progress_data_func): Free browser_iter to avoid
	a memory leak.

2008-12-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-io.c (inf_io_event_get_type): Null-terminate
	the list of flags values.

2008-12-21  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c
	(inf_gtk_browser_view_row_changed_cb): Removed two unused variables.

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_buffer_init): Connect the get_modified and
	set_modified buffer implementations to the InfBufferIface.

	* libinftextgtk/inf-text-gtk-hue-chooser.c:
	(inf_text_gtk_hue_chooser_class_init): Install the dispose and
	finalize handlers.

	* infinoted/infinoted-creds.c
	(infinoted_creds_create_self_signed_certificate_impl): Removed an
	unused variable.

	* infinoted/infinoted-main.c (infinoted_main): Removed an unused
	variable.

2008-12-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-cert-util.c: Include inf-error.h to avoid a
	warning.

	* libinfinity/adopted/inf-adopted-request-log.c
	(inf_adopted_request_log_is_empty): Use g_return_val_if_reached
	instead of g_return_if_reached, to avoid a warning.
	(inf_adopted_request_log_add_request): Cast the log to GObject before
	calling g_object_notify_freeze, to avoid a warning.

2008-12-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_send_chars): Fix a warning caused by += being
	used on a void pointer.
	(inf_xmpp_connection_process_features): Cast a xmlChar* to const char*
	before passing to strcmp(), to avoid a warning.

2008-12-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Added ctype.h inclusion.

2008-12-13  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Allow multiple record files to be
	passed.

2008-12-07  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.c: Record sessions into
	~/.infinoted-records.

2008-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-buffer.h:
	* libinfinity/common/inf-buffer.c: Added a "modified" property, and
	get_modified/set_modified accessors.

	* libinftext/inf-text-default-buffer.c: Implement the property of the
	InfBuffer interface.

	* libinftextgtk/inf-text-gtk-buffer.c: Implement the "modified"
	property, keep it synchronized with the GtkTextBuffer's "modified"
	property.

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added
	infd_directory_iter_peek_session(), infd_directory_iter_get_name() and
	infd_directory_iter_get_path().

	* libinfinity/adopted/inf-adopted-algorithm.c: Track modification
	status of the buffer. If the buffer is considered not modified in a
	certain state, then set it modified if the buffer changes, but set it
	non-modified again when all users undid their changes since the last
	time when the buffer was considered non-modified.

	* infinoted/infinoted-autosave.h:
	* infinoted/infinoted-autosave.c:
	* infinoted/Makefile.am: Added an autosaver for infinoted.

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-options.c: Added an autosave-interval option.

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Instantiate the autosaver when the
	autosave-interval is nonzero.

	* infinoted/infinoted-main.c: Added vim modelines.

2008-11-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added
	infd_directory_iter_save_session(), and the "add-session" and
	"remove-session" signals.

2008-11-14  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-hue-chooser.c: Don't use
	cairo_format_stride_for_width, so we don't need cairo 1.6 (Bug #393).

2008-11-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request-log.c: Added
	inf_adopted_request_log_set_begin() and
	inf_adopted_request_log_is_empty().

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_is_component_reachable): Added an assertion
	that the request is either contained in the user's request log, or
	is to be added.

	* libinfinity/adopted/inf-adopted-session.c: Upon successful
	synchronization, set begin index of empty request logs to the
	corresponding user's time of the current state vector (#389, Matthias
	Prinz).

	* test/replay/replay-05.record.xml: Added a test for this.

2008-11-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user-table.c: Fixed a typo that prevented
	inf_user_table_foreach_user to appear in the documentation.

2008-11-08  Benjamin Herr  <ben@0x539.de>

	* libinfinity/inf-xmpp-connection.c: Properly advance data pointer
	on partial writes (fixed bug #387).

2008-11-05  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-move-operation.h:
	* libinftext/inf-text-move-operation.c: Added a left_gravity parameter
	to inf_text_move_operation_transform_insert(). Always set it to TRUE
	in inf_text_move_operation_transform(), assuming a remote operation.

	* libinftext/inf-text-session.c: Interpret all requests as non-caret
	versions by default. Use right gravity when adjusting the author's
	cursor on an insert operation.

	* libinftextgtk/inf-text-gtk-buffer.c: Block selection-changed signal
	handler of active user in inf_text_gtk_buffer_insert_text_cb() and
	inf_text_gtk_buffer_delete_range_cb() since GtkTextBuffer already
	takes care of adjusting the buffer marks in response to index changes
	on insert or delete operations.

	These changes fix pasting text over selected text (#390, Georg
	Kapeller).

2008-11-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c: Added a documentation note
	that this class is only available when LIBINFINITY_HAVE_AVAHI is
	defined.

2008-11-02  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Add LIBINFINITY_HAVI_AVAHI as an AM_CONDITIONAL.

	* docs/reference/libinfinity/Makefile.am: Add inf-discovery-avahi.h to
	the header files to ignore, and pass --rebuild-types to gtkdoc-scan.
	This way, inf_discovery_avahi_get_type is not listed in the .types
	file when avahi support is not enabled (#386, Gregory Haynes).

	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am: Also added --rebuild-types
	to gtkdoc-scan.

	* docs/reference/libinfinity/libinfinity.types:
	* docs/reference/libinftext/libinftext.types:
	* docs/reference/libinfgtk/libinfgtk.types:
	* docs/reference/libinftextgtk/libinftextgtk.types: Removed, since
	these are now autogenerated.

2008-11-02  Armin Burgmeier  <armin@arbur.net>

	* infinoted/note-plugins/text/Makefile.am:
	* libinfinity/methods/local-central/Makefile.am: Changed module
	installation path to be versioned.

	* infinoted/Makefile.am:
	* libinfinity/common/Makefile.am: Adapt module lookup path
	accordingly.

2008-10-30  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c
	(inf_gtk_browser_store_tree_model_iter_children): Make sure parent is
	not dereferenced for an assertion check if it is NULL, preventing a
	crash when this function was called with NULL parent and assertions
	enabled (#388).

2008-10-25  Philipp Kern  <phil@0x539.de>

	* configure.ac: check for MSG_NOSIGNAL
	* libinfinity/common/inf-tcp-connection.c: conditionally define
	INF_TCP_CONNECTION_SENDRECV_FLAGS

2008-10-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c: Added #InfMethodManager
	to @see_also in section documentation.

	* libinfinity/common/inf-discovery-avahi.c: Added #InfLocalPublisher
	to @see_also in section documentation.

	* libinfinity/common/inf-discovery.h: Make virtual functions of the
	InfDiscoveryIface struct appear in the documentation.

	* libinfinity/server/infd-directory.c
	(infd_directory_set_method_manager): Added a clarifying comment.

	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-io.c:
	* libinfinity/common/inf-ip-address.h:
	* libinfinity/common/inf-ip-address.c:
	* libinfinity/common/inf-local-publisher.h:
	* libinfinity/common/inf-local-publisher.c:
	* libinfinity/common/inf-method-manager.h:
	* libinfinity/common/inf-method-manager.c:
	* libinfinity/common/inf-net-object.h:
	* libinfinity/common/inf-net-object.c:
	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added class and section
	documentation.

2008-10-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-connection-manager.h: Removed some obsolete
	commented-out code.

	* libinfinity/common/inf-certificate-chain.h: Document the
	InfCertificateChain symbol.

	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/common/inf-discovery.h:
	* libinfinity/common/inf-discovery.c:
	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added class and section
	documentation.

2008-10-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-i18n.c: Set localedir relative to libinfinity DLL on
	Windows, so i18n is properly relocatable.

2008-10-18  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Post-release bump to 0.2.0.

2008-10-18  Armin Burgmeier  <armin@arbur.net>

	* === Released 0.1.0 ===

2008-10-18  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-creds.c: Don't set the SAN to $hostname.local
	since the common name is no longer checked when a SAN is present.

	* infinoted/infinoted-startup.c (infinoted_startup_load_certificate):
	Error out if a self-signed certificate could not be created.

2008-10-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_send_ctrl): Fixed an assignment in an
	assertion that should be a comparison.
	(inf_connection_manager_group_real_send): Removed an unused variable.

	* libinfinity/common/inf-discovery-avahi.c
	(inf_discovery_avahi_client_callback): Removed an unused variable.

2008-10-17  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Don't require avahi-glib for avahi support, as we
	don't use it.

2008-10-17  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am: Added underlying libraries
	as --extra-dir to FIXXREF_ARGS.

	* docs/reference/libinfinity/libinfinity-docs.sgml:
	* docs/reference/libinftext/libinftext-docs.sgml:
	* docs/reference/libinfgtk/libinfgtk-docs.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-docs.sgml: Adjust online
	location.

2008-10-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Add sync-in before emitting the
	NODE_ADDED signal, so that the signal handler can access the sync-in
	via infc_browser_iter_get_sync_in(). This allows InfGtkBrowserView to
	show progress for sync-ins.

	* libinfgtk/inf-gtk-browser-view: Removed a TODO comment about showing
	progress for sync-ins.

2008-10-17  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-options.c: Don't crash when reading options from
	config files.

2008-10-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_group_real_send): Removed debug logs.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c: Consider INF_IO_ERROR with
	no error code as an ordinary disconnection. This is currently the way
	to be notified about disconnection on Windows, because InfGtkIo maps
	G_IO_HUP to INF_IO_ERROR.

	* libinfgtk/inf-gtk-io.c: Also watch for G_IO_HUP in addition to
	G_IO_ERR when INF_IO_ERROR is requested.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_group_real_send): Make sure all queued
	messages are sent, even if the callback for the last item adds new
	messages to the queue.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.c (inf_session_close): Make sure the
	session's status is not already closed via a g_return_if_fail(), to
	prevent a failing assertion in the default handler.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_handle_message): Make sure a group's object is
	only finalized after we have unrefed the group, to prevent warnings
	when a received handler releases the NetObject.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c (inf_tcp_connection_send):
	Always queue data we could not sent immediately. There was a bug that
	data wasn't queued if more than the half of it has been sent already.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c
	(inf_xmpp_connection_received_cb): Don't call gnutls_record_recv with
	a NULL session when a TLS error occured.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-note-plugin.c
	(infinoted_note_plugin_load_directory): Added missing return value in
	success case.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Fixed a stupid type error in
	the setter for the wake-on-cursor-movement property.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/Makefile.am:
	* libinfinity/common/Makefile.am:
	* libinfinity/adopted/Makefile.am:
	* libinfinity/client/Makefile.am:
	* libinfinity/server/Makefile.am:
	* libinfinity/methods/local-central/Makefile.am:
	* libinftext/Makefile.am:
	* libinfgtk/Makefile.am:
	* libinftextgtk/Makefile.am:
	* infinoted/Makefile.am:
	* infinoted/note-plugins/text/Makefile.am:
	* test/Makefile.am: Moved -I$(top_srcdir) from AM_CPPFLAGS to
	$lib_CPPFLAGS, because the former is not used when the latter is
	present. This is required for `make distcheck'.

	* docs/reference/Makefile.am: Added version.xml.in to EXTRA_DIST.

	* docs/reference/libinfinity/Makefile.am:
	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am: Added ../version.xml to
	content_files, to fix `make distcheck'.

	* docs/reference/libinfinity/libinfinity-docs.sgml: Reordered
	documentation sections.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c: Make sure that calling
	inf_tcp_connection_send() in a SENT callback does send things in a
	different order, or even breaks consistency of the queue.

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_group_real_send): Fixed a memory corruption
	problem.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-note-plugin.h:
	* infinoted/infinoted-note-plugin.c: Print a warning when no note
	plugins could be loaded.

	* infinoted/infinoted-startup.c: Don't start the server if there are
	no note plugins available.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* NEWS: Update for initial release.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Removed network traffic
	output.

2008-10-16  Armin Burgmeier  <armin@arbur.net>

	* all source files: Fixed copyright period in GPL header, and changed
	the package description.

2008-10-15  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Changed some occurences of infinote to libinfinity
	where the implementation rather than the protocol is meant. This
	changes the INFINOTE_HAVE_AVAHI define to LIBINFINITY_HAVE_AVAHI.

	* libinfinity/inf-config.h.in:
	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c:
	* infinoted/infinoted-run.c:
	* test/inf-test-daemon.c:
	* test/inf-test-gtk-browser.c:
	* doc/reference/version.xml.in: Adapt to the changes.

2008-10-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-dll.h:
	* libinfinity/inf-dll.c:
	* libinfinity/Makefile.am: Added new files that implement DllMain() on
	Windows, to save the DLL Handle. This can be used with
	g_win32_get_package_installation_directory_of_module().

	* libinfinity/common/Makefile.am: Split the METHODS_PATH define in
	METHODS_LIBDIR and METHODS_BASEDIR, where METHODS_BASEDIR is the
	application-specific part of the path.

	* libinfinity/common/inf-method-manager.c: On Windows, locate the
	methods relative to the libinfinity DLL instead of using a hardcoded
	path.

	* libinfinity/methods/local-central/Makefile.am: Added a comment about
	renaming renaming the directory into which the methods are stored.
	However, this doesn't work yet because of some evil libtool weirdness.

2008-10-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-i18n.h: Fixed a misleading comment in the first
	line, originating from a copy+paste from inf-config.h.

2008-10-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Make sure signals are emitted
	before data any is sent out for various operations.

2008-10-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c: Only queue new data if it
	can't be sent directly. This allows a call to
	inf_tcp_connection_send() to emit the "sent" signal directly.

	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/common/inf-connection-manager.c: Fixes to honor this.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c: Changed
	INF_TCP_CONNECTION_EINPROGRESS to be WSAEWOULDBLOCK on Windows because
	this is what connect() yields for non-blocking sockets.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-error.c:
	* libinfinity/common/inf-init.c:
	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-ip-address.c:
	* libinfinity/common/inf-standalone-io.c:
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/server/infd-tcp-server.c: Fixed the build on Windows.
	InfStandaloneIo only has a stub implementation for now. GtkIo does not
	work correctly with glib 2.18, though I believe that's a regression in
	glib because it works with glib 2.16. Let's see whether I can track
	that down.

	* configure.ac: Don't require libuuid on Windows since we use native
	Windows API there.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-init.h: Include only <glib.h> for
	G_BEGIN_DECLS and G_END_DECLS, removed inculdes that we don't need in
	inf-init.h.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/Makefile.am:
	* libinftext/Makefile.am:
	* libinfgtk/Makefile.am:
	* libinftextgtk/Makefile.am:
	* infinoted/Makefile.am:
	* libinftextgtk/Makefile.am: Fixed linking order so that libraries
	that depend on others appear first in the command line.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/methods/local-central/Makefile.am:
	* infinoted/note-plugins/text/Makefile.am: Added -avoid-version,
	-module and -no-undefined LDFLAGS. Also fixed the linking order.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-options.c:
	* infinoted/infinoted-startup.c: Fixed a few warnings.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* po/LINGUAS: Added a file that lists all languages, as required by
	`make dist'.

	* configure.ac: Use that file to set ALL_LINGUAS.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-init.h:
	* libinfinity/common/inf-init.c
	* libinfinity/common/Makefile.am: New file that contains a function to
	initialize the library.

	* infinoted/infinoted-main.c: Don't call g_type_init() anymore in
	main().

	* infinoted/infinoted-startup.c: Instead, call inf_init() which does
	g_type_init in startup.

	* libinfinity/inf-i18n.h:
	* libinfinity/inf-i18n.c: Rely on gettext being initialized all the
	time. This means inf_init() needs to have been called before.

2008-10-14  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_get_wake_on_cursor_movement() and
	inf_text_gtk_buffer_set_wake_on_cursor_movement(). This setting
	specifies whether to make inactive users active when the cursor
	position of the underlying TextBuffer changes, or to resync when the
	user is explicitely set to be active.

2008-10-13  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Make sure only one author tag
	can be applied to a range of text. Applying multiple tags could still
	occur when copying and pasting text from the same buffer.

2008-10-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_handle_message): Keep a reference on the
	group that is currently processed, and unref at the end. This prevents
	a crash when net_object_received() does a final unref on the group.

2008-10-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_group_unref): Allow final unref of groups not
	in the tree (because of duplicate IDs). This is a temporary workaround
	until the handling of such groups has been fixed.

2008-10-12  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c: Removed an unnecessary
	gtk_tree_model_row_changed() call.

	* libinfgtk/inf-gtk-browser-view.c: Fixed automatic expansion of root
	node when multiple views show the same model.

2008-10-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c
	(inf_adopted_session_process_xml_sync): Don't leak the processed
	request.

	* inf_adopted_split_operation_revert
	(inf_adopted_split_operation_revert): Don't leak the two reverted
	child operations.

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_group_free): Don't leak the
	InfConnectionManagerMethodInstance instance.
	(inf_connection_manager_handle_message): Don't leak scope_attr.

	* libinfinity/common/inf-session.c
	(inf_session_get_xml_user_props_impl): Don't leak status.

	* libinftext/inf-text-session.c (inf_text_session_process_xml_sync):
	Don't leak the GIconv conversion descriptor.
	(inf_text_session_process_xml_sync): Don't leak text.

2008-10-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c: Don't assert when the
	avahi client could not be created. Even though we pass
	AVAHI_CLIENT_NO_FAIL, sometimes the client still can't be created it
	seems.

2008-10-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-state-vector.c
	(inf_adopted_state_vector_vdiff): Changed an assertion that
	effectively checks an input parameter to a g_return_val_if_fail.

	* libinftext/inf-text-chunk.c: Disable chunk integrity check by
	default.

	* libinftext/inf-text-default-delete-operation.c: Disable text match
	check by default.

2008-10-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Don't let unavailable
	users prevent cleanup.

2008-10-09  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c: Send undo-caret and redo-caret. We
	still don't make a difference internally, but let's be gentle to
	implementations which do.

	* libinftextgtk/inf-text-gtk-buffer.c: Update "insert" and
	"selection-bound" markers when the active user's selection changes.

2008-10-09  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-run.h:
	* infinoted/infinoted-run.c: Moved server running code from
	infinoted-main.c to a new file.

	* infinoted/infinoted-signal.h:
	* infinoted/infinoted-signal.c: New files to handle SIGINT and SIGTERM
	properly by saving the directory and then shutting down.

	* infinoted/infinoted-main.c: Register the signals, call into
	infinoted-run.

	* infinoted/Makefile.am: Add the new files to the build.

	* libinfinity/common/inf-standalone-io.c
	(inf_standalone_io_iteration_impl): Return if poll returned EINTR, to
	allow shutting down the server in a signal handler.

	* libinfinity/server/infd-server-pool.c
	(infd_server_pool_entry_unpublish_with): Fixed unwanted fallthrough in
	a switch statement.

	* libinfinity/common/inf-discovery-avahi.c
	(inf_discovery_avahi_unpublish): Fixed an assertion.

	* libinfinity/adopted/inf-adopted-split-operation.c: Fixed a typo in a
	comment.

2008-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user.h:
	* libinfinity/adopted/inf-adopted-user.h:
	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/common/inf-user.c:
	* libinfinity/adopted/inf-adopted-user.c:
	* libinfinity/adopted/inf-adopted-request.c:
	* libinfinity/adopted/inf-adopted-request-log.c:
	* libinfinity/adopted/inf-adopted-algorithm.c: Added a priv pointer to
	the instance struct, initialize it in instance_init and use this
	instead of calling g_type_instance_get_private all the time. This
	gets us a performance gain of about 9%.

2008-10-08  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-creds.c: Set the subject alternatime name to
	hostname.local for newly created self-signed certificates, because
	this is what avahi discovers in a local network.

2008-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-dialog.c: Fixed messages when the
	certificate has changed. The normal message and the one shown when the
	old certificate has expired were swapped.

2008-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c: Don't crash when no
	certificate warnings are shown, but just go on without showing a
	dialog.

2008-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c: Emit undiscovered signals
	on correct discovery infos.

2008-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Added a sasl-mechanisms
	property that specifies what mechanisms to accept or offer,
	respectively, for authentication.

	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c:
	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c: Added the same property,
	and forward to created connections.

	* infinoted/infinoted-main.c:
	* test/inf-test-browser.c:
	* test/inf-test-daemon.c:
	* test/inf-test-gtk-browser.c:
	* test/inf-test-xmpp-connection.c: Adapt to API changes.

	* libinfinity/client/infc-browser.c: Don't unref the default method
	manager.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-state-vector.c: Added
	inf_adopted_state_vector_vdiff().

	* libinfinity/adopted/inf-adopted-algorithm.c: Use that function to
	calculate required vdiffs, instead of a slower, own implementation.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-state-vector.c: Added
	inf_adopted_state_vector_causally_before_inc().

	* libinfinity/adopted/inf-adopted-algorithm.c: Use this new function,
	to save some copies.

	* test/inf-test-state-vector.c: Verify that
	inf_adopted_state_vector_causally_before_inc(<empty state vector>,
	<empty state vector>, 1) yields FALSE.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-state-vector.c: Fixed an assertion
	in inf_adopted_state_vector_add().

	* libinfinity/adopted/inf-adopted-algorithm.c: Cleaned up the code in
	inf_adopted_translate_request(), don't make a copy of the 'to'
	parameter anymore.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_translate_request): Don't leak v when a cached
	request is returned.
	(inf_adopted_algorithm_execute_request): Don't leak log_request when
	the request must be made reversible.

	* libinfinity/adopted/inf-adopted-request.c
	(inf_adopted_request_transform), (inf_adopted_request_mirror): Don't
	leak the newly created operations.

	* libinftext/inf-text-session.c (inf_text_session_xml_to_request):
	Don't leak the parsed operation.

	* test/inf-test-chunk.c: Don't leak the two chunks.

	* test/inf-test-text-operations.c: Don't leak the users array.

	* test/util/inf-test-util.c: Don't leak the XML content of <segment>
	nodes for buffers.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Removed the ugly
	can_cache paramatere for inf_adopted_algorithm_translate_request() and
	inf_adopted_algorithm_transform_request(). Instead, translate_request
	checks itself whether a request is cachable or not.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request.c: Made InfAdoptedRequest
	immutable, which means that the request cannot be altered anymore once
	created. The functions inf_adopted_request_transform(),
	inf_adopted_request_mirror() and inf_adopted_request_fold() now return
	new requests instead of modifying the given one.

	* libinfinity/adopted/inf-adopted-algorithm.c: Adapt to that change.
	Given that requests are now immutable, we can save a few copies. This
	speeds up inf-test-text-session about 11%.

2008-10-07  Armin Burgmeier  <armin@arbur.net>

	* test/util/inf-test-util.c (inf_test_dir_util_foreach): Iterate
	alphabetically through the file names.

	* test/inf-test-text-session.c: Actually make setting a random seed
	work, added time measurement.

2008-10-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-record.c: Fixed a few
	warnings.

	* configure.ac: Added check-news to AM_INIT_AUTOMAKE.

	* NEWS: Removed the dummy entry, so I don't forget to create a real
	one for the release.

2008-10-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-operation.h:
	* libinfinity/adopted/inf-adopted-operation.c: Added two new virtual
	functions, need_concurrency_id() and get_concurrency_id(). These are
	used to correctly handle situations when two requests insert text at
	the same position concurrently.

	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request.c: Added
	inf_adopted_request_need_concurrency_id() and
	inf_adopted_request_get_concurrency_id() which are simple wrapper
	functions for the underlying operation functions.

	* libinfinity/adopted/inf-adopted-algorithm.c: If a concurrency ID is
	needed during transformation, then acquire one from the same requests
	in a previous state.

	* libinfinity/adopted/inf-adopted-no-operation.c:
	* libinfinity/adopted/inf-adopted-split-operation.c: Implement the two
	new virtual functions.

	* libinftext/inf-text-pword.h:
	* libinftext/inf-text-pword.c: Removed, since pwords are no longer
	used. These did not handle the situation described above well enough,
	since the algorithm did not pass one of the tests in test/session
	since the request cache has been introduced (see my change from
	2008-02-22). The test in question is now test #28.
	
	Also, the adOPTed algorithm relies on the fact that it must not matter
	on which path a request has been transformed to reach a certain state.
	The pword concept did not fulfill this requirement.

	* libinftext/Makefile.am: Removed the files from the build.

	* libinftext/inf-text-insert-operation.h:
	* libinftext/inf-text-insert-operation.c: Added
	inf_text_insert_operation_need_concurrency_id() and
	inf_text_insert_operation_get_concurrency_id(), and replaced the
	get_pword() virtual function by get_position().

	* libinftext/inf-text-delete-operation.h:
	* libinftext/inf-text-delete-operation.c: Added
	inf_text_delete_operation_need_concurrency_id() and
	inf_text_delete_operation_get_concurrency_id().

	* libinftext/inf-text-default-insert-operation.c:
	* libinftext/inf-text-default-delete-operation.c:
	* libinftext/inf-text-remote-delete-operation.c:
	* libinftext/inf-text-move-operation.c: Implement the two new
	virtual functions from InfAdoptedOperation, and adapt to the
	get_pword() -> get_position() change in InfTextDefaultInsertOperation.

	* test/inf-test-text-operations.c: Correctly supply concurrency IDs
	for the C2 tests to pass.

	* test/inf-test-text-session.c: Always show the random seed used, also
	if given.

	* test/session/*.xml: Regenerated tests.

	* test/session/Makefile.am: Added the new files to the distribution.

2008-10-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-i18n.h:
	* libinfinity/inf-i18n.c: Added vim modelines.

	* libinfinity/adopted/inf-adopted-concurrency-warning.h:
	* libinfinity/adopted/inf-adopted-concurrency-warning.c: Helper files
	that contain a function to print a warning used in the upcoming
	modification of the algorithm when a concurrency ID is requested for
	types that don't support it yet.

	* libinfinity/adopted/Makefile.am: Add the files to the build.

2008-10-03  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_translate_request): Simplified the code a bit.

2008-10-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-i18n.h:
	* libinfinity/inf-i18n.c: Added _inf_gettext_init() in case somebody
	needs the infinote gettext translation domain being set without having
	called _inf_gettext() before.

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-creds.c: Fixed a typo.

	* infinoted/infinoted-options.h:
	* infinoted/infinoted-startup.h:
	* infinoted/infinoted-options.c:
	* infinoted/infinoted-startup.c: New files, containing some
	functionality from infinoted-main.c, due to code refactorings.

	* infinoted/infinoted-main.c: Adapt.

	* infinoted/Makefile.am: Build the new files.

	* README:
	* configure.ac: Require at least glib 2.16.

2008-09-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-cert-util.c (inf_cert_util_save_file): Fixed
	storage of more than one certificate.

2008-09-25  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-chunk.c: Fixed another problem when a chunk was
	inserted into another chunk between two segments when the last part
	could be merged.

	* test/replay/replay-03.record.xml:
	* test/replay/replay-04.record.xml: Added two new records, to test the
	the InfTextChunk.

2008-09-23  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-chunk.c: Fixed a problem when a chunk was
	inserted into another chunk between two segments, and the last part
	could not be merged.

	* test/inf-test-text-replay.c: Cleaned up the code a bit.

2008-09-22  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-chunk.c (inf_text_chunk_erase): Fixed a problem
	that the erase operation did not produce a correct result when both
	the first and the last segment of the erasure bounds were in
	different segments of the same author.

	* test/inf-test-text-replay.c: Added code to set a breakpoint just
	before the algorithm applies a request, to be able to debug the
	InfTextChunk internals.

2008-09-22  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-replay.c: Added functionality to check for
	InfTextChunk errors by performing all the buffer operations on an
	(ascii-only) GString and comparing the result with the buffer.

	* libinfinity/adopted/inf-adopted-algorithm.c: Documented a missing
	parameter in InfAdoptedAlgorithm::execute-request.

	* test/replay/replay-01.record.xml:
	* test/replay/replay-02.record.xml: Added two records that currently
	fail to replay correctly.

2008-09-22  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.h:
	* libinftext/inf-text-session.c: Reorganized the code a bit, added
	inf_text_session_flush_requests_for_user().

2008-09-21  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_ensure_author_tags_priority().

2008-09-21  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-manager.c: Fixed a crash when setting
	a new trust file.

2008-09-21  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-view.c: Allow activating an item with
	error status and discovery set in which case another connection
	attempt is made.

2008-09-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-avahi.c: Fixed usage of alternative
	service name on collision.

2008-09-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Save new and synced-in sessions
	initially to storage, to prevent later data loss and to avoid a
	failure when a user deletes a newly added document (It has not
	yet been saved to storage, so the deletion of it caused an error).

2008-09-19  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.c: Fixed a crash when the network
	interface used goes suddenly down.

	* libinfgtk/inf-gtk-browser-view.c: Fixed a reference counting
	problem.

2008-09-19  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-view.c: Fixed a crash when
	instantiating InfGtkCertificateView.

2008-09-18  Armin Burgmeier  <armin@arbur.net>

	* update-potfiles: Added a small script to generate the
	po/POTFILES.in. It is simple, but enough for our needs.

2008-09-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/common/inf-method-manager.c:
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-filesystem-storage.c:
	* libinfinity/adopted/inf-adopted-session-record.c:
	* libinfgtk/inf-gtk-certificate-manager.c: Marked a few more strings
	for translation.

2008-09-18  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-main.c: Added --require-tls and --no-tls command
	line options.

2008-09-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c infd_directory_node_explore():
	Prevent a crash when exploring an unknown note type from the storage.

2008-09-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Added a security-policy
	property that specifies how to decide whether to use TLS or not. This
	allows not to use TLS for specific purposes.

	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c:
	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c: Added the same property
	that is delegated to created XMPP connections.

	* test/inf-test-browser.c:
	* test/inf-test-xmpp-connection.c: Adapted to API change.

2008-09-17  Armin Burgmeier  <armin@arbur.net>

	* configure.ac:
	* Makefile.am: Added gettext support.

	* libinfinity/inf-i18n.h:
	* libinfinity/inf-i18n.c: New files containing the common _() macro
	and a wrapper function to initialize gettext before the first string
	is translated.

	* libinfinity/Makefile.am: Add the new files to the build.

	* libinfinity/common/inf-cert-util.c:
	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/common/inf-error.c:
	* libinfinity/common/inf-session.c:
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/common/inf-user.c:
	* libinfinity/common/inf-xml-util.c:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/infc-request-manager.c:
	* libinfinity/client/infc-session-proxy.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-filesystem-storage.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/server/infd-xml-server.c:
	* libinfinity/adopted/inf-adopted-session-record.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinftext/inf-text-session.c:
	* libinfgtk/inf-gtk-browser-store.c:
	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/inf-gtk-certificate-dialog.c:
	* libinfgtk/inf-gtk-certificate-manager.c:
	* libinfgtk/inf-gtk-certificate-view.c:
	* libinftextgtk/inf-text-gtk-buffer.c:

	* infinoted/infinoted-main.c:
	* infinoted/infinoted-note-plugin.c: Mark all translatable strings.
	Strings in g_warning() have been omitted, but it might make sense to
	mark them, too, or at least some of them.

2008-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Correctly import
	certificate chains, produce an error if the server does not provide a
	certificate.

	* libinfinity/common/inf-certificate-chain.c: Changed direction so
	that the first certificate is the server's and the last certificate is
	the root's, since this how we get the list from GnuTLS.

	* libinfgtk/inf-gtk-certificate-dialog.c: Fixed showing certificate
	chains consisting of more than one certificate.

	* infinoted/infinoted-main.c: Fixed using a whole certificate chain
	for the server.

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-creds.c: Removed
	infinoted_creds_read_certificate and infinoted_creds_write_certificate
	since we use the inf_cert_util functions instead.

	* configure.ac:
	* README: Raise required GTK+ version to 2.12, since we use
	gtk_tree_view_set_show_expanders() which is only available since 2.12.

2008-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Fixed warnings about
	incompatible pointer type in calls to
	inf_connection_manager_open_group().

2008-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added inf_gnutls_error_quark() and
	inf_gnutls_set_error() to convert a gnutls error code into a GError.

	* libinfinity/common/inf-cert-util.c:
	* libinfinity/common/inf-xmpp-connection.c: Make use of the new
	functions, to simplify the code.

2008-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-cert-util.h:
	* libinfinity/common/inf-cert-util.c: Added inf_cert_util_load_file
	and inf_cert_util_save_file to load or save a certificate list.

	* libinfgtk/inf-gtk-certificate-manager.c: Use these functions instead
	of the private inf_gtk_certificate_manager_load_certificate_file and
	inf_gtk_certificate_manager_save_certificate_file.

	* libinfgtk/inf-gtk-certificate-dialog.c: Fixed usage of the return
	value of gtk_icon_theme_lookup_icon.

2008-09-16  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted/creds.h:
	* infinoted/infinoted/creds.c: Include <gnutls/x509.h> only in the
	source file not in the header, it is not needed for the declarations.
	Also set the common name of a generated self-signed certificate to
	g_get_host_name().

	* infinoted/infinoted/main.c: Include <gnutls/x509.h> since it is no
	longer included by including infinoted/creds.h.

2008-09-16  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-certificate-view.h:
	* libinfgtk/inf-gtk-certificate-view.c: Added a widget that shows a
	certificate.

	* libinfgtk/inf-gtk-certificate-dialog.h:
	* libinfgtk/inf-gtk-certificate-dialog.c: Added a dialog that warns
	the user when certain things are wrong with a certificate, such as
	when the issuer is not trusted, the hostname does not match or the
	certificate expired.

	* libinfgtk/inf-gtk-certificate-manager.h:
	* libinfgtk/inf-gtk-certificate-manager.c: Added a class that verifies
	the certificates of all client connections of a InfXmppManager, and
	shows InfGtkCertificateDialogs if necessary.

	* libinfgtk/Makefile.am: Added the new files to the build.

2008-09-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-cert-util.h:
	* libinfinity/common/inf-cert-util.c: New file containing a few
	convenience functions to deal with X.509 certificates.

	* libinfinity/common/inf-certificate-chain.h:
	* libinfinity/common/inf-certificate-chain.c: Very thin wrapper around
	an array of gnutls_x509_crt_t to ref-count it and integrate it into
	the gobject type system.

	* libinfinity/common/Makefile.am: Added the new files to the build.

	* libinfinity/common/inf-xmpp-manager.h:
	* libinfinity/common/inf-xmpp-manager.c: Added a "add-connection"
	signal that is emitted when a new connection has been added to the
	manager.

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Query server
	certificate(s) if we are client, and call a callback to decide whether
	to accpet the certificate or not.

2008-09-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Make InfXmppConnection
	take local and remote server address instead of local jid only, and
	send correct <stream:stream> header as required by the RFC. Added
	support for verification of server's certificate, via a callback.

	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c:
	* libinfinity/common/inf-discovery-avahi.c: Set remote server name
	appropriately.

	* infinoted/infinoted-main.c:
	* test/inf-test-browser.c:
	* test/inf-test-daemon.c:
	* test/inf-test-xmpp-connection.c: Adapt to API change.

2008-09-11  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Don't move own cursor or
	selection bound if a remote insert operation occurs at the same
	position.

2008-09-10  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Fixed a bug causing wrong text
	colors when undoing a delete operation having erased text from
	multiple users.

2008-09-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session-proxy.c: Notify clients when a
	connection with subscribed users has unsubscribed.

2008-09-10  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.h:
	* libinftext/inf-text-session.c: Added
	inf_text_session_set_user_color(), and handle on remote site.

2008-09-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-session-proxy.c: Set connection of joining
	users to the publisher connection if none was specified.

2008-09-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:DOUBLE and VOID:ENUM
	marshallers.

	* libinftextgtk/inf-text-gtk-hue-chooser.h:
	* libinftextgtk/inf-text-gtk-hue-chooser.c: Added a new class to
	choose a hue value. This is basically the same as GtkHSV without the
	inner triangle.

	* libinftextgtk/Makefile.am: Added the new files to the build.

	* libinftextgtk/inf-text-gtk-buffer.c: Added a TODO comment about
	using gtk_hsv_to_rgb from GTK+ 2.14.

2008-09-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-session-proxy.h:
	* libinfinity/client/infc-session-proxy.c: Removed
	infc_session_proxy_set_user_status(), don't handle user-status-change
	request anymore.

	* libinfinity/server/infd-session-proxy.c: Don't handle
	user-status-change anymore, update subscription lists on user status
	notify.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added
	inf_session_set_user_status(), handle user-status-change requests.

2008-08-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-record.c: Flush record file
	after every request written, so that we don't miss any when we crash.

2008-08-27  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c inf_text_session_request_to_xml():
	Don't require a delete operation to be a InfTextDefaultDeleteOperation
	when for_sync is FALSE, because we only need the length of the
	operation anyway then. This fixes records of remote delete operations.

2008-08-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.c: Correctly subtract
	begin index from end index before dereferencing.

2008-08-27  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c: Correctly read synchronized delete
	requests, instead of only creating an empty one.

2008-08-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-note-plugin.h:
	* libinfinity/client/infc-note-plugin.h: Added a user_data parameter
	to the structs and the callback functions, to ease wrapping
	InfcNotePlugin and InfdNotePlugin by language bindings.

	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/server/infd-directory.c:
	* test/inf-test-gtk-browser.c: Adapt to API changes.

2008-08-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user.h:
	* libinfinity/common/inf-user.c: Replaced INF_USER_AVAILABLE status by
	INF_USER_ACTIVE and INF_USER_INACTIVE, added
	inf_user_status_to_string() and inf_user_status_from_string().

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Merged InfUserJoinError and
	InfUserStatusChangeError to InfUserError.

	* libinfinity/adopted/inf-adopted-session.c: Automatically set
	inactive users active when they issue non-noop requests.

	* libinfinity/client/infc-session-proxy.h:
	* libinfinity/client/infc-session-proxy.c: Replaced
	infc_session_proxy_leave_user() by
	infc_session_proxy_set_user_status().

	* libinfinity/common/inf-session.c:
	* libinfinity/server/infd-session-proxy.c:
	* test/inf-test-gtk-browser.c:
	* test/inf-test-text-cleanup.c:
	* test/inf-test-text-session.c: Adapt to API changes.

2008-08-24  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-storage.h:
	* libinfinity/server/infd-storage.c: Make the remove_node function
	take an identifier, so that it knows what node to remove.

	* libinfinity/server/infd-filesystem-storage.c: Implemented
	accordingly.

	* libinfinity/server/infd-directory.c: Adapt to API change.

2008-08-24  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Added
	inf_gtk_browser_view_set_selected().

2008-08-23  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Added the "populate-popup" signal.
	If signal handlers add menu items to the popup menu, then a popup menu
	is displayed.

2008-08-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-simulated-connection.h:
	* libinfinity/common/inf-simulated-connection.c:
	* libinfinity/common/Makefile.am: Added InfSimulatedConnection, an
	InfXmlConnection implementation that sends XML data from one simulated
	connection to another.

	* libinfinity/adopted/inf-adopted-session-record.c: Add sync-begin
	and sync-end to initial, so that the content can directly be fed to an
	InfSession in INF_SESSION_SYNCHRONIZING state on replay.

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_open_group): Added correct const qualifiers
	to methods parameter.

	* libinftext/inf-text-session.c: Don't disconnect from algorithm's
	signals in INF_SESSION_SYNCHRONIZING state, because we don't have an
	algorithm yet at that point. This prevents glib warnings.

	* test/inf-test-text-replay.c:
	* test/Makefile.am: Added test that replays a record from
	InfAdoptedSessionRecord internally (without visualization). This can
	be used to reproduce libinfinity bugs.

2008-08-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:OBJECT,OBJECT,BOOLEAN
	marshaller.

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c: Added user parameter
	for the "execute-request" signal.

	* libinfinity/adopted/inf-adopted-session.c: Adapt.

	* libinfinity/adopted/inf-adopted-session-record.c: Store vector time
	diffs between requests of the same user, so that the XML can be given
	directly to InfAdoptedSession for replay.

2008-08-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-central-method.h:
	* libinfinity/inf-central-method.c: Moved the implementation of a
	method implementing central communication into the public libinfinity
	API, so that it can be used by different networks.

	* libinfinity/method/local-central/inf-method-local-central.c: Use the
	InfCentralMethod API.

	* libinfinity/Makefile.am: Added InfCentralMethod to the build.

2008-08-14  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_buffer_iter_get_bytes): Fixed a bug when the
	iterator only contains a newline. In that case, the function fielded
	totally wrong values due to an underflow.

2008-08-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session-record.h:
	* libinfinity/adopted/inf-adopted-session-record.c:
	* libinfinity/adopted/Makefile.am: Introduced InfAdoptedSessionRecord,
	a class to record sessions to replay later.

2008-08-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c: Double the interval
	within which noop requests are sent, and only send a noop if a remote
	request has been executed since the last request was sent.

2008-08-08  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Call base class dispose
	instead of finalize, on dispose.

2008-08-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model.h
	* libinfgtk/inf-gtk-browser-store.c
	* libinfgtk/inf-gtk-browser-view.c: Fix searching in browser view by
	setting the search column correctly, and allowing non-toplevel columns
	to have a name.

2008-07-23  Benjamin Herr  <ben@0x539.de>

	* libinftext/inf-text-session.c: Apply attributes to operation xml
	element instead of its parent.

2008-07-23  Benjamin Herr  <ben@0x539.de>

	* libinftext/inf-text-session.c: Properly initialised operation
	variable before accessing it.
	* ChangeLog: Fixed date of preceeding change log entry.

2008-07-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.h:
	* libinfinity/adopted/inf-adopted-session.c: Changed the
	xml_to_operation and operation_to_xml vfuncs to xml_to_request and
	request_to_xml, to allow generation of custom requests, and to
	decouple the update of local user's last send vector from the
	serialization of a request. Added
	inf_adopted_session_read_request_info() and
	inf_adopted_session_write_request_info() to ease implementation by
	derived classes.

	* libinftext/inf-text-session.c: Adapted to API change.

2008-07-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c: Added documentation,
	removed has_connection and lookup_connection functions from
	InfConnectionManagerMethodDesc, we just rely on the registered
	connections for this.

	* libinfinity/methods/local-central/inf-method-local-central.c: Adapt
	to the API change.

	* libinfinity/adopted/inf-adopted-session.h:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-split-operation.h:
	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-user.h:
	* libinfinity/common/inf-buffer.h: Added some more documentation.

2008-07-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c: Added "execute-request"
	signal that is emitted every time a request is executed.

2008-07-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request-log.c: Added more
	documentation.

	* libinfinity/adopted/inf-adopted-state-vector.c: Fixed formatting
	slightly.

	* TODO: Added ideas to improve performance.

2008-07-15  Benjamin Herr  <ben@0x539.de>

	* libinfinity/adopted/inf-state-vector.h: Changed state vector typedef
	from GSequence to an opaque type.
	* libinfinity/adopted/inf-state-vector.c: Changed state vector to use
	an array of ids and timestamps instead of a GSequence.
	* tests/inf-test-state-vector.c: Added a bunch of poorly-thought-out
	tests.

2008-07-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c:
	* libinfinity/adopted/inf-adopted-no-operation.h:
	* libinfinity/adopted/inf-adopted-no-operation.c:
	* libinfinity/adopted/inf-adopted-operation.h:
	* libinfinity/adopted/inf-adopted-operation.c:
	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request.c:
	* libinfinity/common/inf-user-table.h:
	* libinfinity/common/inf-user-table.c:
	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-io.c:
	* libinfinity/common/inf-session.c: Added/Fixed documentation.

2008-07-12  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-cleanup.c (perform_test): Terminate the call to
	g_object_new that creates the InfTextSession with NULL, preventing
	memory corruption.

2008-07-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c
	(infc_session_proxy_set_connection): Correctly thaw the notification
	queue of the session at the end of the function.

2008-07-11  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Update user tag
	"background-color" property on user color change.

2008-07-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_can_undo_redo): Changed semantics of this
	function for non-local users so that it returns whether the user in
	question can issue an Undo or Redo command in its own current state
	(as known to the local site).

	* test/inf-test-text-cleanup.c: Allow can-undo and can-redo
	verifications when the user's vector does not match the current one
	from the algorithm.

	* test/cleanup/cleanup-05.xml:
	* test/cleanup/cleanup-06.xml:
	* test/cleanup/cleanup-07.xml: Yet another three tests.

2008-07-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_cleanup): Don't use least common successor but
	least common predecessor as reference when cleaning up requests. This
	was always meant to be the predecessor, but used the successor until
	now because of me being stupid. Also fixed the cleanup process so that
	when all sites processed all operations the max total log size really
	is not exceeded.

	* libinfinity/adopted/inf-adopted-request-log.c
	(inf_adopted_request_log_remove_requests): Don't touch next-undo or
	next-redo when no requests are removed.

	* test/cleanup/cleanup-01.xml: Empty the initial buffer for
	simplicity.

	* test/cleanup/cleanup-02.xml:
	* test/cleanup/cleanup-03.xml:
	* test/cleanup/cleanup-04.xml: Three more cleanup tests.

2008-07-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Use G_MAXUINT instead
	of 0 for max-total-log-size to mean unlimited, so a max-total-log-size
	of 0 is allowed.

	* test/inf-test-text-cleanup.c:
	* test/inf-test-text-session.c: Only process XML files in the
	subdirectories, not Makefiles and other stuff.

2008-07-05  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c
	(inf_adopted_algorithm_can_undo, inf_adopted_algorithm_can_redo):
	Added support for returning undo/redo status for non-local users.
	However, this currently returns whether those users can issue
	undo/redo in the algorithm's current state. This especially means that
	a request received from such a non-local user may be valid even if
	this function returns false, if the request was generated at another
	state. This will probably be changed in the future to return whether
	the given user can issue an Undo/Redo request in its own state
	(as known to the local site).

	* libinfinity/adopted/inf-adopted-session.c: Added the
	"max-total-log-size" property that is delegated to the construction of
	the algorithm.

	* test/inf-test-text-cleanup.c: Added a test that reads XML files
	specifying test scenarios from test/cleanup to test whether the
	algorithm's cleanup routines (correctly shrink request logs, correctly
	issue can-undo/can-redo) work.

	* test/cleanup/cleanup-01.xml: First simple cleanup test.

	* test/session/Makefile.am:
	* test/cleanup/Makefile.am:
	* configure.ac: Add the test files to the distribution.

	* test/Makefile.am: Add the new file to the build.

2008-07-05  Armin Burgmeier  <armin@arbur.net>

	* test/session/: Renamed from test/std/.

	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinfinity/Makefile.am:
	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinftextgtk/Makefile.am:
	* libinfgtk/Makefile.am:
	* libinfinity/Makefile.am:
	* libinfinity/adopted/Makefile.am:
	* libinfinity/client/Makefile.am:
	* libinfinity/common/Makefile.am:
	* libinfinity/server/Makefile.am:
	* libinftext/Makefile.am:
	* libinftextgtk/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES which
	is deprecated.

	* test/util/inf-test-util.h:
	* test/util/inf-test-util.c: Moved some common functions used in
	multiple tests here for code reuse.

	* test/Makefile.am:
	* configure.ac: Add to build.

	* test/inf-test-text-session.c: Use the new test functions.

2008-07-03  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_insert_text_cb,
	inf_text_gtk_buffer_delete_range_cb): Revalidate iterators at the end,
	so that others can call gtk_text_buffer_insert and
	gtk_text_buffer_delete with normal semantics.

2008-06-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session-proxy.c: Don't assign user IDs that
	are already in use by users that were already in the initial session.

2008-06-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Fixed a crash when
	<stream:error> was received.

	* libinfinity/client/infc-session-proxy.h:
	* libinfinity/client/infc-session-proxy.c: Added
	infc_session_proxy_get_connection and
	infc_session_proxy_get_subscription_group, correctly unset underlying
	session's subscription group when the connection is released.

2008-06-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c
	(inf_adopted_session_constructor): Add initial local users to the list
	of local users.

	* libinfinity/client/infc-browser.c (infc_browser_handle_add_node):
	Fix the check for a <subscribe/> child being present.

	* libinfinity/common/inf-user-table.c
	(inf_user_table_add_user_handler): Ref users put into the user table.

	* libinfinity/common/inf-session.c (inf_session_net_object_sent):
	Don't assert that the sent message was a synchronization message if we
	found a synchronization to the connection since we could already have
	sent stuff that is meant to be processed after the synchronization.
	(inf_session_add_user): Unref user after having put it into the user
	table.

	* libinfinity/server/infd-directory.c: Removed the check that
	available users in a synced-session need to be from the synchronizing
	connections since that check has been moved to InfdSessionProxy.

	* libinfinity/server/infd-session-proxy.c: Added the mentioned check
	here, and additionally add the user to the list of subscribed users
	for that connection so that, when the connection unbsubscribes again,
	the user will be set to unavailable. Also removed the
	subscribe-sync-conn property, instead allow calling
	infd_session_proxy_subscribe_to() when the session is in
	INF_SESSION_SYNCHRONIZING state.

	* test/inf-test-text-session.c: Unref user after having put in into
	the user table.

	* infinoted/note-plugins/text/infd-note-plugin-text.c
	(infd_note_plugin_text_read_user): Unref user after having put it into
	the user table.

2008-06-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.c (inf_session_sync_strerror): Fix a
	typo.
	(inf_session_process_xml_sync_impl): Set connection property to the
	synchronizing connection if not given.
	(inf_session_handle_received_sync_message): Cope with the fact that
	some callback in process_xml_sync could have cancelled the
	synchronization.

	* libinfinity/server/infd-directory.c: Make sure that available users
	in a synced-in session are from the synchronizing connection, and
	only allow them if the synchronizing connection is subscribed.
	Otherwise, close the session which effectively cancels the sync-in.

	* libinfinity/server/infd-session-proxy.c: Fixed two typos in
	comments.

2008-06-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/infc-session-proxy.c
	(infc_session_proxy_dispose): Properly release connection on dispose,
	chain to base class after having unrefed the session, so that weak
	references are notified after object has been fully disposed. This
	fixes a warning when a successful sync-in is removed.

	* libinfinity/common/inf-session.c (inf_session_close_handler):
	Changed a comment to make clear how synchronizations are removed.

2008-06-24  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c
	(inf_connection_manager_register_connection): Fixed a severe reference
	counting issue: Registering a connection multiple times did not
	increase the reference count.

	* libinftext/inf-text-session.c
	(inf_text_session_selection_changed_data_free): Fixed the function
	signature to match GClosureNotify.
	(inf_text_session_segment_to_xml): Don't assert if the input text is
	too large, this will be handled in a second run.

2008-06-22  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_buffer_iter_get_bytes): Fix two logic errors so
	that the function behaves as expected.

2008-06-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c (infc_browser_handle_sync_in):
	Free type after it has been used, not before, and add the sync in
	after having created the node, because the sync-in needs to know the
	node.

	* libinfinity/client/infc-session-proxy.c
	(infc_session_proxy_net_object_received): Fix an assertion so that
	synchronization messages are passed to the underlying InfSession even
	when they do not come from the subscription connection.

	* libinfinity/server/infd-directory.c
	(infd_directory_node_add_sync_in): Send parent node of sync-in, add
	connection to sync group if it is not the subscription group.

	* libinfgtk/inf-gtk-browser-view.c: Added two TODO comments about
	watching a signal to get notified when a sync-in begins.

2008-06-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.c (inf_session_close_handler): Check
	that the connection is still open before calling
	inf_session_send_sync_error(). This fails otherwise if the session
	was closed explictely in response to the status change notify of
	the underlaying connection.
	(inf_session_synchronization_failed_handler): Don't assert on
	INF_SESSION_CLOSED since the session could be closed between the
	beginning of the signal emission and the run of the default handler.

	* libinfinity/client/infc-browser.c
	(infc_browser_net_object_received): If an error was set, and the node
	had a seq set, then fail the corresponding request since the server
	reply could not be processed.

	* libinfinity/server/infd-directory.c (infd_directory_add_sync_in):
	Unref the synchronization group after having passed it to
	_create_session_proxy().

	* libinftextgtk/inf-text-gtk-buffer.c
	(inf_text_gtk_buffer_set_active_user): Allow the new active user to be
	NULL to unset the active user, as used in _dispose().

2008-06-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_iter_get_path().

2008-06-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c: Added parent parameter
	for inf_connection_manager_add_connection() and
	inf_connection_manager_register_connection().

	* libinfinity/server/infd-session-proxy.h:
	* libinfinity/server/infd-session-proxy.c: Added parent_group
	parameter for infd_session_proxy_subscribe_to(), making sure the first
	message in the subscription group is sent after the client knows about
	the subscription (group).

	* libinfinity/server/infd-directory.c:
	* libinfinity/methods/local-central/inf-method-local-central.c: Adapt
	to API changes.

2008-06-14  Armin Burgmeier  <armin@arbur.net>

	* test/inf-test-text-operations.c: Remove an unused variable.

	* infinoted/infinoted-main.c: Listen on IPv6, fall back to IPv4 if
	that fails.

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c: Do no longer rely on
	the local/remote address for publisher identification, but use a
	host-local UUID for this.

	* libinfinity/common/inf-method-manager.c: Print error message when a
	method could not be loaded.

	* libinfinity/methods/local-central/inf-method-local-central.c:

	* README:
	* configure.ac: Depend on libuuid.

2008-05-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Added two assertions in
	infc_browser_handle_sync_in() and infc_browser_add_note_with_content()
	that make sure that the provided session is not yet subscribed in case
	that the client wants to subscribe to the newly created node.

	* libinfgtk/inf-gtk-browser-view.c: Show progress of sync-ins.

2008-05-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Replaced the "begin-sync-in"
	signal and the infc_browser_iter_get_sync_in_requests() method by a
	infc_browser_iter_get_sync_in() method that provides the same
	information.

2008-05-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_UNEXPECTED_SYNC_IN error code.

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added support for Sync-Ins,
	resulting in these new methods: infc_browser_add_note_with_content(),
	infc_browser_iter_get_sync_in_requests(), and the "begin-sync-in"
	signal.

	* libinfinity/server/infd-directory.c: Added node name and node type
	in the <sync-in> reply.

2008-05-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Added <subscribe> child tags
	into <add-node> replies that have a <subscribe> child set, telling
	group name and method of subscription group.

2008-05-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c: Correctly remove noop
	timer when the session is destroyed.

2008-05-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session-proxy.h:
	* libinfinity/server/infd-session-proxy.c: Added a synchronize
	parameter to infd_session_proxy_subscribe_to, that specifies whether
	to synchronize the session before subscription.

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added support for so-called
	Sync-Ins. Sync-Ins are nodes created upon a client request that have
	initial content synchronized from the client.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.c: Don't rely on the underlying model
	containing all browser nodes since a InfGtkBrowserModelFilter might
	filter some.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model-sort.c:
	* libinfgtk/inf-gtk-browser-model-filter.c: Fix call to
	gtk_tree_model_{filter,sort}_convert_child_iter_to_iter() in
	browser_iter_to_tree_iter.

	* libinfgtk/inf-gtk-browser-view.c: Don't rely on the model to have
	GTK_TREE_MODEL_ITERS_PERSIST set.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-standalone-io.c: Fixed endless loop when two
	or more timeouts have been registered.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model-sort.c:
	* libinfgtk/inf-gtk-browser-model-filter.c: Explicitely sync with
	initial model in constructor since we don't get notified for it.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Added the "selection_changed"
	signal.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model-filter.c:
	(inf_gtk_browser_model_filter_new): Fixed property name in
	g_object_new which is "child-model" instead of "model" for
	GtkTreeModelFilter.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Made the plugin parameter to
	infc_browser_add_note() const.

2008-05-09  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Added
	inf_gtk_browser_view_get_selected().

2008-05-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.h: Removed declaration of
	inf_gtk_browser_store_resolve().

	* libinfgtk/inf-gtk-browser-model.c: Adjusted reference from
	inf_gtk_browser_store_resove() to inf_gtk_browser_model_resolve().

2008-05-08  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/libinfinity/libinfinity-docs.sgml: Reordered, added a
	separate section for each sub-library (common, adopted, client,
	server).

	* docs/reference/libinftext/Makefile.am:
	* docs/reference/libinftext/tmpl/*.sgml:
	* docs/reference/libinftext/libinftext-docs.sgml:
	* docs/reference/libinftext/libinftext-overrides.txt:
	* docs/reference/libinftext/libinftext-sections.txt:
	* docs/reference/libinftext/libinftext.types:
	* docs/reference/Makefile.am:
	* configure.ac: Added gtk-doc documentation for libinftext.

	* docs/reference/libinfgtk/Makefile.am:
	* docs/reference/libinfgtk/tmpl/*.sgml:
	* docs/reference/libinfgtk/libinfgtk-docs.sgml:
	* docs/reference/libinfgtk/libinfgtk-overrides.txt:
	* docs/reference/libinfgtk/libinfgtk-sections.txt:
	* docs/reference/libinfgtk/libinfgtk.types:
	* docs/reference/Makefile.am:
	* configure.ac: Added gtk-doc documentation for libinfgtk.

	* docs/reference/libinftextgtk/Makefile.am:
	* docs/reference/libinftextgtk/tmpl/*.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-docs.sgml:
	* docs/reference/libinftextgtk/libinftextgtk-overrides.txt:
	* docs/reference/libinftextgtk/libinftextgtk-sections.txt:
	* docs/reference/libinftextgtk/libinftextgtk.types:
	* docs/reference/Makefile.am:
	* configure.ac: Added gtk-doc documentation for libinftextgtk.

	* libinftext/inf-text-buffer.c:
	* libinftext/inf-text-chunk.c:
	* libinfgtk/inf-gtk-browser-model.c:
	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/inf-gtk-io.c: Fixed minor documentation errors.

2008-05-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model-sort.c: Don't call
	inf_gtk_browser_model_set_browser() on child model in default signal
	handler of set_browser. This would lead to endless recursion.

	* libinfgtk/inf-gtk-browser-model-filter.h:
	* libinfgtk/inf-gtk-browser-model-filter.c:
	* libinfgtk/Makefile.am: Added InfGtkBrowserModelFilter, deriving from
	GtkTreeModelFilter and implementing InfGtkBrowserModel.

2008-05-08  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-store.h: Removed two declarations that are
	already in inf-gtk-browser-model.h.

	* libinfgtk/inf-gtk-browser-model-sort.h:
	* libinfgtk/inf-gtk-browser-model-sort.c:
	* libinfgtk/Makefile: Added a new class deriving from GtkTreeModelSort
	that implements InfGtkBrowserModel.

2008-04-20  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c:
	* Makefile.am: Changed this class to an interface with a resolve() and
	browser_iter_to_tree_iter() virtual function, to allow custom models
	to be given to InfGtkBrowserView.

	* libinfgtk/inf-gtk-browser-store.h:
	* libinfgtk/inf-gtk-browser-store.c: Moved the original
	InfGtkBrowserModel class to InfGtkBrowserStore, implementing the new
	interface.

	* libinfgtk/inf-gtk-browser-view.c: Added a missing include, remove
	some unused variables.

	* test/inf-test-gtk-browser.c: Adapt to the new API.

2008-04-20  Armin Burgmeier  <armin@arbur.net>

	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* libinfinity/common/inf-connection-manager.c: Improved error
	messages.

	* libinfinity/server/infd-session-proxy.c: Added a TODO comment about
	not propagating non-fatal errors to the connection manager.

2008-04-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Remove the session proxy
	associated to an entry when the corresponding session is closed.

2008-04-13  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c: Reset the _private
	field of queued xmlNodePtr, so that libxml++ (when linked in) does not
	assume that's the C++ wrapper for the node (it tries to delete it).

2008-04-12  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk/inf-text-gtk-buffer.c: Allow moving the text buffer's
	cursor and selection without active user.

2008-04-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.c: Emit the subscribe-session signal
	before finishing a pending request, so that signal handlers of
	InfcNodeRequest::finished can access the newly created session via
	infc_browser_iter_get_session().

	* libinfinity/common/inf-xmpp-connection.c: Added some more comments
	about RFC compliance.

2008-03-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/Makefile.am: Build methods after having built
	libinfinity, so they can link against it.

	* libinfinity/methods/local-central/Makefile.am: Link against
	libinfinity-1.0 instead of libinfinity_common so that the marshal
	functions are not undefined.

2008-03-06  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c: Added a "name" column for
	toplevel items, to support sensible item names for direct connections.

	* libinfgtk/inf-gtk-browser-view.c: Show that name.

	* libinfinity/common/inf-connection-manager.c: Check that such a group
	is not already present in inf_connection_manager_create_group() and
	inf_connection_manager_join_group().

	* libinfinity/common/inf-discovery-avahi.c: Also weakref discovered
	XMPP connection when we did not need to create it. We don't strongref
	it here neither, and must get notified when to invalidate the cache.

2008-03-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-config.h.in: Configuration file that only contains
	prefixed defines, so it is safe to be installed.

	* libinfinity/Makefile.am: Noted that inf-config.h should be
	installed, in contrast to inf-marshal.h.

	* configure.ac: Let autoheader generate config.h, not
	libinfinity/inf-config.h.

	* libinfinity/common/inf-tcp-connection.c: Fixed a typo (#error ->
	@error).

2008-03-04  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/Makefile.am:
	* libinfinity/common/Makefile.am:
	* libinfinity/adopted/Makefile.am:
	* libinfinity/client/Makefile.am:
	* libinfinity/server/Makefile.am: Fixed include files installation
	path.

2008-03-04  Armin Burgmeier  <armin@arbur.net>

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Don't subscribe on row activation,
	but emit an activate signal so that client code can subscribe.

	* test/inf-test-gtk-browser.c: Adapt.

2008-08-24  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xml-util.h:
	* libinfinity/common/inf-xml-util.c: Added
	inf_xml_util_get_attribute_double(),
	inf_xml_util_get_attribute_double_required() and
	inf_xml_util_set_attribute_double().

	* libinftext/inf-text-user.h:
	* libinftext/inf-text-user.c: Added the "hue" property.

	* libinftext/inf-text-session.c: Adapted get_xml_user_props and
	set_xml_user_props.

	* infinoted/note-plugins/text/infd-note-plugin-text.c: Save hue
	property in filesystem storage.

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Set tag background color
	according tu hue property of author, added the "user-table" property,
	take in inf_text_gtk_buffer_new().

	* test/inf-test-gtk-browser.c: Adapt to API change.

2008-02-24  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c: Delay caret updates if too frequent.

	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-io.c: Added a GDestroyNotify parameter to
	inf_io_watch() and inf_io_add_timeout().

	* libinfinity/common/inf-standalone-io.c
	* libinfgtk/inf-gtk-io.c: Adapt implementation.
	
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/common/inf-discovery-avahi.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/server/infd-tcp-server.c:
	* test/inf-test-browser.c: Adapt usage.

	* libinfinity/server/infd-directory.c: Make use of the notify to get
	rid of an unpleasant hack.

2008-02-23  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.c:
	inf_session_get_synchronization_progress(): Don't divide by zero if
	the initial sync-begin was not yet received.

	* libinfinity/adopted/inf-adopted-session.c: Send noop request after
	15 seconds of inactivity.

2008-02-23  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_iter_save_session().

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added the synchronization-begin
	signal.

	* libinfinity/server/infd-session-proxy.c: Don't consider the session
	idle when there are ongoing synchronizations.

2008-02-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.c: Handle <save-session> request,
	automatically store idle sessions into storage, unload from RAM.

	* libinfinity/server/infd-session-proxy.h:
	* libinfinity/server/infd-session-proxy.c: Added the "idle" property,
	the "add-subscription" and "remove-subscription" signals and
	infd_session_proxy_has_subscriptions(),
	infd_session_proxy_is_subscribed() and infd_session_proxy_is_idle().

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_UNSUBSCRIBED.

	* infinoted/note-plugins/text/infd-note-plugin-text.c: Fix a bug (an
	error was reported when everything was OK) when loading user-modified
	text.

2008-02-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request-log.c: Changed
	inf_adopted_request_log_upper_related() to take the request index
	instead of the request itself.

	* libinfinity/common/inf-method-manager.h:
	* libinfinity/common/inf-user-table.h:
	* libinfinity/adopted/inf-adopted-session.h: Removed superflous
	#defines, resulting from cut'n'pasted code.

	* libinfinity/adopted/inf-adopted-algorithm.c: Implemented caching for
	translated requests. This speeds up translation of undo requests that
	need to be transformed against several requests of others. This breaks
	test #25. However, the problem seems not to be with the cache but with
	the transformation function. I need to investigate this separately.
	Also simplified cleanup of request logs.

	* libinfinity/common/inf-buffer.c:
	* libinfinity/common/inf-session.c:
	* libinfinity/adopted/inf-adopted-user.c:
	* libinfinity/server/infd-directory.c:
	* docs/reference/libinfinity/libinfinity-sections.txt: Documentation
	fixes.

	* test/inf-test-text-session.c: Don't interpret given random seed as
	test directory.

	* test/std/test-47.xml: Added new test transforming ten undo requests
	against ten requests from another user. This is unacceptably slow
	without the request cache mentioned above.

2008-02-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-split-operation.c:
	* libinfinity/common/inf-ip-address.c: More documentation.

2008-02-17  Benjamin Herr <ben@0x539.de>

	* libinfinity/common/inf-discovery.c:
	* libinfinity/common/inf-session.c:

	Added some more completely made-up documentation!

2008-02-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-io.c:
	* libinfinity/server/infd-directory.c:
	* libinfinity/common/inf-net-object.c:
	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/client/infc-request.c: Documented these classes.

	* docs/reference/libinfinity/libinfinity.types: Committed types file
	as it seems to be required to generate correct documentation.

	* docs/reference/libinfinity/libinfinity-sections.txt: Order a bit.

2008-02-17  Benjamin Herr <ben@0x539.de>

	* libinfinity/common/inf-user-table.c:
	* libinfinity/common/inf-tcp-connection.c:
	* libinfinity/common/inf-xml-connection.c:

	Added preliminary documentation to a few signals.


2008-02-17  Benjamin Herr <ben@0x539.de>

	* libinfinity/adopted/inf-adopted-no-operation.c:
	* libinfinity/adopted/inf-adopted-split-operation.c:
	* libinfinity/server/infd-storage.c:
	* libinfinity/server/infd-storage.h:
	* libinfinity/common/inf-net-object.c:
	* libinfinity/common/inf-standalone-io.c:
	* libinfinity/common/inf-user-table.c:
	* libinfinity/common/inf-method-manager.c:
	* libinfinity/common/inf-ip-address.c:
	* libinfinity/common/inf-xmpp-manager.c:
	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-session.c:
	* libinfinity/client/infc-request-manager.c:
	* libinfinity/client/infc-request-manager.h:

	Solved minor documentation generation errors/warnings


2008-02-17  Armin Burgmeier  <armin@arbur.net>

	* docs/reference/libinfinity/tmpl/*.sgml: Committed SGML files
	required by gtk-doc.

2008-02-17  Benjamin Herr <ben@0x539.de>

	* **/*.c: changes "/** foo:\n *" into "/**\n * foo:"

2008-02-17  Armin Burgmeier  <armin@arbur.net>

	* autogen.sh: Added autogen.sh which also calls gtkdocize in addition
	to creating all the necessary build files.

	* configure.ac: Added gtk-doc support.
	* Makefile.am: Added docs to subdirs.

	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinfinity/client/infc-browser-iter.c:
	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Documentation fixes.

	* m4: Added m4 directory as required by some new configure macro.

	* docs/Makefile.am:
	* docs/reference/Makefile.am:
	* docs/reference/libinfinity/Makefile.am:
	* docs/reference/version.xml.in:
	* docs/reference/libinfinity/libinfinity-sections.txt:
	* docs/reference/libinfinity/libinfinity-docs.sgml:
	* docs/reference/libinfinity/libinfinity-overrides.txt: Added initial
	gtk-doc files to create documentation. Perhaps some more are required
	which I will commit when someone misses them. I just don't want to
	check in generated files.

	* test/inf-test-text-session.c: Reduced permutations to 100 so that it
	finishes earlier.

2008-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.c: Fixed possible memory
	corruption when entries need to be reallocated.

	* TODO: Update.

2008-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Replaced user_id ->
	requset log hash table by a user array, hopefully making some loops
	faster.

2008-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c: Read participating
	users directly from user table, remove
	inf_adopted_algorithm_add_user().

	* libinfinity/adopted/inf-adopted-session.c: Adapt to API change.

2008-02-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Split the
	transformation part of inf_adopted_algorithm_translate_request() into
	a separate function inf_adopted_algorithm_transform_request().

2008-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.c: Fixed a bug introduced
	with the last commit that broke collaboration.

2008-02-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user-table.h:
	* libinfinity/common/inf-user-table.c: Added add-local-user and
	remove-local-user signals, and inf_user_table_foreach_local_user().

	* libinfinity/server/infd-note-plugin.h:
	* libinfinity/server/infd-directory.c: Changed note plugin API so that
	read_session() creates the session instead of filling an existing
	session object.

	* infinoted/note-plugins/text/infd-note-plugin-text.c: Adapt.

	* libinfinity/client/infc-session-proxy.c: Removed some commented-out
	code.

	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request.c: Added
	inf_adopte_request_affects_buffer().

	* libinfinity/adopted/inf-adopted-algorithm.c: Don't increase vector
	time of an incoming request's user if the request does not affect the
	buffer.

	* libinfinity/adopted/inf-adopted-session.c: Don't increase the last
	send vector if the sent request does not affect the buffer.

	* libinftext/inf-text-session.c: Broadcast cursor positions and
	selections.

	* libinftextgtk/inf-text-gtk-buffer.c: Update active user's cursor
	position when the "insert" or "selection-bound" mark is moved in the
	buffer.

2008-02-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c: Added
	inf_adopted_algorithm_can_undo() and inf_adopted_algorithm_can_redo()
	and the apply-request signal.

	* libinfinity/adopted/inf-adopted-session.h:
	* libinfinity/adopted/inf-adopted-session.c: Added
	inf_adopted_session_undo() and inf_adopted_session_redo().

	* libinftext/inf-text-session.c: Don't broadcast while the algorithm
	itself is applying a request.

	* test/inf-test-gtk-browser.c: Added GUI for undo/redo.

2008-02-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c: Send undo and redo
	operations as child of the <request> element instead of as an
	attribute of it. This is how the receiving code expects it.

2008-02-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c: Rewrite connection
	manager to allow different publishers for groups with the same name,
	as in the spec. Also support dynamic loading of additional
	communication methods.

	* libinfinity/common/Makefile.am
	* libinfinity/common/inf-method-manager.h:
	* libinfinity/common/inf-method-manager.c: New InfMethodManager class
	to manage available communication methods.

	* libinfinity/Makefile.am
	* libinfinity/methods/Makefile.am:
	* libinfinity/methods/local-central/Makefile.am:
	* libinfinity/methods/local-central/inf-method-local-central.c: Simple
	"central" method for local networks that uses the publisher as server
	through which all messages are relayed.

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-net-object.h:
	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-user.h:
	* libinfinity/common/inf-error.c:
	* libinfinity/common/inf-net-object.c:
	* libinfinity/common/inf-session.c:
	* libinfinity/common/inf-user.c:
	* libinfinity/common/inf-xml-connection.c:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-split-operation.c:
	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/infd-server-pool.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/infc-session-proxy.c:

	* test/inf-test-browser.c:
	* test/inf-test-daemon.c:
	* test/inf-test-text-session.c:
	* test/inf-test-gtk-browser.c:

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c:
	* libinftext/inf-text-session.c:
	* infinoted/infinoted-main.c: Adapt to API changes.

	* configure.ac: Generate Makefiles in newly added directories.

	* INSTALL: Autotools seemed to update this.

2007-12-22  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-chunk.c: Fixed a crash on amd64.

	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-split-operation.c:
	* libinfinity/common/inf-xmpp-manager.c:
	* libinfinity/common/inf-connection-manager.c:
	* libinfinity/common/inf-xmpp-connection.c:
	* libinftext/inf-text-default-insert-operation.c:
	* test/inf-test-chunk.c: Fixed several warnings.

2007-12-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c: Changed scope for point
	to point connections from "p2p" to "ptp", as in the spec.

	* libinftextgtk/inf-text-gtk-buffer.c: Make sure only one user color
	tag is applied at once.

2007-12-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.c:
	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-session.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/client/infc-session-proxy.c: Replaced user-leave by
	user-status-change request, which is more general.

	* libinfinity/server/infd-directory.c: Indentation fixes, fixed a
	memory leak in infd_directory_handle_explore_node().

	* libinftext/inf-text-session.c: Fixed an infinite loop when writing
	delete operations to XML.

	* infinoted/infinoted-creds.c: Include <glib.h> for glib 2.15
	compatibility.

2007-12-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-session.c: Correctly pass for_sync
	to inf_adopted_session_xml_to_request() in
	inf_adopted_session_process_xml_sync(). This fixes editing documents
	with non-empty history.

	* libinfinity/adopted/inf-adopted-request-log.c: Adjust log begin when
	adding first entry to request log and that entry has non-zero vector
	time for the log's user.

	* libinfinity/adopted/inf-adopted-algorithm.c: Initialize new user's
	component of current vector time with the corresponding component of
	its vector time instead of the end of its request log because the
	request log might be empty.

	* infinoted/infinoted-main.c: Don't leak dirname in
	infinoted_main_create_dirname() in case of success.

2007-12-21  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-chunk.c:
	* libinftext/inf-text-session.c: Swapped bytes/length arguments to
	inf_text_chunk_insert_text to fix handling of non-ASCII chars.

	* test/inf-test-chunk.c: Add an umlaut to the chunk to check UTF-8.

	* libinfinity/common/inf-session.c: Fixed signature of
	inf_session_connection_notify_status_cb().

	* TODO: Added a note about adding a connection-closed signal to
	connection manager.

2007-12-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.c: Forward scope="group"
	messages.

	* test/inf-test-gtk-browser.c: Retry user join with another name if
	the name is already in use, use algorithm's current vector time as
	initial time.

2007-12-04  Armin Burgmeier  <armin@arbur.net>

	* configure.ac:
	* README: Require gnutls >= 1.7.2 and gsasl >= 0.2.21.

2007-12-04  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Define INFINOTE_HAVE_AVAHI instead of HAVE_AVAHI to
	not conflict with other packages. We probably still need to get rid
	of autoheader to remove the default defines from inf-config.h.

	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c:
	* infinoted/infinoted-main.c:
	* test/inf-test-daemon.c:
	* test/inf-test-gtk-browser.c: Adjusted and fixed non-avahi build.

2007-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinftextgtk-1.0.pc.in: Added missing file.

2007-12-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.c:
	* libinfinity/adopted/inf-adopted-session.c: Allow arbitrary ID
	for first request.

	* libinfinity/common/inf-connection-manager.c: Re-lookup NetObject for
	every request in group message.

	* libinftextgtk/inf-text-gtk-buffer.c: Fixed
	inf_text_gtk_buffer_buffer_get_slice if region to slice ends before
	segment ends.

2007-10-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user.c: Return flags instead of status in
	inf_user_get_flags.

	* libinfinity/common/inf-connection-manager.c: Flag all messages as
	point-to-point in inf_connection_manager_send_multiple_to(), instead
	of just the first one. Also copy _private the private field in
	inf_connection_manager_send_to_group() because xmlCopyNode does not
	already do this.

	* libinfinity/common/inf-session.c: Correctly initialize GValue with
	zeroes before calling g_value_init(), implemented status user
	property. Emit close signal in synchronization failed default handler.

	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request-log.c: Don't take log_begin
	parameter in inf_adopted_request_log_new(), return NULL instead of
	crashing in inf_adopted_request_log_next_undo() and
	inf_adopted_request_log_next_redo() when there is no next undo or redo
	request, respectively.

	* libinfinity/adopted/inf-adopted-user.c: Adapt to API change in
	InfAdoptedRequestLog.

	* libinfinity/adopted/inf-adopted-session.c: Increase last send vector
	instead of request's vector in inf_adopted_session_request_to_xml()
	(as originally intended). Initialize user field when creating
	InfAdoptedSessionLocalUser. Removed log-begin user property as in the
	spec.

	* libinfinity/server/infd-session-proxy.c: Use INF_SESSION_GET_CLASS
	instead of INF_SESSION_CLASS in infd_session_proxy_handle_user_join,
	initialize GValues correctly.

	* libinfinity/client/infc-session-proxy.c: Correctly set flags on user
	(re)join, don't release session when when it is closed so it is still
	accessible.

	* libinftext/inf-text-user.c: Don't make the caret-position and
	selection-length properties construct only.

	* libinftext/inf-text-session.c: Deal with author_id=0 in
	inf_text_session_process_xml_sync().

	* libinftextgtk/inf-text-gtk-buffer.c: Fixed assertions in
	inf_text_gtk_buffer_set_active_user(), fixed potential endless loops
	in inf_text_gtk_buffer_iter_prev_author_toggle(),
	inf_text_gtk_buffer_iter_next_author_toggle() and
	inf_text_gtk_buffer_buffer_get_slice(), connect to text buffer's
	signals when the buffer property is set, stop emission in
	inf_text_gtk_buffer_delete_range_cb() and
	inf_text_gtk_buffer_insert_text_cb() on the correct object.

	* test/inf-test-gtk-browser.c: Set vector property for join request.

2007-10-17  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-main.c: Added --port-number command line option
	and load/save diffie-hellman parameters to current directory. This is
	just temporary to ease testing for me, so I don't have to wait too
	long when I need to restart the server again.

	* infinoted/note-plugins/text/infd-note-plugin-text.c: Allow author of
	segments to be 0, adapt to infd_filesystem_storage_open() API change.

	* libinfinity/inf-marshal.in: Added VOID:BOXED,BOXED,OBJECT
	marshaller.

	* libinfinity/common/inf-connection-manager.c: Allow
	inf_net_object_received() to remove itself from the connection manager
	group through which the message was passed, don't print a warning if a
	message for a nonexistant group is received.

	* libinfinity/common/inf-session.c: Only unref connection manager
	group in inf_session_release_connection() when it is set.

	* libinfinity/server/infd-filesystem-storage.h:
	* libinfinity/server/infd-filesystem-storage.c: Added note type
	parameter to infd_filesystem_storage_open(), and address correctly the
	file on disk.

	* libinfinity/server/infd-session-proxy.c: Keep session when it is
	closed, release in disponse().

	* libinfinity/server/infd-directory.c: Correctly unref
	InfConnectionManagerGroup (can't be freed with g_free()) in
	infd_directory_node_add_note().

	* libinfinity/server/infd-server-pool.c: Release reference on
	InfdTcpServer in infd_server_pool_entry_publish_with().

	* libinfinity/client/infc-note-plugin.h: Added an IO parameter to
	session_new().

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_iter_get_note_type(), infc_browser_iter_get_plugin() and
	renamed -infc_browser_subscribe_session() to
	infc_browser_iter_subscribe_session(). Also take an IO parameter in
	infc_browser_new().

	* libinfinity/client/infc-node-request.c: Register private struct in
	class_init.

	* libinftext/inf-text-session.c: Allow user to be NULL in text buffer
	signal handlers, swap code and domain in invocation of g_set_error in
	inf_text_session_process_xml_sync() which were the other way around.

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c: Take an IO parameter in
	inf_gtk_browser_model_new() for the browsers to create, added the
	set-browser signal in whose default handler the browser is associated
	with the InfGtkBrowserModelItem and signal handlers are registered.

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Use the new "set-browser" signal
	of the model to connect to browser's signals, subscribe to sessions
	when a non-subdirectory node is activated and a plugin present.

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c: Added
	inf_text_gtk_buffer_get_text_buffer(), fixed interface registration
	(implement INF_TEXT_TYPE_BUFFER, not INF_TEXT_GTK_TYPE_BUFFER which is
	not even an interface).

	* test/inf-test-gtk-browser.c: Added support for subscribing to
	text sessions.

	* test/inf-test-browser.c: Pass IO to InfcBrowser.

	* test/Makefile.am: Link inf-test-gtk-browser against InfText and
	InfTextGtk.

2007-10-16  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added the
	inf_session_get_synchronization_progress() and
	inf_session_get_status() functions.

	* libinfinity/server/infd-directory.c: Fixed a wrong assertion in
	infd_directory_node_link().

	* libinfinity/client/infc-node-request.c: Added the node-id property.

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Set node-id property on node
	requests, added the begin_subscribe and subscribe_session signals,
	added infc_node_iter_get_subscribe_request() and
	infc_browser_iter_from_node_request() functions.

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c: Made error column valid for inner
	nodes, store errors from explore and subscription requests (We should
	expand this for all node requests later).

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c: Show synchronization progress and
	errors from inner nodes.

2007-10-12  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-session.c: Fixed cursor positioning of executing
	user after deleting text.

	* libinftextgtk/inf-text-gtk-buffer.h:
	* libinftextgtk/inf-text-gtk-buffer.c:
	* libinftextgtk/Makefile.am: Implemented the InfTextBuffer interface
	using a GtkTextBuffer.

	* Makefile.am:
	* configure.ac: Build libinftextgtk.

	* README: Update.

2007-10-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added the "io" property and
	construction paramater.

	* libinfinity/server/infd-note-plugin.h: Take an InfIo in
	session_new().

	* test/inf-test-daemon.c: Adapt.

	* infinoted/infinoted-note-plugin.c: Ignore all but the platform's
	module suffix in infinoted_note_plugin_load_directory().

	* infinoted/infinoted-main.c: Load all plugins in
	${libdir}/infinoted/note-plugins/.

	* infinoted/note-plugins/text/infd-note-plugin-text.c:
	* infinoted/note-plugins/text/Makefile.am:
	* infinoted/note-plugins/Makefile.am:
	* infinoted/Makefile.am:
	* configure.ac: Added a text plugin that saves sessions into an XML
	tree, in a InfdFilesystemStorage.

2007-10-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added
	infd_directory_lookup_plugin().

	* infinoted/infinoted-note-plugin.h:
	* infinoted/infinoted-note-plugin.c:
	* infinoted/Makefile.am: Added functions to load note plugins from a
	certain directory.

	* configure.ac: Make infinoted depend on gmodule-2.0.

2007-10-09  Armin Burgmeier  <armin@arbur.net>

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-creds.c:
	* infinoted/infinoted-main.c: Made the server actually working.

2007-10-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-tcp-connection.c: Don't ifdef out
	_inf_tcp_connection_accepted because libinfinity/server is always
	built.

	* libinfinity/server/infd-note-plugin.h: Renamed identifier to
	note_type add added a storage_type member.

	* libinfinity/server/infd-directory.c: Adapt, and check storage type
	in infd_directory_add_plugin.

	* libinfinity/server/infd-filesystem-storage.h:
	* libinfinity/server/infd-filesystem-storage.c: Added
	infd_filesystem_storage_open() function.

	* infinoted/infinoted-creds.h:
	* infinoted/infinoted-creds.c:
	* infinoted/infinoted-main.c:
	* infinoted/Makefile.am: Added code which yields the infinote
	standalone server one day. Currently it only does certificate
	handling.

	* Makefile.am:
	* configure.ac: Build infinoted.

2007-10-07  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:BOXED,OBJECT marshaller.

	* libinfinity/common/inf-io.c: Return the value returned by the
	implementation to the caller in inf_io_add_timeout(), instead of
	nothing.

	* libinfinity/common/inf-standalone-io.c: Fixed two bugs in timeout
	handling.

	* libinfinity/common/inf-tcp-connection.c: Added the device-index and
	device-name properties. These are only used in IPv6 to set the scope
	ID for link-local messaging.

	* libinfinity/common/inf-discovery.h:
	* libinfinity/common/inf-discovery.c: Make the get_service_name()
	returned a new string so the implementation does not have to cache the
	service name.

	* libinfinity/common/inf-xml-connection.h:
	* libinfinity/common/inf-xml-connection.c: Added an error signal and
	local-id and remote-id properties.

	* libinfinity/common/inf-xmpp-connection.h:
	* libinfinity/common/inf-xmpp-connection.c: Removed error signal
	because it is now provided by InfXmlConnection, override the local-id
	and remote-id properties by using the ip/port pair of the underlaying
	TCP connection. Allow gnutls to return with GNUTLS_E_AGAIN in
	gnutls_record_recv since it seems to sometimes call the pull function
	multiple times. Don't wait for terminating </stream:stream>, but just
	close the connection on failed TLS handshake.

	* libinfinity/common/inf-discovery-avahi.c: Adapt to interface change
	in InfDiscovery, include device name and protocol in service name
	output.

	* libinfinity/common/inf-local-publisher.c: Replaced g_return_if_fail
	by g_return_val_if_fail in function returning non-void.

	* libinfinity/common/inf-xmpp-manager.c: Unref objects retrieved via
	g_object_get(), connect to every connection's notify::status signal to
	remove the connection when it is closed.

	* libinfinity/common/inf-connection-manager.c: Remove the group from
	the list of groups in inf_connection_manager_group_free().

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added an iterator pointing to the
	subdirectory being explored to the begin-explore signal. Don't clear
	directory tree when the connection is lost but rather when a new
	connection is set so we can still browse the explored paths when
	disconnected.

	* libinfinity/client/infc-explore-request.c: Replaced
	g_value_set_finished by g_value_set_boolean as it ought to be. I must
	have been asleep when having coded this.

	* libinfinity/server/infd-server-pool.c: Use username for service name
	when the real name is not known.

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c: Added the INVALID status, keep
	the item after disconnection so a potential error can still be
	displayed. Fixed several bugs.

	* libinfgtk/inf-gtk-browser-view.c: Propagate size_request and
	size_allocate. Implemented exploration and fixed several bugs.

	* libinfgtk/inf-gtk-io.h:
	* libinfgtk/inf-gtk-io.c:
	* libinfgtk/Makefile.am: Added a InfIo implementation using the
	default Glib mainloop.

	* test/inf-test-daemon.c: Publish the infinote service on avahi.

	* test/inf-test-gtk-browser.c:
	* test/Makefile.am: Added a test showing a InfGtkBrowserView to browse
	avahi-discovered infinote servers.

2007-10-04  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:OBJECT,OBJECT marshaller.

	* libinfinity/common/inf-discovery.c: Fixed return statements in
	functions returning non-void.

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added the
	infc_browser_iter_is_subdirectory() function.

	* libinfinity/client/infc-explore-request.h:
	* libinfinity/client/infc-explore-request.c: Added the
	infc_explore_request_get_initiated() and
	infc_explore_request_get_finished() functions.

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c: Take InfConnectionManager in
	constructor, added inf_gtk_browser_model_browser_iter_to_tree_iter()
	and the INF_GTK_BROWSER_MODEL_COL_DISCOVERY column. Fixed reordering
	when a resolve yielded an already existing connection.

	* libinfgtk/inf-gtk-browser-view.h:
	* libinfgtk/inf-gtk-browser-view.c:
	* libinfgtk/Makefile.am: Implemnted InfGtkBrowserView, a widget
	displaying a InfGtkBrowserModel. Some implementation bits (mostly
	exploration on expansion) are still missing.

2007-10-03  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/infc-browser.c: Removed a TODO comment that was
	already done by the last commit.

	* libinfgtk/inf-gtk-browser-model.h:
	* libinfgtk/inf-gtk-browser-model.c:
	* libinfgtk/Makefile.am: A container for multiple InfcBrowser and
	InfDiscovery objects that implements GtkTreeModel to be shown by a
	GtkTreeView.

	* Makefile.am: Changed order of SUBDIRS so that always the library
	directories are walked first, and then pixmaps/ and test/.

	* configure.ac: Cleaned up final status output. I still don't know why
	it sometimes appears above the "config.status: Creating Foo/Makfile"
	output.

2007-10-03  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_iter_get_explore_request(),
	infc_browser_iter_from_explore_request() and the begin-explore signal.

	* pixmaps/16x16/infinote.png:
	* pixmaps/16x16/Makefile.am:
	* pixmaps/22x22/infinote.png:
	* pixmaps/22x22/Makefile.am: Added bitmap icons for small sizes.

	* pixmaps/scalable/infinote.svg:
	* pixmaps/scalable/Makefile.am: Moved from pixmaps/infinote.svg

	* pixmaps/Makefile.am:
	* configure.ac: Process pixmaps/16x16, pixmaps/22x22 and
	pixmaps/scalable.

2007-10-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-discovery-info.h:
	* libinfinity/common/inf-discovery-info.c: Removed, the functioality
	is incorporated into InfDiscovery.

	* libinfinity/common/inf-local-publisher.h:
	* libinfinity/common/inf-local-publisher.c:
	* libinfinity/common/Makefile.am: A new interface that is
	implemented by objects that can publish services on the local network.

	* libinfinity/common/inf-discovery.h:
	* libinfinity/common/inf-discovery.c: Removed the publish vfunc in
	favour of InfLocalPublisher. Added info_get_service_name and
	info_get_service_type vfuncs.

	* libinfinity/common/inf-discovery-avahi.h:
	* libinfinity/common/inf-discovery-avahi.c: Class that implements
	InfDiscovery and InfLocalPublisher by using Avahi.

	* libinfinity/server/infd-server-pool.h:
	* libinfinity/server/infd-server-pool.c: Added functionality to
	associate local publishers with servers and automatically publish
	service when the corresponding server is up.

	* libinfinity/Makefile.am: Build with and link against avahi.

2007-09-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Set xmpp connection as
	gsasl session hook so that callback implementations can access the
	InfXmppConnection object.

2007-09-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.h: Fix indentation.

	* libinfinity/common/inf-xmpp-connection.c: Added a TODO about
	retrieving the server's (or other entity's) JID.

	* libinfinity/common/inf-tcp-connection.h:
	* libinfinity/common/inf-tcp-connection.c: Added
	inf_tcp_connection_get_remote_address() and
	inf_tcp_connection_get_remote_port().

	* libinfinity/common/inf-discovery.h:
	* libinfinity/common/inf-discovery.c: Added the get_discovered vfunc
	and inf_discovery_get_discovered().

	* libinfinity/common/inf-xmpp-manager.h:
	* libinfinity/common/inf-xmpp-manager.c:
	* libinfinity/common/Makefile.am: Added the InfXmppManager class that
	manages XMPP connections and provides lookup by IP address and port so
	that existing connections can be reused.

	* libinfinity/server/infd-storage.h: Added a TODO comment about
	possible notification when stored items change.

	* libinfgtk/Makefile.am:
	* libinfgtk-1.0.pc.in:
	* Makefile.am:
	* configure.ac: Added libinfgtk component, but there are not yet any
	source files.

2007-09-25  Armin Burgmeier  <armin@arbur.net>

	* pixmaps/infinote.svg: Moved from artwork/infinote.svg to
	pixmaps/infinote.svg.

	* pixmaps/Makefile.am: Install the icon into
	$(datadir)/hicolor/scalable/apps. I am not sure whether this in the
	correct location, though.

	* libinfinity-1.0.pc.in:
	* libinftext-1.0.pc.in:
	* Makefile.am: Added pkgconfig files, added pixmaps subdir.

	* configure.ac: Added new files to output.

	* TODO: Added gettext support to TODO list.

2007-09-25  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-net-object.c: Allow connection to be NULL in
	inf_net_object_received for now, so the session test can simulate
	incoming XML.

	* libinfinity/common/inf-user-table.c: Fixed two typos.

	* libinfinity/common/inf-buffer.c: Removed read-only property. We
	might re-introduce an editable property later.

	* libinfinity/common/inf-session.c: Cope with NULL group and sync
	connection in inf_session_set_property().

	* libinfinity/adopted/inf-adopted-request-log.c: Return NULL in
	inf_adopted_request_log_find_associated() when there is no Undo
	request associated to a redo request, instead of running in a failed
	assertion. This is a completely legal case for caching next_undo and
	next_redo operations.

	* libinfinity/adopted/inf-adopted-user.c: Cope with NULL request log
	in inf_adopted_user_set_property(), don't copy result in
	inf_adopted_user_get_vector().

	* libinfinity/adopted/inf-adopted-state-vector.c: Fixed a crash in
	inf_adopted_state_vector_causally_before() when the highest key
	in the first vector was not contained in the second. Also fixed a typo
	leading to a crash in inf_adotped_state_vector_from_string_diff().

	* libinfinity/adopted/inf-adopted-session.c: Include current request
	in last send vector after having sent the request. Otherwise, we are
	sending an unnecessary, additional "$id:1" component for each
	following request. Recognize undo requests by <undo /> child instead
	of type="undo" attribute, as in the protocol specification. Keep
	users in the user table in-sync with those in InfAdoptedAlgorithm.
	Don't leak the request in inf_adopted_session_process_xml_run().

	* libinfinity/adopted/inf-adopted-algorithm.c: Update user vector
	after having received a request, not only when having processed it.
	When transforming two operations in the request log, first transform
	both to the least common successor and then transform both from that
	point to the final destination. This way, pwords of insert operations
	are updated correctly. This could lead to a desync. Change the state
	of undo and redo requests to the same state of the original operation
	(except the issuing user's component) because they only depend on the
	original operation.

	* libinfinity/adopted/inf-adopted-split-operation.h:
	* libinfinity/adopted/inf-adopted-split-operation.c: Added the
	inf_adopted_split_operation_transform_other() function that transfors
	an operation against the split operation. Also don't leak the
	resulting operations in inf_adopted_split_operation_transform().

	* libinfinity/adopted/inf-adopted-operation.c: Use
	inf_adopted_split_operation_transform_other() in
	inf_adopted_operation_transform() when against is a
	InfAdoptedSplitOperation. Fix a copy'n'paste error in the
	interface's GTypeInfo struct.

	* libinftext/inf-text-move-operation.h:
	* libinftext/inf-text-move-operation.c: Renamed
	inf_text_move_operation_get_pword() to
	inf_text_move_operation_get_position() and
	inf_text_move_operation_get_chunk() to
	inf_text_move_operation_get_length(). This was also a copy'n'paste
	error by copying the file from libinftext/inf-text-insert-operation.c.

	* libinftext/inf-text-chunk.h:
	* libinftext/inf-text-chunk.c: Added a GString to each chunk that
	holds the chunk's content without author information for integrity
	checking (can be disabled by not defining CHUNK_DEBUG). Added
	the inf_text_chunk_equal() function. Fixed two errors when inserting a
	chunk into another chunk that broke the chunk's integrity.

	* libinftext/inf-text-buffer.h:
	* libinftext/inf-text-buffer.c: Reorded bytes and length parameters in
	inf_text_buffer_insert_text() to match the order of corresponding
	functions in libinftext. Allow the user parameter to be NULL in which
	case the text is inserted as author 0.

	* libinftext/inf-text-user.h:
	* libinftext/inf-text-user.c: Derive from InfAdoptedUser not from
	InfUser.

	* libinftext/inf-text-default-delete-operation.c: End g_object_new()
	invocation in inf_text_default_delete_operation_transform_split() with
	NULL so that g_object_new() does not start reading random memory.

	* libinftext/inf-text-default-insert-operation.c: Cast result to
	InfTextInsertOperation instead of InfAdoptedOperation in
	inf_text_default_insert_operation_transform_position().

	* libinftext/inf-text-remote-delete-operation.c: Append final recon
	chunk to list in inf_text_remote_delete_operation_recon_feed(). Don't
	leak the InfTextChunk obtained by inf_text_buffer_get_slice() in
	inf_text_remote_delete_operation_make_reversible(). Don't leak the
	unsplit list in the same function. Feed recon to the resulting
	operation in inf_text_remote_delete_operation_transform_overlap(), not
	to the original operation.

	* libinftext/inf-text-default-buffer.c: Implement the InfBuffer
	interface.

	* libinftext/inf-text-pword.c: Swapped the result of
	inf_text_pword_compare() when the two pwords have different length to
	obtain the intended behaviour.

	* libinftext/inf-text-session.c: Pass correct text to g_convert() and
	xmlFree() in inf_text_session_xml_to_operation(). Don't forget final
	NULL in g_object_new() call in inf_text_session_new() and
	inf_text_session_new_with_user_table().

	* test/inf-test-chunk.c: Test some basic InfTextChunk operations.

	* test/inf-test-text-operations.c: Test C1 and C2 properties of the
	InfText operations.

	* test/inf-test-text-session.c: Test the implementation of the
	concurrency control algorithm implemented by InfAdoptedAlgorithm by
	reading test scenarios from XML files in std/.

	* test/Makefile.am: Added the new files

	* test/std/test-01.xml:
	* test/std/test-02.xml:
	* test/std/test-03.xml:
	* test/std/test-04.xml:
	* test/std/test-05.xml:
	* test/std/test-06.xml:
	* test/std/test-07.xml:
	* test/std/test-08.xml:
	* test/std/test-09.xml:
	* test/std/test-10.xml:
	* test/std/test-11.xml:
	* test/std/test-12.xml:
	* test/std/test-13.xml:
	* test/std/test-14.xml:
	* test/std/test-15.xml:
	* test/std/test-16.xml:
	* test/std/test-17.xml:
	* test/std/test-18.xml:
	* test/std/test-19.xml:
	* test/std/test-20.xml:
	* test/std/test-21.xml:
	* test/std/test-22.xml:
	* test/std/test-23.xml:
	* test/std/test-24.xml:
	* test/std/test-25.xml:
	* test/std/test-26.xml:
	* test/std/test-27.xml:
	* test/std/test-28.xml:
	* test/std/test-29.xml:
	* test/std/test-30.xml:
	* test/std/test-31.xml:
	* test/std/test-32.xml:
	* test/std/test-33.xml:
	* test/std/test-34.xml:
	* test/std/test-35.xml:
	* test/std/test-36.xml:
	* test/std/test-37.xml:
	* test/std/test-38.xml:
	* test/std/test-39.xml:
	* test/std/test-40.xml:
	* test/std/test-41.xml:
	* test/std/test-42.xml:
	* test/std/test-43.xml:
	* test/std/test-44.xml:
	* test/std/test-45.xml:
	* test/std/test-46.xml: Added 46 test files for
	inf-test-text-session.c.

2007-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-operations.h: File to just forward declare
	InfTextInsertOperation and InfTextDeleteOperation because their
	headers both need the two to be declared.

	* libinftext/inf-text-session.h:
	* libinftext/inf-text-session.c: Implemented InfTextSession.

	* libinftext/Makefile.am: Added the new files to the build.

2007-09-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xml-util.h:
	* libinfinity/common/inf-xml-util.c: Implemented
	inf_xml_util_set_attribute_int() and
	inf_xml_util_set_attribute_int_required().

	* libinfinity/adopted/inf-adopted-operation.h:
	* libinfinity/adopted/inf-adopted-operation.c: Added concurrency_id
	paramater to the transform vfunc.

	* libinfinity/adopted/inf-adopted-request.c:
	* libinfinity/adopted/inf-adopted-no-operation.c:
	* libinfinity/adopted/inf-adopted-split-operation.c: Adapt to the
	above API change.

	* libinfinity/adopted/inf-adopted-session.h:
	* libinfinity/adopted/inf-adopted-session.c: Added InfUser parameter
	to the xml_to_operation vfunc.

	* libinftext/inf-text-delete-operation.h:
	* libinftext/inf-text-insert-operation.h:
	* libinftext/inf-text-delete-operation.c:
	* libinftext/inf-text-insert-operation.c: Made interfaces out of
	these, implement transformation.

	* libinftext/inf-text-move-operation.h:
	* libinftext/inf-text-move-operation.c: Added
	inf_text_move_operation_transform_insert() and
	inf_text_move_operation_transform_delete().

	* libinftext/inf-text-buffer.h:
	* libinftext/inf-text-buffer.c:
	* libinftext/inf-text-default-buffer.c: Added the get_length vfunc.

	* libinftext/inf-text-default-insert-operation.h:
	* libinftext/inf-text-default-insert-operation.c:
	* libinftext/inf-text-default-delete-operation.c:
	* libinftext/inf-text-default-delete-operation.h:
	* libinftext/Makefile.am: Readded normal reversible insert and delete
	operations that were in inf-text-{insert,delete}-operation.[ch]
	before, and implement the new interface.

	* libinftext/inf-text-remote-delete-operation.h:
	* libinftext/inf-text-remote-delete-operation.c: Implement the
	InfTextDeleteOperation interface.

2007-09-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:UINT,INT marshaller.

	* libinftext/inf-text-user.h:
	* libinftext/inf-text-move-operation.h:
	* libinftext/inf-text-remote-delete-operation.h:
	* libinftext/inf-text-user.c:
	* libinftext/inf-text-move-operation.c:
	* libinftext/inf-text-remote-delete-operation.c:
	* libinftext/Makefile.am: Implement InfTextUser (storing cursor and
	selected text), InfTextMoveOperation (an operation that changes a
	user's selection and cursor position) and
	InfTextRemoteDeleteOperation (a delete operation that only saves
	position and length of the deleted text, but not the actual text that
	was deleted).

2007-09-14  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-operation.h:
	* libinfinity/adopted/inf-adopted-operation.c:
	* libinfinity/adopted/inf-adopted-no-operation.c:
	* libinfinity/adopted/inf-adopted-split-operation.c: Removed the
	is_reversible vfunc and added it as an operation flag.

	* libinfinity/server/infd-session-proxy.c: Fixed message handling (the
	message is called user-join, not join-user).

	* libinftext/inf-text-pword.h:
	* libinftext/inf-text-insert-operation.h:
	* libinftext/inf-text-delete-operation.h:
	* libinftext/inf-text-pword.c:
	* libinftext/inf-text-insert-operation.c:
	* libinftext/inf-text-delete-operation.c:
	* libinftext/Makefile.am: Added the two bosic text operations.

	* TODO: Removed finished tasks, added new ones about making
	InfTextChunk reference-counted.

2007-09-10  Armin Burgmeier  <armin@arbur.net>

	* libinftext/inf-text-buffer.c: Fixed a marshaller.

	* libinftext/inf-text-default-buffer.h:
	* libinftext/inf-text-default-buffer.c:
	* libinftext/Makefile.am: Added a InfTextBuffer implementation using
	an underlaying InfTextChunk.

2007-09-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user-table.h:
	* libinfinity/common/inf-user-table.c:
	* libinfinity/common/Makefile.am: Added user table class managing
	users and providing lookup by ID and name.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Make use of InfUserTable instead
	of using an own hash table. Removed some API that is not provided by
	InfUserTable.

	* libinfinity/client/infc-session-proxy.c:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/adopted/inf-adopted-session.c: Adjusted for API change
	introduced by the new user table.

	* libinfinity/inf-ink-buffer.h:
	* libinfinity/inf-ink-stroke.h:
	* libinfinity/inf-ink-buffer.c:
	* libinfinity/inf-ink-stroke.c: Removed from repository, InfInk will
	not be implemented in the short-term.

	* libinftext/inf-text-chunk.h:
	* libinftext/inf-text-chunk.c: Added InfTextChunkIter API to iterate
	over segments.

	* libinfinity/inf-marshal.in: Replaced POINTER,UINT,UINT,OBJET byC
	UINT,BOXED,OBJECT marshaller.

	* libinftext/inf-text-buffer.h:
	* libinftext/inf-text-buffer.c:
	* libinftext/Makefile.am: Added InfTextBuffer interface.

2007-09-10  Philipp Kern <phil@0x539.de>

	* configure.ac: some fixes

2007-09-09  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.c: Added a TODO comment
	about possible memory corruption.

	* libinfinity/inf-text-buffer.h:
	* libinfinity/inf-text-buffer.c: Removed. InfTextBuffer will get
	resurrected in the inftext separate module.

	* libinftext/inf-text-chunk.h:
	* libinftext/inf-text-chunk.c:
	* libinftext/Makefile.am: Created inftext module with a first boxed
	type to store and operate on strings with author information.

	* Makefile.am:
	* configure.ac: Added libinftext to build.

2007-09-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-operation.h:
	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinfinity/adopted/inf-adopted-operation.c:
	* libinfinity/adopted/inf-adopted-request-log.c:
	* libinfinity/adopted/inf-adopted-request.c:
	* libinfinity/adopted/inf-adopted-algorithm.c: Made these only have a
	user ID instead of a user object, so they can exist without actual
	user objects and InfAdoptedUser can have InfAdoptedRequestLog as
	property.

	* libinfinity/adopted/inf-adopted-user.h:
	* libinfinity/adopted/inf-adopted-user.c: Added the request-log
	property.

	* test/inf-test-state-vector.c: Adjusted for the change mentioned
	above.

	* libinfinity/adopted/inf-adopted-session.c:
	* libinfinity/adopted/inf-adopted-session.h:
	* libinfinity/adopted/Makefile.am: Added the InfAdoptedSession class,
	implementing the other half of the dark magic (although not-so-dark).
	Timeouts are not yet implemented.

	* libinfinity/common/inf-standalone-io.c: Fixed a compiler warning.

	* libinfinity/common/inf-xml-util.h: Fixed indentation.

	* libinfinity/common/inf-xml-util.c: Changed an error message so that
	it includes the (errornous) request's name.

	* libinfinity/common/inf-error.c: Added a TODO comment.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added an error parameter to
	the process_xml_run vfunc.

	* libinfinity/client/infc-session-proxy.c: Set subscription group in
	infc_session_proxy_set_connection().

	* TODO: Removed finished items, added the addition of a reversible
	flag for InfAdoptedOperation instead of an extra vfunc.

2007-09-02  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-session.h:
	* libinfinity/server/infd-session.c:
	* libinfinity/client/infc-session.h:
	* libinfinity/client/infc-session.c: Removed.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Added subscription group property.

	* libinfinity/server/infd-session-proxy.h:
	* libinfinity/server/infd-session-proxy.c:
	* libinfinity/client/infc-session-proxy.h:
	* libinfinity/client/infc-session-proxy.c: Added InfcSessionProxy and
	InfdSessionProxy classes. These basically have the same functionality
	as the old InfcSession and InfdSession but own them rather than
	inherit from them. This is needed because GObject does not allow
	multiple inheritance: Other types can now inherit from InfSession
	while InfcSessionProxy (or InfdSessionProxy, respectively) can still
	do their job.

	* libinfinity/server/infd-note-plugin.h:
	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c:
	* libinfinity/server/Makefile.am:
	* libinfinity/client/infc-note-plugin.h:
	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c:
	* libinfinity/client/Makefile.am: Adjusted accordingly.

	* TODO: Removed finished items

2007-09-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c: Made
	InfConnectionManagerGroup a boxed type, allow changing a group's
	InfNetObject via inf_connection_manager_group_set_object().

	* TODO: Added plans about making InfcSession and InfdSession not
	inherit from InfSession.

2007-08-31  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-connection-manager.h:
	* libinfinity/common/inf-connection-manager.c: Redesigned connection
	manager. Now there are groups of which connections can be a member.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c:
	* libinfinity/server/infd-session.h:
	* libinfinity/server/infd-session.c:
	* libinfinity/client/infc-session.h:
	* libinfinity/client/infc-session.c:
	* libinfinity/client/infc-browser.c:
	* libinfinity/server/infd-directory.c: Adjusted use.

	* TODO: Added another item about dropping the message table in
	InfcSession/InfdSession.

2007-08-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-io.h:
	* libinfinity/common/inf-io.c:
	* libinfinity/common/inf-standalone-io.c: Implemented addition and
	removal of timeouts for InfIo.

	* TODO: Noted down some basic TODO items that would be nice to have
	for a first release.

2007-08-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:OBJECT,BOOLEAN marshaller.

	* libinfinity/inf-text-chunk.c: Added a comment, and a TODO item.

	* libinfinity/adopted/inf-adopted-operation.h: Added another TODO
	item.

	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request-log.c: Added the
	inf_adopted_request_log_next_undo(),
	inf_adopted_request_log_next_redo() and
	inf_adopted_request_log_upper_related() functions.

	* libinfinity/adopted/inf-adopted-algorithm.h:
	* libinfinity/adopted/inf-adopted-algorithm.c:
	* libinfinity/adopted/Makefile.am: Implemented the first part of the
	really dark magic.

2007-08-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-request-log.c: Allow the given
	request to be one past the end of the log in which case it is treated
	as it was the newest in the log.

2007-08-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-text-chunk.h:
	* libinfinity/inf-text-chunk.c: Beginning of a InfTextChunk
	implementation, storing text written by specific users. This will
	probably later be moved into a separate InfText library. This code is
	partly written by Benjamin Herr <ben@0x539.de>.

2007-08-22  Benjamin Herr  <ben@0x539.de>

	* all source files: Appended vim modelines.

2007-08-20  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-state-vector.c: Added compare and
	causal relation functions.

	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request.c: Made a GObject out of
	this and implement transfrom, mirror and fold operations.

	* libinfinity/adopted/inf-adopted-request-log.c: Added next-undo and
	next-redo properties and additional linking between the entries
	(original, next associated and previous associated request).

2007-08-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/adopted/inf-adopted-operation.h: Removed superfluous
	comma at end of enumeration.

	* libinfinity/adopted/inf-adopted-request.h:
	* libinfinity/adopted/inf-adopted-request-log.h:
	* libinfinity/adopted/inf-adopted-request.c:
	* libinfinity/adopted/inf-adopted-request-log.c: Implemnted
	InfAdoptedRequest and InfAdoptedRequestLog, though the latter is still
	missing can-undo/can-redo tracking.

	* libinfinity/adopted/Makefile.am: Build the new files.

2007-08-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-buffer.c: Set initialized to TRUE in
	inf_buffer_base_init so the interface is only initialized once.

	* libinfinity/common/inf-user.c: Correctly register user flags type as
	flags instead of as enum.

	* libinfinity/adopted/inf-adopted-state-vector.h:
	* libinfinity/adopted/inf-adopted-user.h:
	* libinfinity/adopted/inf-adopted-operation.h:
	* libinfinity/adopted/inf-adopted-split-operation.h:
	* libinfinity/adopted/inf-adopted-no-operation.h:
	* libinfinity/adopted/inf-adopted-state-vector.c:
	* libinfinity/adopted/inf-adopted-user.c:
	* libinfinity/adopted/inf-adopted-operation.c:
	* libinfinity/adopted/inf-adopted-split-operation.c:
	* libinfinity/adopted/inf-adopted-no-operation.c:
	* libinfinity/adopted/Makefile.am: Implemented some initial types for
	the yet-to-come adopted implementation.

	* libinfinity/Makefile.am:
	* configure.ac: Include libinfinity/adopted to build, generate
	libinfinity/adopted/Makefile.

	* test/inf-test-state-vector.c:
	* test/Makefile.am: Added simple state vector test.

2007-08-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-user.h:
	* libinfinity/common/inf-user.c: Added a flags property with user
	flags with INF_USER_LOCAL being the only user property so far.

	* libinfinity/client/infc-session.c:
	* libinfinity/server/infd-session.c: Set the INF_USER_LOCAL flag as
	appropriate.

	* README: Require glib-2.14 to be able to use GSequence.

2007-07-22  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Added
	infc_browser_iter_get_name().

	* libinfinity/common/inf-xmpp-connection.c: ref/unref the XMPP
	connection object around callback for sent messages because those
	callbacks might unref the XMPP connection.

	* libinfinity/common/inf-net-object.c: Don't require virtual functions
	to be implemented.

	* libinfinity/common/inf-xml-connection.c: Fixed signal emission of
	sent and received signal, wrong parameter was passed.

	* libinfinity/common/inf-connection-manager.c: Only send further
	messages if there are any, after previous messages have been sent out.

	* libinfinity/server/infd-filesystem-storage.c: Fixed path to file on
	disk which was wrong in infd_filesystem_storage_read_subdirectory().

	* libinfinity/server/infd-directory.c: Only call
	infd_directory_node_remove_connection() for explored subdirectory
	nodes because only those can have connections that have explored that
	node.

	* libinfinity/client/infc-request-manager.c: Don't unref the request
	when removing from the hash table because the hash table already does
	it via its value_destroy func. Initialize the parameters array with
	zero in infc_request_manager_add_request_valist() because the GValues
	therein need to be zero-initialized.

	* test/inf-test-browser.c:
	* test/Makefile.am: Added (interactive) test for InfcBrowser
	connecting to a running infinote server.

2007-07-20  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added
	INF_DIRECTORY_ERROR_ALREADY_SUBSCRIBED.

	* libinfinity/common/inf-xml-util.c: Fixed error formatting for
	inf_xml_util_string_to_uint().

	* libinfinity/server/infd-directory.c: Changed "subscribe-session"
	reply request name to from "session-subscribe" to "subscribe-session"
	and set ID attribute in that request. Don't leak the identifier string
	in infd_directory_handle_subscribe_session().

	* libinfinity/client/infc-explore-request.c: Implement default signal
	handlers for the "initiated" and "progress" signals that notify the
	corresponding properties.

	* libinfinity/client/infc-request-manager.h:
	* libinfinity/client/infc-request-manager.c: Changed
	infc_request_manager_add_request(InfcRequestManager*, InfcRequest*) to
	infc_request_manager_add_request(InfcRequestManager*, GType, const
	gchar*, const gchar*, ...) and added
	infc_request_manager_add_request_valist().

	* libinfinity/client/infc-node-request.h:
	* libinfinity/client/infc-node-request.c: Added another request type
	that handles requests related to nodes in the directory tree.

	* libinfinity/client/infc-browser-iter.h:
	* libinfinity/client/infc-browser-iter.c:
	* libinfinity/client/infc-browser.h:
	* libinfinity/client/infc-browser.c: Implemented InfcBrowser class
	that allows browsing a remote directory tree.

	* libinfinity/client/Makefile.am: Build the new files.

2007-07-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Replaced several "this or that
	attribute is missing" error by a general "No such attribute" error.

	* libinfinity/client/infc-request-manager.h:
	* libinfinity/client/infc-request-manager.c: Added
	infc_request_manager_get_request_by_xml_required().

	* libinfinity/common/inf-xml-util.h:
	* libinfinity/common/inf-xml-util.c:
	* libinfinity/common/Makefile.am: Added some common helper functions
	read attributes from a XML node.

	* libinfinity/client/infc-session.c:
	* libinfinity/server/infd-session.c:
	* libinfinity/server/infd-directory.c: Make use of them.

2007-07-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:UINT and VOID:UINT,UINT
	marshallers.

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added INF_REQUEST_ERROR_INVALID_SEQ,
	INF_DIRECTORY_ERROR_TOO_MUCH_CHILDREN and
	INF_REQUEST_ERROR_TOO_FEW_CHILDREN.

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Removed g_return_if_fail from
	non-public functions, initialize next and prev fields of root node to
	NULL, unref session if corresponding node is freed, send number of
	child nodes in explore-begin.

	* libinfinity/client/infc-request-manager.h:
	* libinfinity/client/infc-request-manager.c: Added InfcRequestManager
	class that stores pending requests and provides lookup by seq.

	* libinfinity/client/infc-request.h:
	* libinfinity/client/infc-request.c: Removed the succeeded signal
	because it was too specific. It should rather be implemented by
	subclasses.

	* libinfinity/client/infc-user-request.h:
	* libinfinity/client/infc-user-request.c:
	* libinfinity/client/infc-explore-request.h:
	* libinfinity/client/infc-explore-request.c: Implemented specific
	requests for those which affect a user and for exploring a
	subdirectory.

	* libinfinity/client/infc-session.h:
	* libinfinity/client/infc-session.c: Use request manager instead of
	managing the requests on our own, use InfcUserRequest in
	infc_session_join_user and infc_session_leave_user.

	* libinfinity/client/Makefile.am: Added new source files to build.

	* README: Updated dependencies of infinote.

2007-07-15  Armin Burgmeier  <armin@arbur.net>

	* artwork/infinote.svg: Added infinote icon by Benjamin Herr.

2007-06-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Moved directory error codes to
	common so they can be checked on client side.

	* libinfinity/server/infd-directory.h:
	* libinfinity/server/infd-directory.c: Added correct request handling.

2007-06-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c: Make sure that the synchronization
	terminates correctly when both sender and receiver sessions are closed
	any time during synchronization.

2007-05-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added some more error codes. Those
	are only used on the client side and so should probably moved into
	somewhere in libinfinity/client.

	* libinfinity/client/infc-request.h:
	* libinfinity/client/infc-request.c: Added seq and name properties.

	* libinfinity/client/infc-session.h:
	* libinfinity/client/infc-session.c:
	* libinfinity/client/Makefile.am: Implemented client-side session.

2007-05-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-error.h:
	* libinfinity/common/inf-error.c: Added INF_USER_LEAVE_NO_SUCH_USER
	error code, InfRequestError codes and public API to access error
	quarks.

	* libinfinity/server/infd-session.h:
	* libinfinity/server/infd-session.c: Made xmlNodePtr non-const in
	InfdSessionMessageFunc because it only makes the pointer const (and
	not the XML node pointed to).

	* libinfinity/client/infc-request.h:
	* libinfinity/client/infc-request.c: Added a general request-specific
	pointer parameter to the succeeded signal.

	* docs/terminology: Added a few words about request and seq.

2007-04-18  Armin Burgmeier  <armin@arbur.net>

	* configure.ac:
	* libinfinity/Makefile.am: Added client directory, create
	libinfinity/client/Makefile.

	* libinfinity/inf-marshal.in: Added VOID:VOID marshaller.

	* libinfinity/common/infd-request.h:
	* libinfinity/common/infd-request.c:
	* libinfinity/common/Makefile.am: Added InfcRequest class.

	* libinfinity/common/inf-session.h:
	* libinfinity/common/inf-session.c:
	* libinfinity/server/infd-session.c: Replace user_to_xml vfunc by
	set_xml_user_props, added inf_session_user_to_xml which implements the
	functionality via the new vfunc.

2007-04-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/test/inf-test-daemon.c:
	* libinfinity/test/Makefile.am: Added test file that launches a simple
	infinote daemon with a filesystem storage in $HOME/.infinote.

2007-04-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-filesystem-storage.h:
	* libinfinity/server/infd-filesystem-storage.c:
	* libinfinity/server/Makefile.am: Added a simple storage
	implementation that maps the directory tree to the disk.

2007-04-11  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-server-pool.h:
	* libinfinity/server/infd-server-pool.c:
	* libinfinity/server/Makefile.am: Renamed from
	infd-server.[ch], manages an arbitrary amount of InfdXmlServers.

2007-04-10  Armin Burgmeier  <armin@arbur.net>

	* libinfintiy/common/inf-connection-manager.h:
	* libinfintiy/common/inf-connection-manager.c: Removed
	inf_connection_manager_add_connection, and add connection
	automatically on first invocation of
	inf_connection_manager_add_object.

	* libinfinity/common/inf-session.c:
	* libinfinity/server/infd-directory.c: Adjusted use.

2007-04-10  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Fixed bugs, server side
	mostly works.

	* libinfinity/server/infd-xml-server.h: Fixed typo in
	InfdXmlServerStatus typedef.

	* libinfinity/server/infd-xmpp-server.h:
	* libinfinity/server/infd-xmpp-server.c: Build and Runtime fixes, use
	key.pem and cert.pem as key files for now. This should probably be
	replaced with a newly-created certificate later.

	* test/inf-test-xmpp-server.c: Added simple XMPP server test.

	* test/inf-test-xmpp-connection.c: Connect to local server instead of
	jabber.0x539.de.

	* test/key.pem:
	* test/cert.pem: Temporary example key files, copied from the GnuTLS
	distribution.

2007-04-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Notify credentials and
	sasl-context properties when they are created.

	* libinfinity/server/infd-xmpp-server.h:
	* libinfintiy/server/infd-xmpp-server.c:
	* libinfinity/server/Makefile.am: Added XMPP server class,
	yet untested.

2007-03-29  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/server/infd-tcp-server.h:
	* libinfinity/server/infd-tcp-server.c: Added InfdTcpServer object.

	* libinfinity/server/infd-xml-server.h:
	* libinfinity/server/infd-xml-server.c: Added InfdXmlServer interface.

	* libinfinity/common/inf-tcp-connection.c: Added
	_inf_tcp_connection_accepted function, do not leak a socket if the
	connection attempt fails in inf_tcp_connection_open, do not chain up
	to finalize in dispose, do not leak the IO object, don't rely on errno
	keeping its value at the end of the recv/send loop.

	* test/inf-test-tcp-server.c:
	* test/Makefile.am: Added test for the TCP server.

2007-03-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/inf-xmpp-connection.c: Fixed some bugs, client
	part mostly works.

	* libinfinity/common/inf-tcp-connection.c: Exit receiving/sending loop
	if the connection has been closed in a received/sent signal handler.

	* libinfinity/common/inf-xml-connection.c: Initialize interface only
	once.

	* test/inf-test-xmpp-connection.c:
	* test/Makefile.am: Added XMPP client test.

2007-03-28  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/common/: Moved all libinfinity sources and headers
	except inf-config.h and inf-marshal.h into a subdirectory.

	* libinfinity/server/: Moved all libinfinited files into another
	subdirectory.

	* libinfinited/: Removed.

	* libinfinity/common/Makefile.am:
	* libinfinity/server/Makefile.am:
	* libinfinity/Makefile.am:
	* configure.ac: Adjusted build for new directory structure.

2070-03-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-xmpp-connection.h:
	* libinfinity/inf-xmpp-connection.c: Added XMPP client and server
	implementation, yet untested.

	* libinfinity/inf-xml-stream.h:
	* libinfinity/inf-xml-stream.c: Removed, this is no longer used and
	replaced by XMPP.

	* configure.in:
	* libinfinity/Makefile.am: Depend on gnutls and libgsasl.

2007-03-19  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:POINTER,UINT marshaller.

	* libinfinity/inf-standalone-io.h:
	* libinfinity/inf-standalone-io.c: Added simple InfIo implementation.

	* libinfinity/inf-tcp-connection.h:
	* libinfinity/inf-tcp-connection.c: Implemented a TCP connection
	object.

	* libinfinity/Makefile.am: Added InfIoStandalone and InfTcpConnection
	to build.

	* test/inf-test-stream.xml:
	* test/inf-test-xml-stream.c: Removed those since InfXmlStream will
	probably be removed too, or at least change semantics.

	* test/inf-test-tcp-connection.c:
	* test/Makefile.am: Added simple TCP connection test.

2007-03-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-ip-address.h:
	* libinfinity/inf-ip-address.c:
	* Makefile.am: Boxed type managing an IP address.

2007-03-18  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-discovery-info.h:
	* libinfinity/inf-discovery.h:
	* libinfinity/inf-discovery-info.c:
	* libinfinity/inf-discovery.c:
	* Makefile.am: Added InfDiscovery and InfDiscoveryInfo interfaces.

2007-03-17  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-io.h:
	* libinfinity/inf-io.c:
	* Makefile.am: Added InfIo interface.

2007-03-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-xml-connection.h: 
	* libinfinity/inf-xml-connection.c: Added an InfXmlConnection
	interface that replaces GNetworkConnection.

	* libinfinity/inf-buffer.c:
	* libinfinity/inf-buffer.h: Made a property out of the read-only
	functions and signal.

	* libinfinity/inf-marshal.in: Replaced VOID:BOOLEAN by VOID:POINTER
	for InfXmlConnection.

	* libinfinity/inf-net-object.h:
	* libinfinity/inf-connection-manager.h:
	* libinfinity/inf-session.h:
	* libinfinited/infd-note-plugin.h:
	* libinfinited/infd-session.h:
	* libinfinited/infd-directory.h:
	* libinfinity/inf-net-object.c:
	* libinfinity/inf-connection-manager.c:
	* libinfinity/inf-session.c:
	* libinfinited/infd-session.c:
	* libinfinited/infd-directory.c: Adjusted to use InfXmlConnection
	instead of GNetworkConnection.

	* configure.ac:
	* libinfinity/Makefile.am:
	* libinfinited/Makefile.am: Dropped dependency on libgnetwork. Also
	excluded infd-server.[hc] from build because they would still require
	GNetworkServer. Another interface in libinfinited is required here.

2007-03-15  Armin Burgmeier  <armin@arbur.net>

	* libinfinited/infd-storage.h:
	* libinfinited/infd-storage.c: Turned the path field of
	InfdStorageNode to name.

	* libinfinited/infd-directory.h:
	* libinfinited/infd-directory.c: Implemented remaining functionality
	that was missing, some more enhanced operations like copying or moving
	nodes are still not supported, though.

2007-03-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinited/infd-storage.h:
	* libinfinited/infd-storage.c: Renamed InfdDirectoryStorage to
	InfdStorage.

	* libinfinited/infd-note-plugin.h: Added interface for a note plugin.

	* libinfinited/infd-session.h:
	* libinfinited/infd-session.c:
	* libinfinined/Makefile.am: Implemented user joins.

2007-03-12  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-user.h:
	* libinfinity/inf-user.c: Removed connection field again. I don't
	think it is useful.

	* libinfinity/inf-session.h:
	* libinfinity/inf-session.c: Added
	inf_session_get_synchronization_status() and an exclude parameter to
	the validate_user_props vfunc.

	* libinfinity/inf-error.h:
	* libinfinity/inf-error.c:
	* libinfinity/Makefile.am: These specify some error codes that are
	commonly used by client and server.

2007-03-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-session.c: Connect to notify::status to find out
	when a connection is closed.

2007-03-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-session.h:
	* libinfinity/inf-session.c: Provide getters for connection manager
	and buffer. Also do a ref on the connection we get in
	inf_session_synchronize_to() because it will be unrefed when the
	synchronization is complete or failed.

2007-03-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-session.c: Before removing the session from the
	connection manager in inf_session_release_connection(), make sure that
	the connection manager still has the connection. If the connection was
	closed, the connection manager might have dropped the connection
	earlier.

	* libinfinity/inf-connection-manager.c: Refcount netobject
	registrations, but make sure objects are added with the same
	identifier.

2007-03-08  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-user.h:
	* libinfinity/inf-user.c: Added a connection field to InfUser
	specifiying a (not necessarily direct) connection between the local
	host and that user.

2007-03-07  Armin Burgmeier  <armin@arbur.net>

	* docs/plugin: Added notes about the plugin interface. It is not yet
	implemented, these are my just ideas how it should work, so I do not
	forget and could be expanded to a complete specification later.

2007-03-06  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:OBJECT,DOUBLE and
	VOID:OBJECT,POINTER marshallers for synchronization signals.

	* libinfinity/inf-net-object.h:
	* libinfinity/inf-net-object.c:
	* libinfinity/inf-connection-manager.h:
	* libinfinity/inf-connection-manager.c: Implemented separation between
	inner and outer queue, added enqueued vfunc in InfNetObject.

	* libinfinity/inf-session.h:
	* libinfinity/inf-session.c: Implemented session synchronization.

	* libinfinity/inf-buffer.c: Minor build fixes.

	* libinfinity/docs/terminology: Added inner queue and outer queue of
	connection manager.

	* libinfinity/docs/session: Applied slight changes that came up during
	implementation.

2007-03-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/docs:
	* libinfinity/docs/terminology:
	* libinfinity/docs/session: Added some notes, mostly for me to not
	forget how things are supposed to work, but perhaps also interesting
	to others.

2007-03-01  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:BOOLEAN marshaller.

	* libinfinity/inf-buffer.h:
	* libinfinity/inf-buffer.c:
	* libinfinity/Makefile.am: Added common buffer interface.

	* libinfinity/inf-text-buffer.c:
	* libinfinity/inf-ink-buffer.c: Changed prerequiste from GObject to
	InfBuffer.

2007-02-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/infd-directory.h:
	* libinfinity/infd-directory.c: Added some directory API, but most
	implementations are still missing.

2007-02-27  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added marshallers required for
	InfTextBuffer.

	* libinfinity/inf-text-buffer.h:
	* libinfinity/inf-text-buffer.c:
	* libinfinity/Makefile.am: Added InfTextBuffer interface.

	* libinfinited/inf-directory-storage.h:
	* libinfinited/inf-directory-storage.c: Added methods to read text
	notes, write ink and text notes, create a subdirectory and
	remove nodes.

2007-02-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-connection-manager.h:
	* libinfinity/inf-connection-manager.c: Added
	inf_connection_manager_has_connection(). Also do strong refs instead
	of weak refs on added net object. This way, net objects are kept alive
	if there are still connections open. Especially, this should allow
	keeping sessions alive even if the document in the directory tree is
	removed.

	* libinfinited/infd-server.h:
	* libinfinited/infd-server.c:
	* libinfinited/Makefile.am: New server class managing acception of
	incoming connections and (yet to come) service publishing.

	* libinfinited/infd-directory.h:
	* libinfinited/infd-directory.c: Implemented directory tree structure,
	but accessing background storage and handling client requests still
	missing.

2007-02-26  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-marshal.in: Added VOID:OBJECT marshaller.

	* libinfinity/inf-user.h:
	* libinfinity/inf-user.c:
	* libinfinity/inf-session.h:
	* libinfinity/inf-session.c:
	* Makefile.am: Added InfUser and InfSession classes.

	* libinfinity/inf-ink-buffer.c: Changed signal flags for the
	remove-stroke signal from G_SIGNAL_RUN_CLEANUP to G_SIGNAL_RUN_LAST
	and surrounded the signal emission by a g_object_ref / g_object_unref
	pair. This way, the stroke should stay alive after having been removed
	from the buffer and signal handlers running after the default handler
	don't get corrupted memory.

2007-02-23  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-ink-stroke.h:
	* libinfinity/inf-ink-stroke.c: Renamed from InfStroke to
	InfInkStroke.

	* libinfinity/inf-ink-buffer.h:
	* libinfinity/inf-ink-buffer.c: Made an interface out of InfBuffer,
	renamed to InfInkBuffer.

	* libinfinity/Makefile.am: Adjusted build rules for renamed files.

	* libinfinited/infd-directory-storage.h:
	* libinfinited/infd-directory-storage.c: Include inf-ink-buffer.h
	instead of inf-buffer.h, added text node type for upcoming
	collaborative text editing support, removed empty flag from node
	(client should query a node to check whether it is empty, this way it
	can also treat it as empty if it only contains nodes it is not
	interested in, for example a subdirectory containing only ink nodes
	will be shown empty in a text editor).

2007-02-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinited/infd-directory.h:
	* libinfinited/infd-directory.c: Added GNetworkTcpServer object, close
	on error.

2007-02-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity/inf-connection-manager.c: Take a reference of the
	connection in inf_connection_manager_add_connection().

	* libinfinited/infd-directory.c:
	* libinfinited/infd-directory-storage.c:
	* libinfinited/infd-directory.h:
	* libinfinited/infd-directory-storage.h:
	* libinfinited/infd-marshal.in:
	* libinfinited/Makefile.am: Added interface for directory storage in
	libinfinited and initial directory class.

	* Makefile.am:
	* configure.ac: Build libinfinited.

2007-02-21  Armin Burgmeier  <armin@arbur.net>

	* libinfinity: Renamed infinity directory to libinfinity.

	* configure.ac:
	* Makefile.am:
	* test/Makefile.am:
	* test/inf-test-xml-stream.c:
	* libinfinity/*.[ch]: Changed references and includes from infinity to
	libinfinity. Also implemented inf_stroke_new_at().

2007-02-21  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-net-object.c: Add G_TYPE_OBJECT prerequisite.

2007-02-20  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-connection-manager.c:
	* infinity/inf-xml-stream.c: Chain up in destructor.

	* infinity/inf-buffer.h:
	* infinity/inf-buffer.c: Added InfBuffer class managing multiple
	InfStrokes.

	* infinity/inf-marshal.in: Added input file for glib-genmarshal.

	* infinity/Makefile.am: Create inf-marshal.h and inf-marshal.c from
	inf-marshal.in. Also added inf-buffer.c to build.

2007-02-20  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-stroke.h:
	* infinity/inf-stroke.c: Added position to InfStroke to which
	the coordinates of the contained InfStrokePoints are relative.

2007-02-20  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-xml-stream.c:
	* infinity/inf-connection-manager.c: Documentation fixes.

	* infinity/inf-net-object.c: Removed return in inf_net_object_sent()
	and inf_net_object_received() because these functions are void.

	* infinity/inf-stroke.h:
	* infinity/inf-stroke.c: Added object representing a single stroke.

	* infinity/Makefile.am: Added inf-stroke.c to build.

2007-02-19  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-connection-manager.h:
	* infinity/inf-connection-manager.c: Implemented message processing
	and inf_connection_manager_send_to_object().

2007-02-19  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-xml-stream.c:
	* infinity/inf-xml-stream.h:
	* infinity/Makefile.am: Added InfXmlStream class.

	* test/inf-test-xml-stream.c:
	* test/inf-test-stream.xml:
	* test/Makefile.am: Simple test routine to test functionality of
	InfXmlStream.

	* configure.ac: Create test/Makefile.
	* Makefile.am: Added test to SUBDIRS.

2007-02-18  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-connection-manager.c:
	* infinity/inf-connection-manager.h: Added InfConnectionManager class,
	not yet fully implemented, but compilable.

	* infinity/Makefile.am: Added inf-connection-manager.[ch].

2007-02-18  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-net-object.h:
	* infinity/inf-net-object.c: Renamed inf-netobject.[ch] to
	inf-net-object.[ch].

2007-02-18  Armin Burgmeier  <armin@arbur.net>

	* infinity/inf-netobject.h: Replaced INF_NET_OBJECT_TYPE by
	INF_TYPE_NET_OBJECT to follow gobject naming conventions.

2007-02-18  Armin Burgmeier  <armin@arbur.net>

	* configure.ac: Added check for glib, gobject, libgnetwork and
	libxml2.

	* infinity/Makefile.am: Add CFLAGS and libs of dependencies to
	libinfinity_1_0_la_CPPFLAGS respectively libinfinity_1_0_la_LIBADD.

	* infinity/inf-netobject.h: Added libgnetwork/gnetwork-connection.h
	and libxml/tree.h includes to make it actually compile.

	* infinity/inf-config.h.in: Removed generated file from repository.

2007-02-16  Armin Burgmeier  <armin@arbur.net>

	* configure.ac:
	* Makefile.am:
	* AUTHORS:
	* NEWS:
	* README:
	* COPYING:
	* INSTALL:
	* infinity/Makefile.am:
	* infinity/inf-config.h.in:
	* infinity/inf-netobject.h:
	* infinity/inf-netobject.c: Initial revision.
