2003-01-07 Jonas Borgström * librr/rr-mime.h: Fixed a typo, size_t != gsize. Thanks Andrea! 2003-01-06 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * librr/rr-debug.h: Fixed debug macros for compilers which support ISO varargs. 2002-11-23 Jonas Borgström * 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 Borgström * librr/rr-channel.c: (send_helper), (out_queue_push): Avoid a bogus warning message generated by the greeting frame. 2002-11-08 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * librr/rr-manager.c: (handle_incoming_start): When a 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 Borgström * 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 to fix some build problems on AIX 4.3. 2002-07-17 Jonas Borgström * 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 Borgström * 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 Borgström * 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 request if all the profiles have bailed out. 2002-07-16 Jonas Borgström * 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 Borgström * 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 Borgström * librr/rr-connection.c: (rr_connection_remove_channel): Don't forget to remove the channel from the "active" list. 2002-06-25 Jonas Borgström * librr/rr-manager.c: (handle_incoming_error): Fixed a race condition. 2002-05-23 Jonas Borgström * Makefile.am: added README.win32 to EXTRA_DIST * README.win32: some short build instructions for win32. 2002-05-20 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * librr/tcp/rr-tcpconnection.c: (unref_channel): Fix memory leak. 2002-05-07 Jonas Borgström * 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 Borgström * README: Wheee, lets write some documentation. * librr/rr-debug.c: (init_debug_output_files): Print to stderr instead of stdout. 2002-05-07 Jonas Borgström * configure.ac: Secret :) * librr/rr-debug.h: Added missing rr_debug4 macros. 2002-05-07 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * .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 Borgström * 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 Borgström * Makefile.am: make librr/ before doc/ * configure.ac: Require glib version 2.0.1 * doc/reference/Makefile.am: Unbreak makefile. 2002-04-10 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 * 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 Borgström * 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 Borgström * 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 * librr/rr-frame.c: (rr_frame_aggregate): Added optimization when a message consists of only one frame. 2002-03-12 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * librr/Makefile.am: added rr-beeperror.h to EXTRA_DIST * librr/message/rr-message-static.c: (get_frame): Some casting. 2002-03-10 Jonas Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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 Borgström * 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