2003-01-07  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-mime.h: Fixed a typo, size_t != gsize. Thanks Andrea!

2003-01-06  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/tcp/rr-tcpconnection.c: (in_event):
	Fixed a compiler warning.

	* profiles/null_echo/Makefile.am:
	* profiles/rot13/Makefile.am:
	* tests/Makefile.am:
	no need for these libraries to have a -0.9 postfix.

2003-01-06  Jonas Borgstrm  <jonas@codefactory.se>

	* Makefile.am:
	* configure.ac:
	* debian/Makefile.am:
	* debian/README.debian:
	* debian/changelog:
	* debian/control:
	* debian/copyright:
	* debian/librr0.9-0.files:
	* debian/librr0.9-doc.files:
	* debian/rules:
	Added debian package files.

	* doc/reference/Makefile.am:
	* examples/Makefile.am:
	* librr/Makefile.am:
	* roadrunner.pc.in:
	* tests/Makefile.am:
	renamed library from librr.so to librr-0.9.so

	* librr/makefile.msc:
	added rr-mime.obj

	* librr/tcp/rr-tcplistener.c: (in_event):
	win32 lacks socklen_t support.

	* profiles/null_echo/Makefile.am:
	* profiles/rot13/Makefile.am:
	Don't install these sample profiles.

2003-01-03  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-listener.c: (rr_listener_class_init),
	(rr_listener_get_max_connections), (shutdown),
	(rr_listener_disconnect_all):
	* librr/rr-listener.h:
	* librr/tcp/rr-tcpconnection.c: (finalize):
	* librr/tcp/rr-tcplistener.c: (source_remove),
	(rr_tcp_listener_unlisten), (tcp_shutdown), (finalize):
	implemented rr_listener_shutdown.

2002-12-20  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/tmpl/rr.sgml:

	* librr/message/rr-message-error.c: (process_frame):
	Removed bogus comment.

	* librr/rr-mime.c: (rr_mime_part_get_id), (rr_mime_part_find):
	* librr/rr-mime.h:
	Removed the "iter" parameter from the rr_mime_part_find, it makes
	no sence. Added rr_mime_part_get_id, which returns the value
	of the "Content-ID" header.

2002-12-12  Jonas Borgstrm  <jonas@codefactory.se>

	* API_CHANGES: Documented the API changes this commit will do.

	* configure.ac: Better gtk-doc version check.

	* doc/reference/.cvsignore:
	* doc/reference/roadrunner-docs.sgml: Added rr-mime.h

	* librr/Makefile.am: Added rr-mime.[ch]

	* librr/rr-mime.[ch]:
	A small, simple and fast mime parser. The api isn't quite finalized
	yet. Comments are welcome.

	* librr/message/rr-message.c: (finalize), (rr_message_init),
	(rr_message_set_channel):
	* librr/message/rr-message.h:
	Removed some obsolete mime functions.

	* librr/rr-frame.c: (finalize), (rr_frame_parse_mime),
	(rr_frame_mime_get_body), (rr_frame_mime_get_body_size):
	* librr/rr-frame.h:
	Added rr_frame_parse_mime which will try to parse the frame and
	return a RRMimePart.

	* librr/rr.h:
	added rr-mime.h

2002-11-28  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-debug.h: Fixed debug macros for compilers which support
	ISO varargs.

2002-11-23  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac: Changed the version number to 0.9.1 (not released yet)

	* librr/Makefile.am:
	* librr/message/Makefile.am:
	* librr/tcp/Makefile.am:
	* profiles/null_echo/Makefile.am:
	* profiles/rot13/Makefile.am:
	* roadrunner.pc.in:
	Install the header files in $prefix/include/roadrunner-1.0/librr/

2002-11-19  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (send_helper), (out_queue_push):
	Avoid a bogus warning message generated by the greeting frame.

2002-11-08  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac: Added AC_CANONICAL_SYSTEM

	* librr/message/rr-greeting.c: (rr_greeting_init):
	* librr/message/rr-message-close.c: (rr_message_close_init):
	* librr/message/rr-message-error.c: (rr_message_error_init):
	* librr/message/rr-message-start.c: (finalize),
	(rr_message_start_init), (rr_message_start_add_channel):
	* librr/message/rr-message-start.h:
	* librr/message/rr-message-startrpy.c: (rr_message_startrpy_init):
	* librr/message/rr-message-static.c: (rr_message_static_new),
	(get_frame):
	* librr/message/rr-message-static.h:
	* librr/message/rr-message.h:
	Every message now has to set the RRMessage->type.

	* librr/rr-channel.c: (send_helper), (out_queue_push),
	(out_queue_pop), (out_queue_ready), (out_queue_optimize):
	Fixed a queue bug.

	* librr/rr-manager.c: (rr_manager_send_greeting):
	Set msgno to 0.

2002-10-10  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-debug.c: (init_debug_output_files),
	(rr_debug_log_handler), (rr_debug_net_log_transfer):
	DEBUG_NET_FILE defaults to the same file as DEBUG_FILE.

2002-10-06  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac: removed duplicate librr/message/Makefile entry

	* librr/rr-channel.c: (rr_channel_out_queue_empty), (send_helper),
	(out_queue_peek_item), (out_queue_pop):
	Removed a race condition and some compiler warnings.

	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_register_sender):
	* librr/rr-connection.h: Check for empty channel out queue here instead
	of in rr-channel.c to avoid a race condition.

	* librr/rr-profileregistry.c: (finalize):
	plugged a memory leak.

	* librr/rr-workpool.c: (rr_work_pool_new):
	Don't forget to initialize a flag.

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	Fixed a compile warning.

2002-10-01  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (do_frame_available), (out_queue_pop):
	Acquire the mutex before adding a RPY slot.

	* librr/rr-frame.h: cleanup

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	Fixed a bug that might cause segno mismatch and frame parse errors.

2002-09-28  Jonas Borgstrm  <jonas@codefactory.se>

	* examples/simple-profile.c: (frame_available), (rr_simple_start):

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(rr_channel_get_active_item), (rr_channel_remove_active_item),
	(send_helper), (do_frame_available), (rr_channel_flush),
	(rr_channel_unlock), (out_queue_free), (find_queue_item),
	(queue_item_free), (queue_item_new), (out_queue_insert_rpy_slot),
	(out_queue_push_frame), (out_queue_push_message),
	(out_queue_peek_item), (out_queue_pop), (out_queue_ready):

	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_register_sender),
	(rr_connection_close_all), (rr_connection_get_next_frame),
	(rr_connection_language_supported):

2002-08-28  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_start_multi):
	* librr/rr-manager.c: (rr_manager_start_multi),
	(rr_manager_start_multiv):
	* librr/rr-manager.h:
	Unbreaking the rr_connection_start_multi function.

2002-08-20  Jonas Borgstrm  <jonas@codefactory.se>

	* Makefile.am:
	* build/.cvsignore:
	* build/Makefile.am:
	* build/win32/.cvsignore:
	* build/win32/Makefile.am:
	* examples/Makefile.am:
	* librr/Makefile.am:
	* librr/message/Makefile.am:
	* librr/tcp/Makefile.am:
	* profiles/Makefile.am:
	* profiles/null_echo/Makefile.am:
	* profiles/rot13/Makefile.am:
	* tests/Makefile.am:
	Added the win32 build system files to EXTRA_DIST


	* README.announce:
	* configure.ac:
	preparing for release 0.9.

	* doc/reference/tmpl/rr.sgml:

	* examples/simple-profile.c: (rr_simple_close):
	fixed a compile warning.

	* librr/rr-channel.c: (send_helper):
	* librr/rr-connection.c: (close_all_helper):
	* librr/rr-manager.c: (close_confirmation):
	* librr/rr.h:
	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	* librr/tcp/rr-tcplistener.c: (rr_tcp_listener_new):
	Added more error codes, and just drop frames with bogus
	channel ids, don't shutdown the connection.

2002-08-19  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (remove_helper), (reset_channel):
	don't forget to lock the channel before removing it.

	* librr/rr-listener.c: (rr_listener_init),
	(rr_listener_add_connection), (rr_listener_remove_connection),
	(rr_listener_get_num_connections),
	(rr_listener_set_max_connections),
	(rr_listener_get_max_connections):
	* librr/rr-listener.h:
	Added some new functions to control the maximim number of connections
	allowed.

	* librr/rr.c: (rr_set_max_work_threads), (rr_get_max_work_threads):
	* librr/rr.h:

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	use rr_connection_get_channel_locked.
	
	* librr/tcp/rr-tcplistener.c: (in_event):
	Reject connections if the limit is reached.

2002-08-15  Jonas Borgstrm  <jonas@codefactory.se>

	* API_CHANGES: documented the api changes (0.8->0.9)
	
	* examples/simple-client.c: (main):
	rr_simple_start takes a connection as first argument now.

	* examples/simple-profile.c: (rr_simple_start):
	* examples/simple-profile.h:
	use rr_connection_start instead of rr_manager_start
	
	* librr/rr-connection.c: (rr_connection_start),
	(rr_connection_start_multi):
	rr_connection_start should be used instead of rr_manager_start, so the
	user doesn't have to worry about RRManager

	* profiles/rot13/rot13.c: (rr_rot13_start):
	* profiles/rot13/rot13.h:
	Use RRConnection instead of RRManager.

	* tests/rr-client.c: (do_tests), (my_thread), (init_connection),
	(main):
	Use RRConnection instead of RRManager.

2002-08-09  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (get_frame): s/\n/\r\n/

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(rr_channel_close), (rr_channel_lock), (rr_channel_unlock):
	Added some functions to be able to "lock" a channel so it doesn't
	get closed while using it.

	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_get_channel_locked),
	(remove_helper), (rr_connection_remove_channel),
	(close_all_helper), (rr_connection_close_all):
	Added some functions for closing all channels (only used by
	TCPConnction)

	* librr/rr-connection.h:

	* librr/rr-frame.c: (rr_frame_aggregate):
	Fixed a buffer overflow bug.

	* librr/tcp/rr-tcpconnection.c: (handle_seq_frame),
	(frame_divider), (real_disconnect):
	use rr_connection_close_all.

2002-07-26  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-manager.c: (handle_incoming_start):
	When a <start> request is rejected send the last
	error message as an error frame.

	* librr/tcp/rr-tcplistener.c: (rr_tcp_listener_new):
	initialize the socketaddr_in struct to zeros.

2002-07-26  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/makefile.msc: Updated the win32 build system

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_init),
	(in_event), (out_event):
	Applied a (slightly modified) patch from Andrea Campi <a.campi@inet.it>
	to fix some build problems on AIX 4.3.

2002-07-17  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-manager.c: (rr_manager_start_multi),
	(close_confirmation), (rr_manager_close_channel):
	* librr/rr-manager.h:
	Don't try start/close any channel if we are disconnected.

	* librr/tcp/rr-tcpconnection.c: (disconnect):
	Ignore error messages when trying to close channel 0.

2002-07-16  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-frame.c: (parse): Check that frame->size is non-negative

	* librr/tcp/rr-tcpconnection.c: (in_event):
	send an error frame if the buffer is full.

2002-07-16  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-start.c:
	(rr_message_start_empty_request_p):
	* librr/message/rr-message-start.h:
	* librr/rr-manager.c: (rr_manager_start_multi):
	Don't send a <start /> request if all the profiles have
	bailed out.

2002-07-16  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac: Bump version number

	* examples/simple-profile.c: (rr_simple_start):
	* librr/message/rr-message-start.c: (rr_message_start_add_channel):
	* librr/rr-channel.c: (rr_channel_client_init),
	(rr_channel_server_init), (rr_channel_client_confirmation),
	(rr_channel_server_confirmation):
	* librr/rr-channel.h:
	* librr/rr-manager.c: (handle_incoming_startrpy),
	(handle_incoming_start):
	* profiles/rot13/rot13.c: (rr_rot13_class_init), (client_init):
	s/initiator/client/
	s/listener/server/

2002-07-15  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/roadrunner.types: Removed RRProfile

	* examples/simple-profile.c: (rr_simple_get_type),
	(rr_simple_close): use rr_channel_close instead of rr_manager_close_channel

	* examples/simple-profile.h:
	* librr/Makefile.am: Removed rr-profile.[ch]

	* librr/message/rr-message-start.c:
	(rr_message_start_get_channel_list),
	(rr_message_start_add_channel), (append_channel), (get_frame),
	(rr_message_start_done), (rr_message_start_wait_for_reply):
	Updated to use the new profile API

	* librr/message/rr-message-start.h:

	* librr/rr-channel.c: (rr_channel_initiator_init),
	(rr_channel_listener_init), (rr_channel_initiator_confirmation),
	(rr_channel_listener_confirmation), (rr_channel_get_aggregate),
	(rr_channel_get_uri), (rr_channel_set_uri),
	(rr_channel_get_piggyback), (rr_channel_set_piggyback),
	(rr_channel_close):
	Updated to use the new profile API

	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_peer_supports_profile):

	* librr/rr-manager.c: (find_channel), (handle_incoming_startrpy),
	(handle_incoming_start), (rr_manager_start_multi):
	* librr/rr-manager.h:
	Updated to use the new profile API

	* librr/rr-profileregistry.c: (rr_profile_registry_init),
	(rr_profile_registry_get_type), (rr_profile_registry_add_profile),
	(rr_profile_registry_remove_profile),
	(rr_profile_registry_get_global_config):
	Updated to use the new profile API

	* librr/rr-profileregistry.h:
	* librr/rr.c: (gobject_bug_workaround):
	* librr/rr.h: removed rr-profile.h

	* profiles/null_echo/echo.c: (rr_null_echo_get_type):
	* profiles/null_echo/echo.h:
	Updated to use the new profile API

	* profiles/rot13/rot13.c: (rr_rot13_class_init),
	(rr_rot13_get_type), (initiator_init):
	* profiles/rot13/rot13.h:
	Updated to use the new profile API

	* tests/rr-client.c: (do_tests):
	Updated to use the new profile API

2002-06-26  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_remove_channel):
	Don't forget to remove the channel from the "active" list.

2002-06-25  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-manager.c: (handle_incoming_error):
	Fixed a race condition.

2002-05-23  Jonas Borgstrm  <jonas@codefactory.se>

	* Makefile.am: added README.win32 to EXTRA_DIST
	* README.win32: some short build instructions for win32.

2002-05-20  Jonas Borgstrm  <jonas@codefactory.se>

	* Makefile.am: Added README.announce to EXTRA_DIST.
	* configure.ac: Bumped version number to 0.8
	* examples/Makefile.am: added simple-profile.h to EXTRA_DIST

	* librr/rr-profile.c: more documentation.

2002-05-16  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/.cvsignore:
	* doc/reference/roadrunner-docs.sgml:
	* doc/reference/roadrunner.types:
	Added class hierarchy support.

	* librr/rr-workpool.c: (rr_work_pool_free):
	* librr/rr.c: More documentation.

2002-05-14  Jonas Borgstrm  <jonas@codefactory.se>

	* build/win32/make.msc:
	* librr/makefile.msc: Win32 tweaks.

	* librr/rr-workpool.c: (work_proxy), (rr_work_pool_push):
	use g_cond_broadcast instead of g_cond_signal.

2002-05-13  Jonas Borgstrm  <jonas@codefactory.se>

	* examples/.cvsignore:
	* examples/Makefile.am:
	* examples/makefile.msc:
	* examples/simple-client.c: (main):
	* examples/simple-profile.c: (rr_simple_init),
	(rr_simple_class_init), (rr_simple_get_type), (frame_available),
	(rr_simple_start), (rr_simple_do_stuff), (rr_simple_close):
	* examples/simple-profile.h:
	* examples/simple-server.c: (main):
	Added a new sample BEEP profile.

	* librr/message/rr-message-static.c: (rr_message_static_new):
	* librr/message/rr-message-static.h:
	* librr/rr-manager.c: (handle_incoming_close):
	* profiles/null_echo/echo.c: (rr_null_echo_trip):
	* profiles/rot13/rot13.c: (do_client_handshake), (frame_available),
	(rr_rot13_start):
	Return type of rr_message_static_new  is of type RRMessage instead of 
	RRMessageStatic

2002-05-13  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (rr_greeting_class_init),
	(process_frame):
	* librr/message/rr-message-close.c: (rr_message_close_class_init),
	(process_frame):
	* librr/message/rr-message-error.c: (rr_message_error_class_init),
	(process_frame):
	* librr/message/rr-message-start.c: (rr_message_start_class_init),
	(process_frame):
	* librr/message/rr-message-startrpy.c:
	(rr_message_startrpy_class_init), (process_frame):
	s/complete_message/process_frame/

	* librr/message/rr-message.c: (rr_message_init),
	(rr_message_class_init), (rr_message_process_frame),
	(rr_message_set_aggregate), (rr_message_get_aggregate):
	* librr/message/rr-message.h:
	removed the rr_message_complete_message function.

	* librr/rr-channel.c: (rr_channel_init), (rr_channel_class_init),
	(do_frame_available), (rr_channel_get_window_size),
	(rr_channel_set_aggregate), (rr_channel_get_aggregate):
	* librr/rr-channel.h:
	removed the rr_channel_complete_frame function

	* librr/rr-manager.c: (rr_manager_class_init), (frame_available):
	* profiles/rot13/rot13.c: (rr_rot13_class_init), (frame_available):
	s/complete_message/frame_available/

2002-05-12  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_init), (rr_channel_flush),
	(rr_channel_set_window_size), (rr_channel_get_window_size):
	* librr/rr-channel.h:
	Make the receive window size changeable.

	* librr/rr-connection.c: (rr_connection_get_next_frame):
	* librr/rr-connection.h: Make sure we don't overflow the buffer.

	* librr/tcp/rr-tcpconnection.c: (send_seq_frame), (out_event):

2002-05-11  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac:
	* librr/rr-debug.h:
	The rr_debug[1234] macros resolves to nothing only when
	RR_NO_DEBUG is defined.

	* librr/tcp/rr-tcpconnection.c: (handle_seq_frame):
	Added missing return statement.

2002-05-09  Jonas Borgstrm  <jonas@codefactory.se>

	* examples/simple-client.c: (main):
	* examples/simple-server.c: (main): don't use rr_run_in_background.

	* librr/rr-workpool.c: (rr_work_pool_free), (work_proxy):
	* librr/rr-workpool.h: Make sure all threads are done.

	* librr/rr.c: (run_thread), (rr_init), (rr_quit),
	(rr_wait_until_done), (rr_exit), (rr_get_main_context):
	* librr/rr.h:
	Don't use the default main loop context.

	* librr/tcp/rr-tcpconnection.c: (source_remove), (add_watch_full),
	(enable_input), (disable_input), (disable_output), (enable_output),
	(rr_tcp_connection_connect_fd), (real_disconnect):
	* librr/tcp/rr-tcplistener.c: (add_watch_full),
	(rr_tcp_listener_new): Don't use the default main loop context.

	* tests/rr-client.c: (main):
	* tests/rr-server.c: (main): don't use rr_run_in_background.

2002-05-08  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (get_next_frame_from_out_frames),
	removed excessive g_mutex_unlock.
	(rr_connection_pending_transmissions_p):

	* librr/rr-connection.h:
	Some reordering.

2002-05-08  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/tcp/rr-tcpconnection.c: (unref_channel):
	Fix memory leak.

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (finalize), (rr_connection_get_languages),
	(rr_connection_get_languages_str): Return NULL if no languages are
	available.

	* librr/rr-debug.c: (rr_debug_exit): stdout != stderr.

	* librr/rr-manager.c: (handle_incoming_closerpy):
	* librr/tcp/rr-tcpconnection.c: (real_disconnect):
	Only close channel 0 once.

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* README: Wheee, lets write some documentation.

	* librr/rr-debug.c: (init_debug_output_files):
	Print to stderr instead of stdout.

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac: Secret :)

	* librr/rr-debug.h: Added missing rr_debug4 macros.

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* build/win32/make.msc: Enable RR_DEBUG on win32 builds.

	* librr/rr-debug.c: (init_debug_output_files), (rr_debug_init):
	Support redirection of debug output to files.

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_connect_fd):

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_close_confirmation),
	(rr_channel_close_indication), (rr_channel_start_indication),
	(rr_channel_start_confirmation):
	* librr/rr-debug.c: (rr_debug_init):
	* librr/rr-listener.c: (rr_listener_add_connection),
	(rr_listener_remove_connection):
	Better debug messages.
	
	* librr/rr-manager.c: (handle_incoming_startrpy):
	call rr_profile_reply_piggyback directly.
	
	* librr/rr.c: (rr_init):

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_init),
	(event_join), (set_active), (set_inactive), (handle_seq_frame),
	(frame_divider), (report_error_and_disconnect), (error_event),
	(rr_tcp_connection_connect_fd), (rr_tcp_connection_connect),
	(real_disconnect):
	Better event handling.

	* librr/tcp/rr-tcpconnection.h:
	* librr/tcp/rr-tcplistener.c: (error_event), (rr_tcp_listener_new):
	* profiles/null_echo/echo.c: (rr_null_echo_class_init),
	(frame_available):
	Better debugging messages.

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* profiles/rot13/rot13.c: (do_client_handshake), (complete_frame):
	We can't store the static message to send on the stack.

2002-05-07  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-start.c: (finalize):
	Fixed a memory leak.

	* librr/rr-manager.c: (close_confirmation):
	Fixed a memory leak.

2002-05-06  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-startrpy.c: (finalize):
	* librr/message/rr-message-startrpy.h:
	Enable the new channel on finalize.

	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_get_next_frame):

	* librr/rr-manager.c: (handle_incoming_start):
	disable the new channel until the start reply has been sent.

	* librr/rr-workpool.c: (rr_work_pool_new), (rr_work_pool_free),
	(work_proxy), (rr_work_pool_push), (rr_work_pool_join):
	* librr/rr-workpool.h:
	Wait a while before destroying a thread.

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	Added some helpfull debug output.

2002-05-05  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (get_frame):
	* librr/message/rr-message-close.c: (get_frame):
	* librr/message/rr-message-error.c: (get_frame):
	* librr/message/rr-message-start.c: (get_frame):
	* librr/message/rr-message-startrpy.c: (get_frame):
	* librr/message/rr-message-static.c: (get_frame):
	* librr/message/rr-message.c: (rr_message_get_frame):
	* librr/message/rr-message.h:
	Removed the GError parameter from the get_frame function.
	Also return NULL, if the payload is larger than max_size.

	* librr/rr-channel.h:
	added the channel->starved flag.

	* librr/rr-connection.c: (get_next_frame_from_out_frames),
	(get_active_channel), (remove_out_queue_entry),
	(rr_connection_get_next_frame):
	* librr/rr-connection.h:
	Rewrote rr_connection_get_next_frame to better handle starved
	channels.

	* librr/rr-frame.c: (rr_frame_build), (rr_frame_parse), (build),
	(get_frame_type), (parse), (rr_frame_aggregate):
	* librr/rr-frame.h:
	* librr/rr-framefactory.c: (find_body),
	(rr_framefactory_parse_frame):
	* librr/rr-framefactory.h:
	guint8 -> gchar

	* librr/rr-manager.c: (handle_incoming_start):

	* librr/rr-workpool.c: (is_pending), (rr_work_pool_join):
	fixed a bug in rr_work_pool_join

	* librr/tcp/rr-frame-seq.c: (build), (parse):
	guint8 -> gchar

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_init),
	(enable_output), (handle_seq_frame), (frame_divider), (in_event),
	(out_event), (finalize):
	* librr/tcp/rr-tcpconnection.h:
	* librr/tcp/rr-tcplistener.c: (in_event):
	handle starved channels. 

2002-05-02  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/gtkdoc-remove-header-footer.awk:
	* doc/reference/roadrunner-docs.sgml:
	Removed RRApp references.

	* examples/simple-client.c: (do_test), (main):
	* examples/simple-server.c: (main):
	* librr/rr-connection.c: (rr_connection_init),
	(rr_connection_set_server_name), (rr_connection_disconnect),
	(rr_connection_get_manager):
	* librr/rr-connection.h:
	* librr/rr-listener.c: (rr_listener_shutdown):
	* librr/rr-listener.h:
	* librr/rr.c: (rr_init), (rr_run), (run_thread),
	(rr_run_in_background), (rr_exit):
	* librr/rr.h:
	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_class_init),
	(rr_tcp_connection_new_unconnected), (rr_tcp_connection_new),
	(real_disconnect), (disconnect):
	* librr/tcp/rr-tcpconnection.h:
	* librr/tcp/rr-tcplistener.c: (rr_tcp_listener_class_init),
	(in_event), (rr_tcp_listener_new), (rr_tcp_listener_unlisten),
	(tcp_shutdown):
	* librr/tcp/rr-tcplistener.h:
	* tests/rr-client.c: (init_connection), (main):
	* tests/rr-server.c: (main):
	Major API clean-up.

2002-05-01  Jonas Borgstrm  <jonas@codefactory.se>

	* examples/simple-client.c: (main):
	* examples/simple-server.c: (main):
	don't unref profreg.

	* librr/Makefile.am:
	* librr/makefile.msc:
	* librr/rr-app.c:
	* librr/rr-app.h:
	Removed rr-app.[ch]

	* librr/rr.c: (gobject_bug_workaround), (rr_init), (rr_run),
	(run_thread), (rr_run_in_background), (rr_exit):
	* librr/rr.h:
	Moved the main-loop thread functions from rr-app.c to rr.c

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_new):
	* librr/tcp/rr-tcplistener.c: (rr_tcp_listener_new):
	unref profreg.

	* tests/rr-client.c: (init_connection), (main):
	* tests/rr-server.c: (main):
	don't unref profreg.

2002-05-01  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_enable_input),
	(rr_connection_disable_input), (rr_connection_enable_output),
	(rr_connection_disable_output), (rr_connection_wait_quiescence),
	(rr_connection_do_quiescence),
	(rr_connection_complete_tuning_reset):
	* librr/rr-connection.h:
	* librr/tcp/rr-tcpconnection.c: (enable_input), (disable_input),
	(disable_output), (enable_output), (rr_tcp_connection_connect_fd),
	(real_disconnect):
	Added better disconnect () error handling.

	* profiles/rot13/rot13.c: (do_client_handshake), (complete_frame):
	Update to use the new rr_connection_complete_tuning_reset api.
	
2002-04-30  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-close.c: (complete_message):
	Allow messages without lang property.

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(rr_channel_get_active_item), (rr_channel_remove_active_message),
	(rr_channel_out_queue_empty_p), (send_helper),
	(rr_channel_register_frame), (rr_channel_flush):
	rr_channel_flush: new function.
	
	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_init), (finalize),
	(rr_connection_register_sender), (rr_connection_get_next_frame),
	(rr_connection_send_frame),
	(rr_connection_pending_transmissions_p),
	(rr_connection_wait_quiescence), (rr_connection_do_quiescence),
	(reset_channel):
	rr_connection_wait_quiescence: new function.

	* librr/rr-connection.h:

	* librr/rr-manager.c: (handle_incoming_close),
	(handle_incoming_closerpy), (handle_incoming_error),
	(rr_manager_close_channel), (rr_manager_close_channel_nonblock):

	* librr/tcp/rr-tcpconnection.c: (frame_divider), (unref_channel),
	(rr_tcp_connection_disconnect), (finalize):
	Close channel 0 on disconnect();

2002-04-29  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-static.c: (rr_message_static_new):
	* librr/message/rr-message-static.h:
	gpointer->gchar *

	* librr/rr-frame.c: (rr_frame_new), (parse), (rr_frame_aggregate):
	* librr/rr-frame.h:
	gpointer->gchar *.
	Append a trailing zero to the payload.

	* librr/rr-manager.c: (handle_incoming_startrpy),
	(handle_incoming_greeting), (handle_incoming_closerpy),
	(handle_incoming_error), (complete_frame),
	(rr_manager_start_multi), (close_confirmation),
	(rr_manager_close_channel), (rr_manager_close_channel_nonblock):
	* librr/rr-manager.h:
	Added rr_manager_close_nonblock.

2002-04-29  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (complete_message):
	* librr/message/rr-message-close.c: (complete_message):
	* librr/message/rr-message-error.c: (complete_message):
	* librr/message/rr-message-start.c: (complete_message):
	* librr/message/rr-message-startrpy.c: (complete_message):
	Use rr_frame_mime_get_body.
	* librr/rr-frame.c:
	* librr/rr-frame.h:
	Removed obsolete function.

	* librr/rr-manager.c: (rr_manager_start_multi):
	Removed dead code.

2002-04-29  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/Makefile.am:
	* librr/makefile.msc: Added rr-callbacklist.[ch]

	* librr/message/rr-message.c: (rr_message_mime_parse_headers):
	Fixed compile problem.

	* librr/rr-channel.c: (rr_channel_register_frame):
	* librr/rr-channel.h: New function.

	* librr/rr-connection.c: (finalize), (rr_connection_enable_input),
	(rr_connection_disable_input), (rr_connection_get_next_frame),
	(rr_connection_do_quiescence), (rr_connection_begin_tuning_reset),
	(do_complete_tuning_reset), (rr_connection_complete_tuning_reset):
	Made rr_connection_complete_tuning_reset non-blocking.
	
	* librr/rr-connection.h:

	* librr/rr-manager.c: (rr_manager_set_greeting_sent),
	(rr_manager_wait_for_greeting_sent), (rr_manager_send_greeting),
	(handle_incoming_greeting), (rr_manager_start_multi),
	(close_confirmation): Rewrote some functions to fit the new
	thread model.

	* librr/rr-manager.h:

	* librr/rr.c: (rr_init):

	* librr/tcp/rr-tcpconnection.c: (out_removed), (disable_input),
	(disable_output), (out_event), (real_disconnect):
	Rewrote disable_input/output to be non-blocking.

	* profiles/rot13/rot13.c: (rr_rot13_init), (rr_rot13_class_init),
	(do_enable_crypt), (do_client_handshake), (complete_frame),
	(start_indication), (rr_rot13_start):
	Code cleanup.

	* profiles/rot13/rot13.h:

	* tests/rr-client.c: (init_connection):
	Use the rot13 api.

2002-04-28  Daniel Lundin  <daniel@codefactory.se>

	* librr/rr-frame.h: 

	* librr/rr-frame.c: (rr_frame_mime_get_body),
	(rr_frame_mime_get_body_size): 
	Added functions to get and cache pointer to MIME body.

2002-04-24  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/Makefile.am: Added rr-workpool.[ch]

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(do_frame_available), (rr_channel_frame_available):
	Use RRWorkPool instead of GThreadPool.

	* librr/rr-channel.h:

	* librr/rr-connection.c: (reset_channel),
	(rr_connection_complete_tuning_reset):
	Don't wait for a greeting.

	* librr/rr-manager.c: (do_reply_piggyback),
	(do_start_confirmation), (handle_incoming_startrpy),
	(handle_incoming_start), (rr_manager_start_multi):
	Use RRWorkPool instead of GThreadPool.
	

	* librr/rr-workpool.c: (rr_work_pool_new), (rr_work_pool_free),
	(is_active), (get_next_item), (work_proxy), (process_item),
	(rr_work_pool_push), (rr_work_pool_join), (my_func), (main):
	A ThreadPool like datatype.
	
	* librr/rr-workpool.h:

	* librr/rr.c: (rr_init), (rr_main_work_pool_push),
	(rr_main_work_pool_join):

	* librr/rr.h:

	* librr/tcp/rr-tcpconnection.c: (frame_divider):

	* profiles/rot13/rot13.c: (complete_frame):

2002-04-24  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_frame_available):
	Call do_frame_available directly if channel->dont_queue_frames
	is TRUE.
	
	* librr/rr-channel.h:

	* librr/rr-connection.c: (rr_connection_remove_channel):

	* librr/rr-manager.c: (rr_manager_init), (close_confirmation),
	(rr_manager_close_channel):

	* librr/tcp/rr-tcpconnection.c: (in_event), (unref_channel),
	(real_disconnect): Reorder some code.

2002-04-22  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-static.c: (get_frame):
	* librr/message/rr-message.h:
	Support ansno

	* librr/rr-connection.c: (finalize):
	finalize the manager before the other classes.

	* librr/tcp/rr-tcpconnection.c: (unref_channel):
	We can't change channel->connection.
	
2002-04-22  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.h: Added a tuning flag.

	* librr/rr-connection.c: (finalize), (warn_channel),
	(reset_channel), (rr_connection_complete_tuning_reset):
	Fixed a race-condition.

	* librr/rr-connection.h:

	* librr/rr-manager.c: (handle_incoming_start),
	(handle_incoming_close), (rr_manager_close_channel):
	ref-count fixes.
	
	* profiles/rot13/rot13.c: (rr_rot13_class_init), (complete_frame),
	(is_waiting): Clean up.

2002-04-19  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-manager.c: (handle_incoming_start), (rr_manager_start),
	(rr_manager_start_multi):
	* librr/rr-manager.h:
	Removed the ugly rr_manager_start macro and, made two functions instead.
	rr_manager_start and rr_manager_start_multi.

	* examples/simple-client.c: (do_test): updated to use new api.

	* librr/message/rr-message-start.c: (finalize),
	(rr_message_start_new), (complete_message), (get_frame),
	(rr_message_start_done), (rr_message_start_wait_for_reply),
	(rr_message_start_get_server_name):
	* librr/message/rr-message-start.h:
	* librr/rr-connection.c: (finalize),
	(rr_connection_get_server_name), (rr_connection_set_server_name):
	* librr/rr-connection.h:
	Added "serverName" support.

	* tests/rr-client.c: (do_tests), (my_thread), (init_connection),
	(main): Updated to use new api.

2002-04-19  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/tcp/rr-tcpconnection.c:
	Include librrrr/rr.h before using G_PLATFORM_WIN32

	* librr/tcp/rr-tcplistener.c:
	Include librrrr/rr.h before using G_PLATFORM_WIN32

	* librr/tcp/rr-win32.c: (rr_win32_init_winsock):
	Only initialize once.
	
2002-04-18  Jonas Borgstrm  <jonas@codefactory.se>

	* examples/.cvsignore:
	* examples/Makefile.am:
	* examples/makefile.msc:
	* examples/rr-client.c:
	* examples/simple-client.c: (do_test), (main):
	* examples/simple-server.c: (main):
	Added some simple example programs.

	* librr/rr-app.c: (rr_app_run_in_background):
	Cleanup.

	* librr/rr-channel.h:

	* librr/rr.c: (rr_init):
	* librr/rr.h: This function now returns TRUE on success.

	* makefile.msc: Added missing file.

2002-04-18  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (finalize), (complete_message):
	Save the profile list.

	* librr/rr-connection.c: (finalize),
	(rr_connection_set_peer_profiles),
	(rr_connection_get_peer_profiles),
	(rr_connection_peer_supports_profile):
	New functions.

	* librr/rr-connection.h:

	* librr/rr-manager.c: (handle_incoming_greeting):
	Store the list of supported profiles in the connection object.
	
	* tests/rr-client.c: (init_connection):
	Test rr_connection_peer_supports_profile.

2002-04-17  Jonas Borgstrm  <jonas@codefactory.se>

	* .cvsignore: Ignore some more files.

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_class_init),
	(rr_tcp_connection_connect_fd): Some changes to support win32.
	* librr/tcp/rr-tcplistener.c: (rr_tcp_listener_listen):
	win32 support.

	* build/win32/make.msc:
	* librr/makefile.msc:
	* librr/message/makefile.msc:
	* librr/tcp/makefile.msc:
	* profiles/makefile.msc:
	* profiles/null_echo/makefile.msc:
	* profiles/rot13/makefile.msc:
	* tests/makefile.msc:
	MSVC build system.

	* librr/tcp/rr-win32.c: (rr_win32_enable_nonblock),
	(rr_win32_init_winsock): some win32 specific functions.

	* librr/tcp/rr-win32.h:

2002-04-16  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac: libxml 2.4.16 is ok.

	* librr/rr-beeperror-priv.h: Use correct include path
	* librr/rr-beeperror.c: Use correct include path

2002-04-11  Jonas Borgstrm  <jonas@codefactory.se>

	* Makefile.am: make librr/ before doc/

	* configure.ac: Require glib version 2.0.1

	* doc/reference/Makefile.am: Unbreak makefile.

2002-04-10  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/gtkdoc-remove-header-footer.awk:
	updated header/footer location.

	* librr/tcp/rr-tcpconnection.c: (in_event):
	debug message cleanup.

	* profiles/rot13/rot13.c: (complete_frame), (rr_rot13_start):
	Send Content-Type headers.

	* tests/rr-client.c: (do_tests):
	testcase cleanup.

2002-04-06  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/gtkdoc-remove-header-footer.awk:
	Fixed tyop.

	* doc/reference/roadrunner-docs.sgml:
	Moved RRGreeting to the message category.
	* librr/rr-channel.c:
	* librr/rr-channel.h:
	* librr/rr-connection.c: (rr_connection_register_sender),
	(rr_connection_get_channel), (rr_connection_set_profile_registry),
	(rr_connection_send_frame), (rr_connection_begin_tuning_reset),
	(rr_connection_complete_tuning_reset):
	* librr/rr-connection.h:
	* librr/rr-manager.c:
	* librr/rr-profile.c:
	* librr/rr.c: (rr_init):
	* librr/tcp/rr-tcpconnection.c:
	More documentation.

	* profiles/rot13/rot13.c: (do_unref), (complete_frame):
	Added a workaround, a channel can't do the last unref in it's own
	working thread.

2002-04-06  Jonas Borgstrm  <jonas@codefactory.se>

	* doc/reference/gtkdoc-remove-header-footer.awk:

	* doc/reference/rrify-gtkdoc.sh:

	Added a few ugly scripts to modify the gtkdoc generated html files, to
	get the propper roadrunner look.

2002-04-03  Jonas Borgstrm  <jonas@codefactory.se>

	* configure.ac:
	* doc/Makefile.am:
	* doc/reference/.cvsignore:
	* doc/reference/Makefile.am:
	* doc/reference/roadrunner-docs.sgml:
	Use gtk-doc to generate the reference manual.

	* librr/rr-connection.c: (rr_connection_wait_quiescence),
	(rr_connection_begin_tuning_reset):
	Documentation

	* librr/rr-manager.c: (rr_manager_init),
	(rr_manager_set_expects_greeting), (rr_manager_wait_for_greeting),
	(handle_incoming_greeting), (close_confirmation):
	documentation

	* librr/rr-manager.h:
	* librr/rr-profile.c:
	Documentation

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	Documentation

2002-04-03  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_begin_tuning_reset):
	* librr/rr-manager.c: (rr_manager_send_greeting):
	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	Added support for tuning resets directly after a channel start.

2002-04-02  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-manager.c: (do_start_confirmation),
	(handle_incoming_start):
	Run start_confirmation from the Channel threadpool.

	* librr/rr-profile.c: (rr_profile_set_uri):
	* librr/rr-profile.h: Cleanup.

2002-04-01  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-close.c: (finalize),
	(rr_message_close_init), (rr_message_close_done),
	(rr_message_close_wait_for_reply):
	* librr/message/rr-message-close.h:
	Redesigned the semantics.

	* librr/message/rr-message-start.c: (finalize),
	(rr_message_start_init), (rr_message_start_get_profile_list),
	(rr_message_start_add_profile), (append_profile),
	(complete_message), (get_frame), (rr_message_start_done),
	(rr_message_start_wait_for_reply):
	* librr/message/rr-message-start.h:
	Redesigned the semantics.

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(rr_channel_frame_available):
	* librr/rr-channel.h:
	Cleanup.

	* librr/rr-framefactory.c: (rr_framefactory_parse_frame):
	Better error messages.

	* librr/rr-manager.c: (finalize), (rr_manager_init),
	(get_next_channel_id), (handle_incoming_startrpy),
	(handle_incoming_start), (handle_incoming_close),
	(handle_incoming_greeting), (handle_incoming_error),
	(complete_frame), (rr_manager_start_full), (close_confirmation),
	(rr_manager_close_channel):
	Major code cleanup, added support for multiple simultaneous channel
	start/close.

	* librr/rr-manager.h:

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	Improved message validation.

2002-03-28  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(do_frame_available), (work_scheduler), (rr_channel_push_work),
	(rr_channel_frame_available):
	Added rr_channel_push_work. It adds callbacks to a single thread
	large per channel thread pool.

	* librr/rr-channel.h:

	* librr/rr-manager.c: (do_reply_piggyback),
	(handle_incoming_startrpy), (rr_manager_start_full):
	Fixed a thread race condition.

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_init),
	(frame_divider), (finalize): Removed the thread pool.

	* librr/tcp/rr-tcpconnection.h:

	* profiles/null_echo/echo.c: (rr_null_echo_class_init),
	(validate_piggyback): cleanups.

2002-03-27  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_begin_tuning_reset):
	use rr_manager_pre_greeting instead of rr_manager_set_state

	* librr/rr-manager.c: (rr_manager_init),
	(rr_manager_set_pre_greeting), (is_pre_greeting),
	(rr_manager_wait_for_greeting), (handle_incoming_greeting),
	(handle_incoming_error), (complete_frame), (close_confirmation):
	divide the manager state into two different variables.

	* librr/rr-manager.h:

2002-03-27  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_start_indication):
	* librr/rr-channel.h: Added a config_data parameter

	* librr/rr-connection.c: (rr_connection_begin_tuning_reset):
	reset manager->msgno
	
	* librr/rr-manager.c: (handle_incoming_startrpy),
	(rr_manager_start_full):
	Added config_data support.

2002-03-27  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_start_indication):
	* librr/rr-channel.h: Added a start_indication callback.

	* librr/rr-manager.c: (find_profile), (handle_incoming_startrpy),
	(rr_manager_start_full):
	* librr/rr-manager.h:
	Instanciate the profiles before sending the start request.

	* librr/rr-profile.c: (finalize), (rr_profile_reply_piggyback),
	(rr_profile_get_piggyback), (rr_profile_set_piggyback):
	* librr/rr-profile.h:
	Added some functions for storing the piggyback.

	* tests/rr-client.c: (do_tests), (init_connection), (main):
	Use the new API.

2002-03-27 Lundin  <daniel@codefactory.se>

	* librr/rr-manager.c: (rr_handle_incoming_start):
	* librr/rr-channel.h: (rr_channel_start_confirmation):
	* librr/rr-channel.c: (rr_channel_start_confirmation):
	Added start_confirmation callback
	
2002-03-14  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_send_frame):
	Cleanup.

	* profiles/null_echo/echo.c: (frame_available),
	(validate_piggyback), (rr_null_echo_trip):
	removed rr_message_set_channel calls

	* profiles/rot13/rot13.c: (complete_frame), (rr_rot13_start):
	removed rr_message_set_channel calls

2002-03-14  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-close.c: (complete_message):
	Cleanup.

	* librr/rr-channel.c: (rr_channel_get_active_item),
	(rr_channel_remove_active_message), (send_helper),
	(rr_channel_send_message), (rr_channel_send_frame):
	* librr/rr-channel.h:
	Added send_frame support.

	* librr/rr-connection.c: (rr_connection_get_next_frame):
	Add support for sending single frames.

	* profiles/null_echo/echo.c: (frame_available):
	Use send_frame instead of send_message.

2002-03-12  Daniel Lundin  <daniel@codefactory.se>

	* librr/rr-frame.c: (rr_frame_aggregate):
	Added optimization when a message consists of only one frame.
	
2002-03-12  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-error.c: (complete_message):
	Fixed tyop.

	* librr/message/rr-message-start.c: (complete_message):
	Fixed tyop.

	* librr/message/rr-message-startrpy.c: (complete_message):
	Fixed tyop.

	* librr/message/rr-message-close.c: (complete_message):
	Better parse code.

2002-03-12  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-error.c: (complete_message),
	(get_frame): Send the message as CDATA

	* librr/rr-channel.c: (frame_available_helper):

	* librr/rr-connection.c: (rr_connection_enable_input),
	(rr_connection_disable_input): New function.

	* librr/rr-connection.h:

	* librr/rr-manager.c: (handle_incoming_start),
	(rr_manager_start_full): set the connection

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_init),
	(rr_tcp_connection_class_init), (enable_input), (disable_input),
	(disable_output), (enable_output), (out_event), (error_event),
	(real_disconnect), (rr_tcp_connection_get_fd), (finalize):
	Added enable/disable input functionality.

	* librr/tcp/rr-tcpconnection.h:

	* librr/tcp/rr-tcpfilter.c: (rr_tcp_filter_class_init):

	* librr/tcp/rr-tcplistener.c: (rr_tcp_listener_listen):
	Cleanup.

2002-03-11  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (get_frame):
	* librr/message/rr-message-close.c: (get_frame):
	* librr/message/rr-message-error.c: (get_frame):
	* librr/message/rr-message-start.c: (get_frame):
	* librr/message/rr-message-startrpy.c: (get_frame):
	* librr/message/rr-message-static.c: (get_frame):
	* librr/message/rr-message.c: (rr_message_init):
	* librr/rr-channel.c: (rr_channel_send_message):
	* librr/rr-channel.h:
	* librr/rr-frame.c: (rr_frame_new), (rr_frame_aggregate):
	* librr/rr-frame.h:
	* librr/rr-manager.c: (handle_incoming_start),
	(handle_incoming_close): 

	Better msgno handling.

	* profiles/null_echo/echo.c: (frame_available),
	(validate_piggyback): Don't send a reply piggyback for now.

2002-03-11  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/Makefile.am:
	added rr-beeperror.h to EXTRA_DIST

	* librr/message/rr-message-static.c: (get_frame):
	Some casting.

2002-03-10  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-manager.c: (finalize), (rr_manager_init),
	(handle_incoming_startrpy), (handle_incoming_start),
	(rr_manager_start_full), (rr_manager_close_channel):
	Make the manager channel thread safe.

	* librr/rr-manager.h:
	Added manager->command_mutex

	* tests/rr-client.c: (do_tests), (my_thread), (main):
	Made the test-program multithreaded.

2002-03-10  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_init), (finalize),
	(frame_available), (rr_channel_get_active_message),
	(rr_channel_remove_active_message), (rr_channel_out_queue_empty_p),
	(rr_channel_send_message), (frame_available_helper),
	(rr_channel_frame_available):
	Queue incoming frames.

	* librr/rr-channel.h:

	* librr/tcp/rr-tcpconnection.c: (frame_avail_thread):

2002-03-10  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-channel.c: (rr_channel_frame_available):
	ref/unref before/after locking.
	* librr/rr-channel.h:

	* librr/rr-connection.c: (warn_channel),
	(rr_connection_begin_tuning_reset), (reset_channel),
	(rr_connection_complete_tuning_reset):
	Better function name.

	* librr/rr-connection.h:

	* librr/rr-frame.c: (rr_frame_parse), (parse):
	Better handling of parse errors.

	* librr/rr-frame.h:

	* librr/rr-framefactory.c: (rr_framefactory_parse_frame):
	Better error handling.

	* librr/rr-framefactory.h:

	* librr/tcp/rr-frame-seq.c: (parse):
	Better error handling.

	* librr/tcp/rr-tcpconnection.c: (handle_seq_frame),
	(send_seq_frame), (frame_divider), (rr_tcp_connection_connect_fd):
	Better error handling, and only send SEQ frames when we really have to.

	* librr/tcp/rr-tcpfilter.c: (tcp_filter_write):
	Some cleanup.

	* profiles/rot13/rot13-filter.c: (rot13_filter_read),
	(rot13_filter_write):
	The encryption can be enabled/disabled at run time.

	* profiles/rot13/rot13-filter.h:

	* profiles/rot13/rot13.c: (complete_frame), (rr_rot13_start):
	Major redesign/rewrite, got rid of that ugly g_usleep call.

2002-03-08  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/rr-connection.c: (rr_connection_init):
	allocate the filter stack.

	* librr/rr-filter.c: (rr_filter_read), (rr_filter_write):
	* librr/rr-filter.h: s/RRFrameStack/GSList/

	* librr/rr-filterstack.c: (rr_filterstack_read_next),
	(rr_filterstack_read), (rr_filterstack_write_next),
	(rr_filterstack_write), (rr_filterstack_push),
	(rr_filterstack_new), (rr_filterstack_free):
	Made the whole thing thread-safe.

	* librr/rr-filterstack.h:

	* librr/tcp/rr-tcpconnection.c: (rr_tcp_connection_init),
	Use the new filterstack api.
	(in_event), (out_event), (rr_tcp_connection_connect_fd):

	* librr/tcp/rr-tcpfilter.c: (rr_tcp_filter_get_type),
	use the correct instance size.
	(tcp_filter_read), (tcp_filter_write):

	* profiles/rot13/rot13-filter.c: (rr_rot13_filter_get_type),
	Use the correct instance size
	(rot13_filter_read), (rot13_filter_write):
	

	* profiles/rot13/rot13.c: (complete_frame):
	Use the new filterstack api.

2002-03-07  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-close.c: (complete_message):
	Removed exessive debug printf.

	* librr/message/rr-message-start.c: (complete_message):
	Fixed a memory leak.

	* librr/rr-manager.c: (finalize):
	Removed exessive debug printf.

	* tests/rr-client.c: (do_tests), (init_connection), (main):
	Cleanup and documentation.

2002-02-25  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/Makefile.am:
	Added RRMessageStartRpy

	* librr/message/rr-message-error.c: (complete_message):
	Better error messages

	* librr/message/rr-message-start.c: (append_profile),
	(complete_message):
	Better error messages.

	* librr/message/rr-message-startrpy.c: (finalize),
	(rr_message_startrpy_init), (rr_message_startrpy_class_init),
	(rr_message_startrpy_get_type), (rr_message_startrpy_new),
	(complete_message), (get_frame):

	* librr/message/rr-message-startrpy.h:
	Moved the parsing from RRManager to a new class.
	

	* librr/rr-manager.c: (handle_incoming_startrpy),
	(handle_incoming_start), (complete_frame), (rr_manager_start_full):
	

	* librr/rr-manager.h:
	added manager->start_piggyback

	* librr/rr-profile.c: (rr_profile_validate_piggyback),
	(rr_profile_reply_piggyback):
	Added rr_profile_reply_piggyback.

	* librr/rr-profile.h:

	* librr/rr.h:
	Added rr-message-startrpy.h

	* profiles/null_echo/echo.c: (rr_null_echo_class_init),
	(frame_available), (validate_piggyback), (reply_piggyback):
	Implemented "reply_piggyback"

2002-02-25  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (complete_message):
	* librr/message/rr-message-close.c: (complete_message):
	* librr/message/rr-message-error.c: (rr_message_error_new):
	* librr/message/rr-message-start.c: (complete_message):
	Use correct error codes.
	
	* librr/rr-beeperror.h:
	Added RR_GERROR_DEFAULT_MESSAGE

	* librr/rr-manager.c: (rr_manager_send_greeting),
	(handle_incoming_start), (handle_incoming_close),
	(handle_incoming_greeting), (handle_incoming_error),
	(complete_frame): Better error handling and some code cleanup

2002-02-25  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (complete_message):
	Better error handling.

	* librr/message/rr-message-error.c: (rr_message_error_class_init),
	(rr_message_error_set_gerror), (complete_message), (get_frame):
	More work.

	* librr/message/rr-message-error.h:

	* librr/message/rr-message-start.c: (complete_message):
	Better error handling.

	* librr/rr-channel.c: (rr_channel_out_queue_empty_p):
	* librr/rr-channel.h: new function, check the queue status.

	* librr/rr-connection.c: (rr_connection_register_sender),
	(rr_connection_get_next_frame), (rr_connection_send_frame):
	Solved a race condition.

	* librr/rr-manager.c: (complete_frame):

	* librr/rr.c: (gobject_bug_workaround), (rr_init):
	Added a workaround for some threading issues in gobject.

	* librr/tcp/rr-tcpconnection.c: (out_removed), (enable_output),
	(handle_seq_frame), (frame_divider), (in_event), (out_event),
	(real_disconnect): Solved a race condition and removed some debug
	messages.

	* profiles/null_echo/echo.c: (rr_null_echo_class_init),
	(close_indication), (validate_piggyback):
	Print the piggyback.

	* tests/rr-client.c: (do_tests):
	Set the piggyback to something somewhat usefull.

2002-02-22  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (rr_greeting_new):
	Don't g_strdup NULL strings.

	* librr/message/rr-message-close.c: (complete_message):
	Don't follow NULL pointers

	* librr/rr-connection.c: (rr_connection_get_languages),
	Don't ignore g_slist_append return values
	(rr_connection_get_languages_str):
	Don't access memory after it has been freed
	

	* librr/rr-manager.c: (handle_incoming_start),
	(handle_incoming_close), (handle_incoming_greeting),
	(complete_frame):
	Don't follow NULL pointers.

	* tests/rr-client.c: (do_tests), (main):

2002-02-21  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-greeting.c: (rr_greeting_class_init),
	(complete_message), (get_frame): parse greetings.

	* librr/message/rr-greeting.h:

	* librr/message/rr-message-close.c: (get_frame):
	use the MIME-type macro.

	* librr/rr-frame.h: add a beep mime type macro.

	* librr/rr-manager.c: (rr_manager_wait_for_greeting),
	(handle_incoming_close), (handle_incoming_greeting),
	(complete_frame):

	* librr/rr.h:
	don't include non-existing header files.

	* profiles/null_echo/echo.c: (close_indication):
	avoid printing null pointers.

	* tests/rr-client.c: don't include unistd.h

	* tests/rr-server.c: (main): use g_usleep instead of sleep.

2002-02-19  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message-close.c: (rr_message_close_class_init),
	(complete_message):
	* librr/message/rr-message-close.h: Added request parsing code.

	* librr/message/rr-message-start.c: (free_item), (finalize),
	(rr_message_start_class_init), (rr_message_start_get_profile_list),
	(rr_message_start_add_profile), (append_profile),
	(complete_message), (get_frame): Added request parsing code.
	* librr/message/rr-message-start.h:

	* librr/message/rr-message.c: (finalize), (rr_message_class_init),
	(process_frame):
	* librr/message/rr-message.h: Use the aggregate functions provided
	in rr-frame.c

	* librr/rr-channel.c: (rr_channel_class_init), (frame_available),
	(rr_channel_frame_available), (rr_channel_complete_frame):

	* librr/rr-channel.h:

	* librr/rr-connection.c: (finalize), (rr_connection_add_channel),
	(rr_connection_remove_channel): set/unset channel->connection

	* librr/rr-frame.c: (parse), (rr_frame_aggregate),
	(rr_frame_aggregator_free), (rr_frame_validate_mime_header):
	* librr/rr-frame.h:
	Added a common frame aggregate functions.


	* librr/rr-listener.c: (rr_listener_add_connection):
	Give the connection a reference to the listener vide profile registration.

	* librr/rr-manager.c: (rr_manager_class_init), (set_state),
	(rr_manager_wait_for_greeting), (rr_manager_send_greeting),
	(parse_start_rpy), (identify_frame), (handle_incoming_start),
	(handle_incoming_close), (complete_frame):
	Parse start and close requets.

	* librr/rr-profile.c: (rr_profile_validate_piggyback):
	* librr/rr-profile.h: Added a virtual function so the profile
	can validate the piggyback data.

	* librr/tcp/rr-tcpconnection.c: (frame_divider):
	unref the frame.

	* profiles/null_echo/echo.c: (frame_available):
	The profile shouldn't unref the frame

	* tests/rr-server.c: (main):
	Run the server for ever.

2002-02-15  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/message/rr-message.c: (free_frame_list), (finalize),
	(process_frame), (rr_message_get_frame),
	(rr_message_process_frame), (rr_message_complete_message),
	(rr_message_set_channel):

	* librr/message/rr-message.h:

	The default behavior for RRMessage is now to aggregate frames
	and to call complete_message () with one large complete frame.

2002-02-15  Jonas Borgstrm  <jonas@codefactory.se>

	* librr/Makefile.am: Removed rr-frame-beep.[ch]
	* librr/message/rr-greeting.c: (get_frame):
	* librr/message/rr-message-close.c: (get_frame):
	* librr/message/rr-message-close.h:
	* librr/message/rr-message-error.c: (get_frame):
	* librr/message/rr-message-error.h:
	* librr/message/rr-message-start.c: (get_frame):
	* librr/message/rr-message-start.h:
	* librr/message/rr-message-static.c: (get_frame):
	* librr/message/rr-message-static.h:
	* librr/message/rr-message.h:
	* librr/rr-connection.c: (rr_connection_class_init),
	(rr_connection_get_next_frame):
	* librr/rr-frame-beep.c:
	* librr/rr-frame-beep.h:
	* librr/rr-frame.c: (finalize), (rr_frame_class_init),
	(rr_frame_get_type), (rr_frame_new), (build), (get_frame_type),
	(parse):
	* librr/rr-frame.h:
	* librr/rr-manager.c: (parse_start_rpy), (frame_available):
	* librr/rr.h: removed rr-frame-beep.h
	* librr/tcp/rr-tcpconnection.c: (frame_divider), (out_event):
	* profiles/null_echo/echo.c: (frame_available),
	(rr_null_echo_trip):

	Moved all inteligence from RRFrameBeep to RRFrame.

2002-02-14  Jonas Borgstrm  <jonas@codefactory.se>

	* AUTHORS, COPYING, NEWS, README, ChangeLog:
	Added some files to make "make distcheck" happy.	

	* Makefile.am:
	Removed some entries from EXTRA_DIST

	* configure.ac:
	Fixed some breakage.

	* librr/Makefile.am:
	header files ends with .h :)

	* librr/message/rr-greeting.c: (rr_greeting_new),
	(hash_profiles_greeting_str):

	* librr/rr-manager.c: (rr_manager_send_greeting):
	Cleanup.

	* tests/Makefile.am:
	Use $top_builddir instead of $top_srcdir

