2006-02-03 Tor Lillqvist * src/linc-protocols.c [Win32] (get_netid): Guard against gethostbyname() failing. 2006-02-01 Tor Lillqvist * src/linc-protocols.c (get_netid): Use getaddrinfo() only if HAVE_GETADDRINFO, otherwise gethostbyname(). This means we won't use getaddrinfo() on Windows, as the configure test as currently written doesn't find it on Windows. (It is present only on XP anyway, so if we use it the ORBit2 DLL will not load on Windows 2000.) 2005-12-21 Jules Colding * src/linc-protocols.c (get_netid): Remove unnecessary casts (Bug #324686). The fix was created by Damien Carbery. 2005-11-11 Jens Granseuer * src/linc-protocols.c (get_netid): fix // comment. 2005-11-08 Anders Carlsson * src/linc-server.c (link_server_accept_connection): Listen to the "broken" signal on connections. (link_server_client_connection_broken): Remove the connection from the list and unref it. (link_server_dispose): Disconnect from the "broken" signal. 2005-10-13 Dmitry Maksyoma * src/linc-server.c (link_server_setup): fix potential socket leak, don't spin forever with a specified port. 2005-08-01 Jules Colding * src/linc-protocols.c (get_netid): Replace two silly ';;'s with ';'. 2005-07-28 Tor Lillqvist * src/linc-compat.h: Include also ws2tcpip.h on Win32. * src/linc-protocols.c: Drop unnecessary inclusion of . Don't include Unix-only headers on Win32. (get_netid): Add Win32 implementation of interface listing. (link_get_local_hostname): Drop the Win32-only code snippet that made sure looking up the hostname works. Will have to rethink whether it's necessary later, and add back inside the appropriate place in get_netid(). 2005-07-28 Jules Colding * src/linc-protocols.c: Change default use_local_host to LINK_NET_ID_IS_FQDN. (get_netid): Convert to C89-style. 2005-07-25 Jules Colding * src/linc-protocols.c (get_netid): New function get_netid(). This function will full a preallocated buffer with a string describing the name of the local host according to the value of use_local_host. link_get_local_hostname(): Modified to produce a resolvable hostname according to the value of use_local_host. This hostname will be used when composing IORs. use_local_host: Defaults now to LINK_NET_ID_IS_IPADDR fopr maximum resolvability. * include/linc/linc-protocol.h: Added new enum type "LinkNetIdType" to use as argument in link_use_local_hostname(). 2005-07-09 Sebastian Rittau * src/cleanup.c: (main): Use g_get_tmpdir() instead of hardcoding /tmp. 2005-05-10 Mark McLoughlin Use a 256k stack for the IO thread rather than the system default (10M on FC4). bug #303649 * src/linc.c: (link_exec_set_io_thread): Use a 256k stack. 2005-04-15 Tor Lillqvist * src/linc-private.h: On Win32, keep a pointer back to the embedding LinkWatch in the LinkUnixWatch. Also, keep a pointer to the last polled LinkUnixWatch in the LinkWatch. * src/linc-source.c (link_source_prepare): On Win32, if changing which of the two LinkUnixWatch GSources associated with a LinkWatch we are polling, we have to associate the corresponding event with the socket by calling WSAEventSelect(). (link_source_create_watch_for_watch): New helper function that calls link_source_create_watch() and then on Win32 associates a LinkWatch with the LinkUnixWatch(). (link_io_add_watch_fd, link_watch_move_io): Call the above. 2005-04-14 Arvind Samptur * include/linc/linc-protocol.h: Add link_get_local_hostname () * src/linc-private.h: Remove link_get_local_hostname () Patch approved by Michael Meeks 2005-04-13 Tor Lillqvist * src/linc.c * src/linc-protocols.c: Use gstdio wrappers for better localized filename support on Win32. * src/linc-compat.c (link_strerror): Use g_strerror() instead of strerror() to get UTF-8 messages. 2005-03-24 Tor Lillqvist * src/linc-source.c (link_source_check): One more iteration of the Win32 code. The code passes zero as the hEventObject parameter to WSAEnumNetworkEvents(). This meant that the event never got reset, and kept firing. Problem noticed with gconfd-2 and bonobo-activation-server, which kept busy-looping and consuming lots of CPU. Now we reset the event if it is set but WSAEnumNetworkEvents() has returned an empty network event mask. We then also WSAEventSelect() an empty network event mask, so that the next call to the prepare method will reselect for the appropriate network events. No need to handle FD_ACCEPT events specially any longer, the above takes care of it. * src/linc-debug.h (d_printf): Do a fflush(), too. * src/linc.c (link_init): Improve debug output facilities: If CONNECTION_DEBUG and CONNECTION_DEBUG_FLAG are #defined, check for environment variable LINK_PER_PROCESS_STDERR, and if set, redirect stderr to a per-process log file. 2005-03-11 Arvind Samptur * src/linc-server.c (link_server_setup): Fill the LinkServer proto with the info as soon as we find one. In case we cannot setup the connection the link_protocol_destroy_cnx () throws up a proto not found assertion which is not true. Patch reviewed by Micheal Meeks. 2005-03-10 Tor Lillqvist * src/linc-protocols.c (link_get_local_hostname): Make sure looking up the local hostname works on Win32. Try first dropping the domain suffix, and then using the NetBIOS name. (link_protocol_get_sockinfo_ipv4): Make sure looking up the hostname to be returned works. If not, use IP address instead. * test/test-linc.c (test_local): Ifdef out variable not used on Win32. 2005-02-23 Tor Lillqvist * src/linc-private.h * src/linc.c: Use consistent spelling, with a 'k', for the optional LINK_CONNECTION_DEBUG environment variable. * src/linc-source.c (link_source_check): If we get a FD_ACCEPT event on a socket, reset the selected event mask to zero, and reset the event. Otherwise the event keeps firing. Problem noticed in test-giop. 2005-02-18 Tor Lillqvist More hacking on linc2 for Windows. After the below changes, test_blocking() in test-linc finally works also on Windows. More importantly, the test programs in libbonobo also work. The semantics of the socket event functionality (WSAEventSelect(), WSAEnumNetworkEvents()) were less intuitive than I had thought. The event fires for writeability only once after connect() or accept(), and after that only once each time the socket becomes writeable again, after having been in the WSAEWOULDBLOCK state. The documentation for WSAEventSelect() does explain this, but it's very easy to miss. * src/linc-private.h (LinkUnixWatch): Add new flag for Win32: write_would_have_blocked, to be set to TRUE for watches when writing to the socket has errored with WSAEWOULDBLOCK. (LinkConnectionPrivate): Add counters of total number of bytes read and written if CONNECTION_DEBUG defined. * src/linc-source.c (link_source_check, link_source_dispatch): Move the call to WSAEnumNetworkEvents() to the check method from the dispatch method. Call WSAEnumNetworkEvents() always, as the WaitForMultipleObjects() in g_poll() fires just for one event at a time. If writes to the socket are not currently known to cause blocking, always set G_IO_OUT in revents. Don't reset the selected event mask each time. Reselect a new mask (in the prepare method) only if the condition has changed, as originally was the idea. The tests in ../test/everything still work. (link_win32_watch_set_write_wouldblock): New function, to set the write_would_have_blocked flag. * src/linc-connection.c: Initialize, increment and print the total counters if CONNECTION_DEBUG. (write_data_T): Call link_win32_watch_set_write_wouldblock(). * src/linc-debug.h: Enable making the debugging printout selectable at run-time through an environment variable. By default debugging printout code not compiled in, though. * test/test-linc.c: Do run test_blocking() also on Windows. 2005-02-13 Arvind Samptur * include/linc/linc-protocol.h: Add link_use_local_hostname () * src/linc-protocols.c (link_use_local_hostname): Set the global use_local_host. (link_get_local_hostname): Return "localhost" if use_local_host is set. Patch reviewed by Michael Meeks 2005-02-07 Tor Lillqvist * src/linc-debug.h: Don't define CONNECTION_DEBUG on Win32, done with the heavy debugging for now. * src/linc-source.c (link_source_dispatch): Unselect socket events, so that we have to re-select them with WSAEventSelect() in link_source_prepare(). Don't know why, but this prevents the test in ../test/everything from hanging after the async tests. 2005-02-02 Hans Petter Jansson * src/linc-compat.h: Include before the optional stuff. Some platforms don't pull it in automatically when needed. 2005-01-28 Tor Lillqvist * src/linc-compat.c: Rename link_socketpair() to link_pipe(), and make it cross-platform, just encapsulating pipe() on Unix. * src/linc.c: Change accordingly. * src/linc/linc-compat.h * include/linc/linc.h: Move declarations of link_map_winsock_error_to_errno() and link_pipe() to linc.h, as they are used also in GIOP. 2005-01-27 Tor Lillqvist * src/linc-compat.h: Include if that's where utime.h is. * src/linc-private.h (LinxUnixWatch): On Win32, the GPollFD::fd is actually a HANDLE, so keep also the original SOCKET around, and the desired socket event mask. (LINK_TEMP_FAILURE_RETRY): Split into separate macros for retrying "normal" system call API and socket API. They're different on Win32. (LINK_CLOSE_SOCKET): New macro. On Win32 uses closesocket(). * src/*.c: Adapt to above changes. Include linc-compat.h. Add more d_printf() debugging output (which normally expands to nothing). Add WinSock code. Bypass Unix-only stuff on Win32. * src/linc-debug.h: Always define CONNECTION_DEBUG on Win32 (for now while working on Win32 port). * src/linc-protocols.c: Use LINK_PROTOCOL_NEEDS_BIND for IPv4 on Win32. * src/linc-source.c: The core machinery for interfacing to the GLib main loop on Win32 is here. (link_source_prepare): Call WSAEventSelect() if the event mask (i.e., condition) has changed. (link_source_dispatch): Call WSAEnumNetworkEvents() to find out what socket event actually fired. (link_source_create_watch): Create an event to poll on in the GLib main loop. Store that in the GPollFD::fd. (link_watch_unlisten): Close the events. * src/linc.c: On Win32, instead of a pipe, use a connected TCP socket pair as the wakeup pipe. (link_init): Start WinSock. * test/test-linc.c (init_tmp): Use g_build_filename(). (create_server, create_client): On Win32 use IPv4 not UNIX sockets. (test_broken): Only if HAVE_SYS_WAIT_H. (knobble_watch): Don't use a pointer before asserting it's non-NULL. Don't g_assert() an expression with side-effects, g_assert expands to empty when compiled with G_DISABLE_ASSERT. (test_local): Don't test UNIX sockets on Win32. (test_blocking, main): For some reason the "blocking" test doesn't work on Win32, bypass for now. 2005-01-26 Gustavo J. A. M. Carneiro * src/linc-protocols.c: Add missing #include . 2005-01-26 Tor Lillqvist * include/linc/linc-connection.h * include/linc/linc-protocol.h: Restructure includes for Win32. * src/linc-compat.c: New file, Win32 portability functions. * src/linc-compat.h: Win32 additions, restructuring. * src/Makefile.am (bin_PROGRAMS): Don't build linc-cleanup-sockets on Win32, where there are no Unix domain sockets to clean up. Add linc-compat.c 2004-09-27 Michael Meeks * src/linc-connection.c (link_connection_try_reconnect): actually unset inhibit reconnect having emitted callbacks. 2004-09-16 Michael Meeks * src/linc-connection.c (dispatch_callbacks_drop_lock): split out. (link_connection_state_changed_T_R): upd. (link_connection_try_reconnect): dispatch callbacks immediately if we own the default mainloop, so we don't deadlock vs. the idle handler. 2004-05-26 Padraig O'Briain * src/linc-private.c (LINC_TEMP_FAILURE_RETRY): Change macro to not use __extension__ which does not build on Solaris when not using gcc. * src/linc-connection.c (linc_connection_do_initiiate, link_server_accept_connection, write_data_T): Update because of change to macro LINC_TEMP_FAILURE_RETRY. * src/linc-server.c (link_server_accept_connection): Update because of change to macro LINC_TEMP_FAILURE_RETRY. Fixes bug #143129. 2004-05-21 Frank Rehberger * src/linc-private.h (LINC_TEMP_FAILURE_RETRY): macro retries IO operation in case of EINTR IO-error. * src/linc-connection.c (link_connection_do_initiate, link_server_accept_connection): wrap IO read/write operations with LINC_TEMP_FAILURE_RETRY 2004-03-04 Michael Meeks * Version 2.10.0 2004-02-05 Michael Meeks * src/linc-connection.c (link_connections_close): fix - do dispose loop, don't unref things we don't own. (link_connection_finalize): add debug assertion. (link_connection_from_fd_T): dont' re-add the cnx to the list when re-trying the connect. 2004-02-04 Michael Meeks * Version 2.9.7 2004-02-02 Michael Meeks * src/linc-private.h: include linc-debug.h here, after the glib include, instead of all elsewhere. 2004-01-14 The Written Word * src/linc-debug.h: don't assume vararg macros. * src/linc.c: include config.h 2003-12-10 Michael Meeks * src/linc.c (link_set_io_thread): fix warning. 2003-12-08 Michael Meeks * src/linc-connection.c (link_connection_exec_cnx_unref): do yet more locking. 2003-11-14 Padraig O'Briain * linc2/src/linc-server.c (link_server_handle_io): Add comment about change of g_error to g_warning for bug #126209. 2003-11-13 Michael Meeks * Version 2.9.1 2003-11-11 Justin Schoeman * linc2/src/linc.c (link_set_io_thread): Fix command type for LINK_COMMAND_SET_IO_THREAD to use synchronous command structure. * linc2/src/linc-connection.c (link_connection_exec_cnx_unref) (link_connection_unref_unlock), linc2/src/linc-private.h, linc2/src/linc.c (cmd_is_sync) (link_dispatch_command): Move tail_unref of connection to the I/O thread to remove some shutdown races. 2003-10-24 Michael Meeks * src/linc.c (link_set_io_thread): don't allocate the cmd, for the synchronous command - just use the stack; thanks to Sebastian Rittau. 2003-10-10 Michael Meeks * src/linc-connection.c (link_connections_close): implement, and warn less. * src/linc.c (link_io_thread_fn): close connections on IO thread exit. 2003-10-09 Michael Meeks * src/linc.c (link_set_io_thread): only spew warning with debug enabled. 2003-08-22 Michael Meeks * src/cleanup.c (read_sockets): cope with opendir failure: from Debian patch. 2003-08-12 Michael Meeks * src/linc-source.c: staticize linc_source_watch_funcs. 2003-08-11 Michael Meeks * Version 2.7.6 2003-07-30 Michael Meeks * src/linc-protocols.c (link_protocol_get_sockinfo_irda) (link_protocol_get_sockaddr_irda): bin. (irda_getnameinfo, irda_getaddrinfo, irda_find_device): bin. 2003-07-29 Michael Meeks * src/linc.c (link_mutex_is_locked): substantially disable it except for GLIBC systems that have sensible pthreads impls. 2003-07-15 Michael Meeks * src/linc-connection.c (queue_free): re-order to fix warnings - thanks to Damien Carbery. 2003-07-15 Michael Meeks * Version 2.7.3 2003-07-14 Michael Meeks * src/linc-connection.c (link_connection_state_changed_T_R): free the write queue on disconnect. 2003-07-11 Michael Meeks * src/linc-connection.c (link_connection_wait_connected_T): split (link_connection_wait_connected): from here. (link_connection_try_reconnect): impl. (link_connection_from_fd_T): free previous values. (link_connection_broken_idle): unset inhibit_reconnect. (link_connection_state_changed_T_R): set inhibit_reconnect. 2003-07-10 George Lebl * src/linc-connection.c (link_connection_remove_broken_cb): fix leak. 2003-07-09 Michael Meeks * test/test-linc.c (test_connected): impl. * src/linc-connection.c (link_connection_wait_connected): use link_wait, and work for threading cases. * src/linc.c (link_wait, link_signal): impl. 2003-07-08 Michael Meeks * src/linc.c (link_set_io_thread): move set of (link_exec_set_io_thread): is_io_in_thread to here - so we can't race elsewhere. 2003-06-29 Dave Camp * src/linc-connection.c (link_connection_broken_idle): Pass bc->user_data to the callback rather than l->data. 2003-06-28 Dave Camp * src/linc-connection.c (link_connection_remove_broken_cb): Fixed the g_slist_delete_link() call. 2003-06-24 Michael Meeks * src/linc-connection.c (link_connection_add_broken_cb, link_connection_remove_broken_cb): impl. so we can emit 'broken' at idle. (link_connection_broken_idle): impl. (link_connection_finalize): upd. (link_connection_state_changed_T_R): upd. 2003-06-19 Gustavo J. A. M. Carneiro * include/linc/linc-config.h: Removed this file; it is generated from linc-config.h.in. 2003-06-09 Michael Meeks * src/linc-connection.c (link_connection_class_state_changed): fold this into (link_connection_state_changed_T): here, so we can call the sub-classed impl. without the lock held. (link_connection_class_init): upd. (link_connection_state_changed_T_R): rename & drop lock. 2003-06-04 Michael Meeks * src/linc-connection.c (link_connection_initiate): fix a truly stupid list traversal bug. 2003-06-04 Michael Meeks * src/linc-connection.c (link_connection_exec_set_condition): only take lock if not immediate. (link_connection_unref_T_): impl. (link_connection_exec_set_condition): use it in the immediate case. (link_connection_unref_unlock): split out from (link_connection_unref): here, and use all over. * src/linc.c (link_dispatch_command): add / propagate the immediate flag. * src/linc-source.c (link_io_add_watch_fd): always add to the main_source in non thread_io mode. (link_watch_unlisten): beef up. * src/linc-protocols.c, * test/test-linc.c: fix Linc->Link sanfu's - autotools dependency tracking gets progressively more wonderful. 2003-06-03 Michael Meeks * src/*.[ch]: update to get_thread_safe. * src/linc.c (link_get_threaded): bin it. (link_thread_io, link_thread_safe): replace with these. (link_mutex_new): bin link_mutex_new_called etc. (link_main_idle_add): bin - unused. (link_main_get_loop): bin it. * src/linc-connection.c (queue_flattened_T_R): only update the poll if we didn't have a queue already; remove assert. 2003-06-03 Michael Meeks * src/linc-source.c (link_watch_unlisten): split (link_io_remove_watch): from here. (link_watch_move_io): impl. * src/linc.c (linc_exec_set_io_thread): call the hooks. * src/linc-connection.c (link_connections_move_io_T): impl. * src/linc-server.c: s/cnx/srv/ for servers. (link_server_dispose, link_server_setup): manage server_list. (link_servers_move_io_T): impl. * src/linc-connection.c (link_connection_initiate_list): check was_initiated. Track all connections on cnx_list. (link_connection_from_fd_T): prepend to list here. (link_connection_initiate): and not here. 2003-06-03 Michael Meeks * src/linc-server.c (link_server_accept_connection): upd. * src/linc-connection.c (link_connection_initiate): internalize and rename to (link_connection_do_initiate). (link_connection_initiate): rename from initiate_list. * src/linc.c (link_init): upd. (link_lock, link_unlock): face reality - a global lock for everything. * src/linc-connection.c (_link_connection_thread_init): bin it. * src/linc.c (cmd_is_sync): impl. (link_exec_command): impl. sync methods. (link_init): create condition. (linc_exec_set_io_thread): stub. (link_set_io_thread): stub. 2003-06-02 Michael Meeks * test/test-linc.c (verify_addr_is_loopback): don't fail with loopback reverselookup. * src/linc-source.c (link_io_add_watch): bin / privatize, all done by fd now. (link_io_remove_watch): privatize. * src/linc.c: bin deprecated bits. (link_set_threaded): bin. 2003-05-31 Michael Meeks * src/Makefile.am (noinst_LTLIBRARIES): don't install the library (doh). 2003-05-23 Michael Meeks * src/linc-connection.c: add _R suffix to methods, assuming a reference is held. (linc_connection_from_fd_T): split from. (linc_connection_from_fd): here. (linc_connection_initiate): use it. (linc_connection_class_init): don't create locks here (_linc_connection_thread_init): do them here. * src/linc.c (linc_init): use it. * src/linc.c (linc_object_unref, linc_object_ref), (linc_object_get_mutex): deprecated (linc_idle_unref, linc_fast_unref): bin. * src/linc-connection.c (linc_connection_unref) (linc_connection_ref): handle weak refs nicely. (linc_connection_initiate_list): impl. 2003-05-22 Michael Meeks * src/linc-connection.c (queue_signal_T): drop lock over the signal emission. (linc_connection_class_state_changed): ditto. (linc_connection_exec_set_condition): actually use the passed in I/O condition. (thanks AlexL) 2003-05-21 Michael Meeks * src/linc-connection.c (linc_connection_io_handler): drop the lock over the handle_input emission. (linc_connection_state_changed_T): split out from (linc_connection_state_changed): here & upd. Add a _T suffix to lots of methods that assume the lock is held. (linc_connection_exec_disconnect): clean. (linc_connection_read): take / release the cnx. lock. * src/linc.c (linc_in_io_thread): fix horrors. (linc_object_unref): use it instead of the same hack; thanks to Alex L. 2003-05-12 Gustavo J. A. M. Carneiro * MAINTAINERS: Declare myself as documentation maintainer. 2003-05-03 Michael Meeks * Version 1.1.1 2003-04-29 Michael Meeks * src/linc.c (linc_io_thread_fn): hold lock over wake fd shutdown. (linc_exec_command): if the pipe is shut, then just exec the command in-line (server shutdown condition). 2003-04-28 Gustavo J. A. M. Carneiro * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Added --enable-gtk-doc. * docs/tmpl/linc-config.sgml: Added this file. Document LINC_SSL_SUPPORT. * docs/linc-docs.sgml: Replace header with the docbook-4.1.2/xml one. Removed the "linc" chapter, so that the section entries become toplevel instead. Added the linc-config section. * docs/linc-sections.txt: Removed LINCProtocolInfo from section linc-types, since it is already present in section linc-protocol. Made the macro LINC_SSL_SUPPORT, in the linc-config section, appear. * autogen.sh: Source system's gnome-autogen.sh instead of doing our own checks. * docs/Makefile.am: Replaced the boilerplate gtk-doc makefile section with include $(top_srcdir)/gtk-doc.make. (MKDB_OPTIONS): Added --sgml-mode --output-format=xml. * configure.in: Replace the gtk-doc check with the macro GTK_DOC_CHECK. 2003-04-24 Michael Meeks * src/linc-connection.c (linc_connection_wait_connected): impl. (linc_connection_writev): use it here. (linc_connection_io_handler): handle the just connected => start flush queued writes case. 2003-04-21 Michael Meeks * src/linc.c (linc_exec_command): handle EINTR. (linc_exec_command): dispatch commands immediately if not in threading mode. (linc_mainloop_handle_input): split out (linc_dispatch_command): the dispatch. 2003-04-19 Michael Meeks * src/linc-connection.c (linc_connection_exec_disconnect) (queue_flattened, linc_connection_exec_set_condition): impl. * src/linc.c (linc_io_thread_fn, linc_init): move the I/O thread instantiation in here. (linc_shutdown, linc_exec_command): impl. (linc_mainloop_handle_input): mux. commands. * src/linc-connection.c (linc_connection_read), assert locked on read, re-factor exit. (linc_connection_flush_write_queue): bin locking. (linc_connection_class_init): bin crack-pot complex locking schemes, and go for a big global lock. (linc_connection_finalize): bin lock init/destroy. (linc_connection_flush_write_queue_cb): bin it. (linc_connection_disconnect): impl. * src/linc-server.c (linc_server_init, linc_server_handle_io) (linc_server_dispose): bin curious mutex; all happens in I/O thread anyway. * src/linc.c (linc_mutex_is_locked): impl. for debug. 2003-04-18 Michael Meeks * src/linc-connection.c (linc_connection_io_handler) (queue_signal): use linc_object_ref/unref. (linc_connection_get_status): impl. (linc_connection_flush_write_queue_cb): lock/unlock cnx. (linc_connection_state_changed): assert unlocked, and in main thread. (linc_connection_from_fd): hold the lock while operating. * src/linc-server.c (linc_server_dispose): ditto. 2003-04-16 Masahiro Sakai * configure.in: call AC_PROG_CC earlier. because AM_PROG_LIBTOOL needs it on some platforms. * configure.in: call AC_LIBTOOL_WIN32_DLL and add check for arpa/nameser.h and resolv.h. * src/Makefile.am: add -no-undefined to liblinc_la_LDFLAGS. * src/linc-protocols.c, src/linc-compat.h: make them work even if arpa/nameser.h and resolv.h are not available. * src/linc-protocols.c (make_local_tmpdir): disable permission checking on Cygwin. * linc-1.1.0/test/test-linc.c (init_tmp): use g_get_user_name() instead of g_getenv("USER"). 2003-04-15 Michael Meeks * src/linc-protocols.c (linc_protocol_get_sockinfo_ipv6): consistantly use GETNAMEINFO don't mix GETADDRINFO. 2003-04-13 Masahiro Sakai * src/linc-protocols.c (linc_protocol_get_sockaddr_unix): fix to include path's terminating '\0' into *saddr_len count. 2003-04-10 Michael Meeks * Thanks to mmokrejs@natur.cuni.cz for the excellent report. * src/linc-protocols.c (linc_protocol_is_local_ipv46): explicitely cast h_addr_list[n] to a guint8 * to please OSF/1. (in6_addr): break the Mac OS/X brain-damage hack-around, this needs to be specific to Mac only - it was breaking OSF/1. * src/linc-connection.c (write_data): cast iovec->iov_base to guchar * for OSF/1 True64 Unix. * src/linc-debug.h: bin bogus ';' on static inline d_printf fallback. 2003-04-03 Michael Meeks * src/linc-connection.c (linc_connection_flush_write_queue): fix dofus like write locking leak of mine. 2003-04-01 Michael Meeks * src/linc-connection.c (linc_connection_finalize): free write lock here and not in dispose. 2003-03-31 Michael Meeks * src/linc-connection.c (linc_connection_flush_write_queue_cb): only try to flush the write queue if we're not still connecting. * src/linc-compat.h: if we don't have UNIX_PATH_MAX it is 100. * src/linc-protocols.c (linc_protocol_get_sockaddr_unix): use LINC_UNIX_PATH_MAX, not 64 for the static buffer size 2003-03-29 Michael Meeks * src/linc-connection.c (linc_connection_writev) (linc_connection_init, linc_connection_io_handler) (linc_connection_dispose): use the write_lock mutex to protect the write_queue. (queue_signal): drop it over signal emission (clearly) (linc_connection_flush_write_queue): split out of (linc_connection_io_handler): here. 2003-03-25 Michael Meeks * Version 1.1.0 2003-03-18 Shailesh Mittal * configure.in: Added checks for getaddrinfo() and getnameinfo(). * src/linc-connection.c (linc_connection_initiate): Modified so now it falls back to IPv4 if IPv6 address is not there. * src/linc-protocols.c (linc_protocol_is_local_ipv46):It has been modified in such a fashion that it works for IPv6 addresses as well. gethostbyname doesn't produce right results on all systems. (linc_protocol_get_sockaddr_ipv6):Also modified to work with IPv6 addresses. (linc_protocol_get_sockinfo_ipv46):Signature changed. Added const char *host in place of struct hostent *host as the gethostbyname has been called twice for the same operation. (linc_protocol_get_sockinfo_ipv4):char *hname is passed in place of struct hostent to call for get_sockinfo_ipv46. (linc_protocol_get_sockinfo_ipv6):Modified to support IPv6 addresses and char * is passed to linc_protocol_is_local_ipv46 in place of struct hostent *. 2002-10-30 Michael Meeks * src/linc-source.c (linc_io_add_watch_fd): don't add a watch to the main thread if running in threaded mode. * src/linc.c (linc_get_threaded): impl. (linc_set_threaded): spew deprecated warnings. * docs/linc-decl-list.txt: don't mention linc_set_threaded. 2002-10-31 Michael Meeks * include/linc/linc-source.h: add. * include/linc/Makefile.am: add linc-source.h * src/linc-source.c (linc_source_set_condition): upd. prototype. (linc_source_create_watch): upd & expose. (linc_io_remove_watch): upd. (linc_watch_set_condition): upd. 2002-11-29 Michael Meeks * src/linc-source.c (linc_io_add_watch): don't add a main watch if threaded. (linc_io_remove_watch): don't destroy a NULL main_source. * src/linc.c (linc_object_unref): do an idle unref (in the linc mainloop) if we're threaded, and it's the last ref. (linc_fast_unref): split. (linc_idle_unref): impl. 2002-10-24 Michael Meeks * src/linc.c (linc_object_unref): handle the last ref sanely, so we don't deadlock doing subsequent unrefs. 2003-01-21 Michael Meeks * src/linc-server.c (linc_server_setup): setup the listening socket as non-blocking [!] (linc_server_handle_io): quite why we emit a signal in this case is rather beyond me, hopefully that code-path is somewhat tested. 2003-01-09 Michael Meeks * configure.in: bump version to 1.1.0 * Branch for gnome-2-2 2002-12-28 Michael Meeks * Version 0.7.1 2002-12-09 Michael Meeks * src/linc-protocols.c (linc_protocol_get_sockaddr_unix): finally - scuppered by my own undefined test in gcc ;-) 2002-12-09 Laurent Vivier * src/linc-connection.c (LINC_IOV_MAX): re-order mess of compatibility evilness to move glibc's UIO_MAXIOV down, since this is something else on AIX (which has IOV_MAX). 2002-11-21 Dan Mills * configure.in: fix two typoes: pango -> linc, and change spaces to a tab in the IFS assignment. 2002-11-21 Dan Mills * configure.in: fix gtk-doc version check. 2002-11-02 Michael Meeks * test/test-linc.c (test_broken_cnx_handle_input): disconnect on fatal error. 2002-10-24 Michael Meeks * src/linc.c (linc_object_unref): handle the last ref sanely, so we don't deadlock doing subsequent unrefs. 2002-10-18 Michael Meeks * Version 0.7.0 2002-10-14 Marcus Brinkmann * src/linc-protocols.c (linc_set_tmpdir), (linc_protocol_get_sockaddr_unix), (linc_get_tmpdir): use dynamic allocation for linc_tmpdir to avoid PATH_MAX issues. 2002-09-24 Michael Meeks * configure.in: bump to 0.7.0 - odd, and bigger. * src/linc-connection.c (linc_connection_read): don't be daft, don't emit a signal on fatal IO error at 0 read EOF, or we'll get into locking hell elsewhere. 2002-08-23 Elliot Lee * src/linc-protocols.c (linc_protocol_get_sockaddr_ipv4): Don't turn on IPv6 name resolution when we are trying to resolve an IPv4 host name - instead, turn it off. Also try to make use of all addresses that gethostbyname returns, not just the first. (Fixes a bug with connecting to a host that has both IPv6 and IPv4 addresses.) 2002-08-23 Michael Meeks * Version 0.5.3 2002-08-18 Havoc Pennington * autogen.sh: hardcode aclocal-1.4/automake-1.4 so that users with both automake 1.6 and 1.4 installed get the right automake. Means compilation from CVS will now require the latest automake 1.4 release, or manually creating symlinks called "automake-1.4" and "aclocal-1.4" 2002-08-05 Laurent Vivier * include/linc/linc-connection.h: sanitize remote_info to gchar * 2002-08-05 Michael Meeks * Version 0.5.2 2002-07-31 jacob berkman * src/linc-connection.c (LINC_IOV_MAX): bump to 1024 on os x, as the macros isn't defined unless we are defining KERNEL, which we aren't 2002-07-31 Michael Meeks * test/test-linc.c (test_hosts_lookup): regression test. (verify_addr_is_loopback): split out. * configure.in: add inet_pton check. * src/linc-protocols.c (linc_protocol_get_sockaddr_ipv4): do a dotted quad type lookup first. (linc_protocol_get_sockaddr_ipv6): add inet_pton - raw IPv6 addr translation * src/linc-compat.h (INADDR_NONE): for broken systems. 2002-07-25 Yanko Kaneti * test/test-linc.c: include "linc-compat.h" for ehm.. compatibilty. 2002-07-24 Michael Meeks * Version 0.5.1 2002-06-19 Michael Meeks * test/test-linc.c (test_local_ipv4): upd. (test_hosts_lookup, test_host): impl * src/linc-protocols.c (linc_get_local_hostname): rename from get_local_hostname & make module public. * src/linc-server.c (linc_server_setup): upd. to use it. * src/linc-connection.c (linc_connection_initiate, linc_close_fd): handle EINTR on close. * src/linc-protocols.c (irda_find_device), (linc_protocol_destroy_addr), (linc_protocol_destroy_cnx): ditto. * src/linc-server.c (linc_server_dispose), (linc_server_accept_connection): ditto. * src/linc-protocols.c (irda_getaddrinfo): use g_strncpy not strcpy. 2002-06-18 Michael Meeks * test/test-linc.c (test_local_ipv4): beef up & (test_local_ipv6): split out of (test_local): here. * src/linc-protocols.c (linc_protocol_get_sockaddr_ipv4): upd. (ipv4_addr_from_addr): impl. (LINC_RESOLV_CLEAR_IPV6): kill - horrible, vile, out of spec. hack. (linc_protocol_get_sockinfo_ipv46): upd. (linc_protocol_is_local_ipv46): re-re-write. 2002-06-17 Michael Meeks * src/linc-protocols.c (linc_protocol_get_sockaddr_unix): beef up the length of the linc socket name slightly. (linc_protocol_is_local_ipv46): fix, so it works. (cleanup_sweep): remove. (linc_protocol_get_sockaddr_unix): hack cleanup out of here. 2002-06-12 Michael Meeks * configure.in: bump version to 0.5.1 * src/linc-connection.c (linc_connection_read): add paranoid assertion. 2002-06-12 Michael Meeks * src/linc-protocols.c (linc_get_tmpdir): implement new API in accordance with release team approval for use in bonobo-activation, for it's locking / IOR exchange mechanism. * src/linc-connection.c (linc_connection_writev): split out (linc_connection_should_block): this. 2002-06-06 James M. Cape * include/linc/linc-connection.h (LINC_CONNECTION_CLASS): fix typo in macro #84352 2002-05-27 Michael Meeks * Version 0.5.0 2002-05-24 Michael Meeks * src/linc.c (linc_init): do a plain g_type_init without adding the debug_flags, they're not helping us enough for the pain. 2002-05-21 Michael Meeks * src/cleanup.c: make it work for the simple cases for now. 2002-05-21 Michael Meeks * src/Makefile.am: add linc-cleanup-sockets. * src/cleanup.c: add. * src/linc-connection.c (linc_connection_writev): make status an int, so we return the enum more pleasantly. 2002-05-20 Michael Meeks * Version 0.1.22 2002-05-17 Jacob Berkman * src/linc-protocols.c: check for RES_USE_INET6 for OS/X. define in6addr_any for broken Mac OS/X's. 2002-05-09 Michael Meeks * src/linc-protocols.c: fix 'extern' static linc_protocols bug #80955 - thanks Jean-Pierre Dion 2002-04-18 Michael Meeks * src/Makefile.am: add G_DISABLE_DEPRECATED 2002-04-15 Michael Meeks * Version 0.1.21 2002-04-15 Michael Meeks * src/linc-private.h: fix prototypes, s/socklen_t/LincSockLen/ 2002-04-11 Michael Meeks * test/Makefile.am (test_linc_LDADD): add various libs. 2002-04-10 Michael Meeks * src/*, * docs/*: update 2002-04-09 Michael Meeks * src/linc-private.h: hoist SSL includes, (thanks to Colin Campbell). 2002-04-08 Michael Meeks * src/linc-protocols.[ch], * src/linc-server.c (linc_server_setup): use LincSockLen instead of socklen_t so that we can build on systems without it, (thanks to Garth Pearce). * src/linc-compat.h: hide the evil compat mess into here. * src/linc-server.c: include linc-hacks.h * test/test-linc.c (test_blocking_cnx_handle_input), (test_blocking_cnx_handle_input): use guint32 not glong. * configure.in: use --with-openssl #77962 2002-04-08 Michael Meeks * src/linc-protocols.c (cleanup_sweep): disable, it seems that this is a source of evil lockups; really we need to do this in a non-blocking way, and idly unlink things that look bad. 2002-04-02 Michael Meeks * src/linc-protocols.c (cleanup_sweep): impl to solve the leftover unix domain socket problem. (linc_protocol_get_sockaddr_unix): do the sweep. 2002-03-21 Michael Meeks * Version 0.1.20 2002-03-21 Michael Meeks * src/linc-server.c (linc_server_handle_io): fix warning spew. * src/linc-protocols.c (linc_protocol_destroy_addr): check family for AF_UNIX. 2002-03-20 Gregory Leblanc * configure.in: Adding missing AC_SUBST * linc.spec.in: rewrite 2002-03-20 Michael Meeks * src/linc-protocols.c (linc_protocol_destroy_cnx): impl. (linc_protocol_destroy_saddr): impl with nasty hacks for UDS. * src/linc-server.c (linc_server_dispose): use it. (linc_server_setup): on error unlink the UDS & fix fd leak. 2002-03-20 Michael Meeks * src/linc-server.c (linc_server_accept_connection): always initialize the connection - thanks again Havoc. * src/linc-connection.c (linc_connection_initiate): fix fd leak - thanks Havoc. 2002-03-04 Mark McLoughlin * configure.in: Version 0.1.19 2002-02-26 Michael Meeks * src/linc-connection.c (linc_connection_class_state_changed): only emit 'broken' when the state actually changes - ie. once. 2002-02-17 Michael Meeks * src/linc-server.c (linc_server_accept_connection): close the fd in case linc_connection_from_fd might fail some day. 2002-02-11 Mark McLoughlin * configure.in: Version 0.1.18 2002-02-11 Michael Meeks * configure.in: update OpenSSL check, and default to no OpenSSL checking - OpenSSL has a pants license, do not use it. 2002-02-11 Mark McLoughlin * configure.in: Version 0.1.17 2002-02-06 Michael Meeks * src/linc-protocols.c: define NI_MAXHOST to MAXHOSTNAMELEN if we just can't find it, include sys/param.h explicitely for that, define NI_MAXSERV to 64 in case we can't get that either. 2002-02-05 Sebastian Wilhelmi * src/linc-connection.c (write_data): Do not use WRITEV_IOVEC_LIMIT as the maximal iovec count, but determine it by some architecture dependent preprocessor constants. This prevents using the fallback implementation of writev. (if the count is too big, the kernel returns an error and libc might provide a fallback by alloca'ing the necessary mem, copying the iovec's content there and writing that out, which in turn might produce a segmentation fault for lots of data on a small stacks, like in multithreaded programs) * configure.in, acconfig.h: Removed the test for WRITEV_IOVEC_LIMIT form configure.in and WRITEV_IOVEC_LIMIT from acconfig.h. 2002-01-28 Mark McLoughlin * configure.in: Version 0.1.16 2002-01-21 Michael Meeks * src/linc-connection.c (write_data): don't signal and return the no. of bytes written. (linc_connection_writev): map to the return enum. (linc_connection_io_handler): move the queue signal here after we've updated the queue list. (write_data): stop running over the end of the array. 2002-01-18 Mark McLoughlin * src/linc-connection.c: (linc_connection_read): disconnect on receipt of EOF. * test/test-linc.c: (broken_cb), (test_server_create_connection), (create_client), (test_broken_cnx_handle_input), (test_broken_cnx_class_init), (test_get_broken_cnx_type), (test_broken), (test_blocking_cnx_handle_input), (test_blocking_cnx_class_init), (test_get_blocking_cnx_type), (test_blocking): re-jig the 'broken' test to test this code path. 2002-01-17 Michael Meeks * Version 0.1.15 * src/linc-protocols.c: remove debug. * Version 0.1.14 2002-01-17 Michael Meeks * configure.in: bump version to 0.1.14 for ORBit2 dependency / build reasons. * test/test-linc.c (test_protos): impl. (main): call it. 2002-01-16 Michael Meeks * src/linc-protocols.c (get_local_hostname): impl. so we can call it lots. (linc_protocol_get_sockinfo_ipv46): upd. (linc_protocol_get_sockinfo_unix): upd. (linc_protocol_is_local): impl. (linc_protocol_unix_is_local): impl. (linc_protocol_is_local_ipv46): impl. * src/linc-server.c (linc_server_accept_connection): check for remote connections - if in local only mode, using new is_local API. * include/linc/linc-protocol.h: add is_local. * include/linc/linc-types.h: add local only flag. 2002-01-17 Laszlo Peter * src/linc-connection.c (write_data): fix writev loop conditions when nvecs > WRITEV_IOVEC_LIMIT. 2002-01-10 Roland Juelich * src/linc-source.c (linc_io_add_watch): create our own LincWatch and pass the channel on to (linc_source_create_watch): here, store the channel for the callback. * src/linc-private.h: store GIOChannel in watch for use in source dispatcher. 2002-01-09 Michael Meeks * Version 0.1.13 2002-01-04 Dave Camp * src/linc-connection.c (linc_connection_class_init): Use the 'blocking' struct member for the blocking signal rather than the 'broken' member. 2002-01-04 Michael Meeks * src/linc-source.c (linc_io_remove_watch): clobber the source so we can't get any events on the source - even if glib does strange things. * src/linc-server.c (linc_server_dispose): re-order the watch removal process. * test/test-linc.c (test_blocking): release the write options. * src/linc-source.c (linc_source_finalize): impl. for debug. 2002-01-04 Michael Meeks * src/linc-connection.c (linc_connection_io_handler): allow handling both input and output in the same poll, to stop re-enterancy hell in the ORB. (queue_signal): special case a '0' byte max_buffer == no maximum, thanks to Dave Camp. 2002-01-03 Michael Meeks * Version 0.1.12 2002-01-03 Michael Meeks * src/linc-server.c (linc_server_setup): set FD_CLOEXEC - on the server's connection. 2002-01-03 Laszlo Peter * configure.in: add check for -lresolv 2001-12-31 Michael Meeks * src/linc-connection.c (linc_connection_io_handler): continue writing the queue if we didn't flush it all (doh). * test/test-linc.c (test_blocking), (blocking_cb, knobble_watch): impl. (test_server_create_connection): impl. (test_cnx_handle_input): impl. * src/linc-connection.c: (queue_signal): add ref. guards. & signal half full buffer as specified. * src/linc-server.c, src/linc-source.c, * src/linc-connection.c: move private struct defs into * src/linc-private.h: here. * test/Makefile.am: upd. include path. * test/test-linc.c (create_server), (create_client, test_broken): split out of (main). 2001-12-31 Michael Meeks * configure.in: bump version to 0.1.12 2001-12-28 Michael Meeks * src/linc-connection.c (calc_size): split out of (queue_flattened): here. * include/linc/linc-server.h, * include/linc/linc-connection.h (LINC_IS_CONNECTION): re-write macros, slower, but functional. * src/linc-connection.c (linc_connection_class_init): add the 'blocking' signal. (queue_signal): impl. (linc_connection_class_state_changed): free the queue on disconnect. (linc_connection_io_handler): do an unchecked class cast for speed. 2001-12-27 Michael Meeks * src/linc-connection.c (linc_connection_write): re-express in terms of writev - this should always have been so. (linc_connection_writev): fix iov_base arithemetic. merge in the SSL code from writev. (queue_flattened, queue_free): impl. (linc_connection_dispose): release the queue. (write_data): split this out of (linc_connection_writev): here & upd to handle queue. (linc_connection_connected): rename to (linc_connection_io_handler): this. (linc_source_add): upd. (queued_write_free): impl. (linc_connection_writev): don't belt round a non-blocking loop on EAGAIN even if we block. 2001-12-19 Michael Meeks * src/linc-server.c (linc_server_setup): upd. * src/linc-connection.c: kill wasteful GIOChannel. (linc_source_add): upd. (linc_connection_dispose): upd. (linc_connection_from_fd): upd. (linc_source_unwatch_out): kill. (linc_connection_connected): upd. (linc_connection_class_state_changed): upd. * src/linc-source.c: add. (linc_io_add_watch_fd): impl. (linc_watch_set_condition): impl. * src/linc.c (linc_io_add_watch): move this 2001-12-14 Roland Juelich * src/linc-server.c (linc_server_setup): if we are passed local_host_info, then use it instead. 2001-12-14 Michael Meeks * src/linc-protocols.c: include netdb.h if we're missing some NI_ defines. 2001-12-14 David Haverkamp * src/linc-protocols.c: include arpa/nameser.h before resolv.h for Solaris systems. 2001-12-11 Michael Meeks * Version 0.1.11 2001-12-08 Michael Meeks * src/linc-connection.c (linc_connection_write), (linc_connection_writev): handle the connection dying in mid-write, it seems EAGAIN gets fired to distinguish from a 0 length write == an error conditon (?) 2001-12-07 Michael Meeks * src/linc-connection.c (linc_connection_class_state_changed): change status early so we're consistant by the time 'broken' is emitted. 2001-12-06 Laszlo Peter * configure.in: Fix detection of WRITEV_IOVEC_LIMIT. 2001-12-05 Kristian Rietveld * src/linc-protocols.c: Move down resolve.h for better FreeBSD build. 2001-12-01 Theo van Klaveren * src/linc-protocols.c: Add to includes. Fixes build on FreeBSD. 2001-11-26 Michael Meeks * Version 0.1.10 2001-11-23 Michael Meeks * src/linc.c (linc_io_add_watch): fixup debugging. 2001-11-25 Havoc Pennington * src/Makefile.am (liblinc_la_SOURCES): add linc-debug.h 2001-11-22 Michael Meeks * src/linc.c (linc_io_add_watch): remove g_warning debug; doh. 2001-11-22 Michael Meeks * src/linc-connection.c (linc_source_unwatch_out): fix brainless not listening for input. * src/linc.c (linc_io_add_watch): beef up watch debug. * src/linc-connection.c (linc_source_add): impl. (linc_connection_class_state_changed), (linc_source_unwatch_out): use it. * src/linc-private.h (LINC_IN_CONDS, LINC_ERR_CONDS): move here. * src/linc-connection.c: update IO conditions. * src/linc-server.c (linc_server_handle_io): accept G_IO_PRI (linc_server_handle): kill, not used. (linc_server_setup): take note of G_IO_PRI * src/linc-protocols.c (linc_protocol_get_sockaddr_unix): make the UDS name more random; include the pid when debugging. * src/linc-connection.c: instrument more. * src/linc-server.c (linc_server_setup): convert to new debug framework. * src/linc-debug.h: add. 2001-11-22 Michael Meeks * src/linc-connection.c (linc_connection_connected): split out re-connect (linc_source_unwatch_out): this to clarify. add dprintf debugging throught. 2001-11-19 Michael Meeks * src/linc.c (linc_object_get_mutex): (linc_init): setup the lifecycle mutex. (linc_object_ref, linc_main_get_loop), (linc_object_unref): impl - sucky locking for now. * src/linc-server.c (linc_server_finalize), (linc_server_init): manage private structure. Privatize fd, mutex, tag, connections * src/linc-connection.c (linc_connection_finalize), (linc_connection_init): manage private structure. Privatize fd, tag, gioc, ssl. (linc_connection_initiate): upd. 2001-11-19 Michael Meeks * src/linc-server.c (linc_server_accept_connection): kill bogus get_sockinfo - we don't need this information whatsoever. * src/linc-connection.c (linc_connection_from_fd): this method has at least 2 totaly bogus arguments, host, service - the joys of frozen APIs. * src/linc-connection.c (linc_connection_dispose): split (linc_connection_finalize): impl. (linc_connection_class_init): upd. 2001-11-18 Miles Lane * include/linc/linc-types.h: replace include of gobject/gobject.h with glib-object.h, due to a change in gobject/gobject.h that forces an #error for all direct includes. This checkin was approved by Havoc. 2001-11-16 Michael Meeks * configure.in: bump ver to 0.1.9 * src/linc-server.c (linc_server_accept_connection): keep track of the connections we accept - hopefully if we re-use them, there won't be many. (linc_server_dispose): protect vs. double dispose & unref. connections. (linc_server_finalize): impl. (linc_server_class_init): hook up. * src/linc-connection.c (linc_source_remove): remove bogus self unref. (linc_connection_dispose), (linc_connection_class_state_changed): upd. 2001-11-15 Michael Meeks * src/linc-connection.c (linc_connection_from_fd): assign the protocol. * src/linc-server.c (linc_server_dispose): protect vs. double dispose's 2001-11-13 jacob berkman * docs/Makefile.am (dist-hook): depend on docs being built * docs/linc-sections.txt: * docs/linc.types: these files are needed to dist 2001-11-13 Michael Meeks * docs/Makefile.am (IGNORE_HFILES): add config.h, acconfig.h * src/linc-server.c (linc_server_handle): privatize, unused & redundant. * docs/tmpl/linc-types.sgml: document LINC_MUTEX_LOCK / UNLOCK. * src/linc-protocols.c (linc_set_tmpdir): fix docs. * src/linc.c (linc_io_add_watch, linc_io_remove_watch), (linc_main_iteration, linc_main_pending, linc_mutex_new), (linc_main_loop_run): document. 2001-11-13 Michael Meeks * docs/linc-sections.txt: remove config, acconfig, linc-config, linc-private sections. 2001-11-12 John Fleck * added docs/Makefile.am docs/linc-docs.sgml docs/tmpl/acconfig.sgml, linc-connection.sgml, linc-server.sgml, linc-unused.sgml, config.sgml, linc-private.sgml, linc.sgml, linc-config.sgml, linc-protocol.sgml, linc-types.sgml modified ./Makefile.am, configure.in add gtk-doc build system 2001-11-12 Michael Meeks * src/linc-server.c (linc_server_accept_connection): set O_NONBLOCK on connections we accept; also set FD_CLOEXEC - doh. 2001-11-12 Michael Meeks * src/linc-connection.c (linc_connection_read), (linc_connection_write, linc_connection_writev), catch and warn on EBADF. 2001-11-12 Michael Meeks * configure.in: bump version to 0.1.8 * src/linc-connection.c (linc_connection_read): set fatal error on 0 length reads, don't re-enter foolishly in various places, return bytes_read on EAGAIN, don't loop re-entering while waiting for connected. 2001-11-08 Michael Meeks * Version 0.1.7 2001-11-08 Michael Meeks * src/linc.c (linc_io_add_watch): setup sources as recursive sources - so we can recurse ! (linc_main_iteration, linc_io_remove_watch), (linc_io_add_watch): add conditional watch debugging. 2001-11-08 Michael Meeks * src/linc-connection.c (linc_connection_writev): remove 'register' optimization :-) fix SSL path, make the code legible, handle EINTR, don't skip partialy written iovecs in a totaly bogus way. (linc_connection_write): handle EINTR. (linc_connection_read): rename 'written' 'bytes_read' Document all methods. 2001-11-06 Michael Meeks * src/linc.c (linc_init): init with G_TYPE_DEBUG_OBJECTS. 2001-10-30 Mark McLoughlin * configure.in: version 0.1.6. 2001-10-29 Michael Meeks * configure.in: require glib >= 1.3.10 2001-10-26 Michael Meeks * src/linc.c (linc_mutex_new): flag that we have been called. (linc_set_threaded): add protection for people setting the threaded-ness late. 2001-10-24 Ross Golder * Makefile.am (EXTRA_DIST): Added spec file, and removed floating tab 2001-10-25 Michael Meeks * AUTHORS: update, * *.[ch]: Add copyright headers. 2001-10-24 Michael Meeks * src/linc-connection.c (linc_connection_class_init): fix ref counting on parent type. 2001-10-24 Michael Meeks * src/linc.c (linc_init): fix brainlessness. 2001-10-24 Michael Meeks * src/linc.c (linc_init): upd. (linc_set_threaded): impl. (linc_mutex_new): only return a mutex if linc_threaded is TRUE, _and_ g_thread_supported. 2001-10-18 Michael Meeks * src/linc-connection.c (linc_connection_connected): simplify flow, ignore handle_input's return value, always return TRUE, we remove ourself from both main contexts elsewhere. 2001-10-16 Mark McLoughlin * Makefile.am (EXTRA_DIST): kill linc-config.in, linc.pc.in, linc.spec and linc.spec.in. Add HACKING and MAINTAINERS. 2001-10-10 Abel Cheung * linc-config.in(cflags): move headers to subdir * linc.spec.in(%files): ditto, for spec file. 2001-10-09 Havoc Pennington * linc.pc.in (Cflags): headers in a subdir * include/linc/Makefile.am (lincincludedir): put headers in a subdir 2001-09-26 Mark McLoughlin * configure.in: add --enable-compile-warnings option. * src/Makefile.am: use $(WARN_CFLAGS) * src/linc-protocols.c (linc_protocol_get_sockinfo_ipv6): initialise host. include linc-private.h. 2001-09-25 Mark McLoughlin * Version 0.1.5. 2001-09-24 Mark McLoughlin * linc/configure.in: clean up libtool versioning. Use pkg-config to check for libs. Kill unused vprintf and alloca check. * linc.pc.in, linc.spec.in: update. * linc/src/Makefile.am: update and include libtool version-info. 2001-09-20 Mark McLoughlin Patch from Frank Belew . * src/linc-protocols.c (static_linc_protocols): don't use 'designated initializers' style of initialization. Allowed by C99, but Sun's Forte compiler does't allow it. 2001-09-20 Mark McLoughlin * src/linc-connection.c (linc_connection_real_state_changed): rename to... (linc_connection_class_state_changed): document and tidy. (linc_connection_from_fd): ditto. (linc_connection_initiate): ditto. (linc_connection_state_changed): ditto. (linc_connection_read): return 0 if passed 0 or if the connection has been closed. 2001-09-18 Jens Finke * linc.spec.in: New file. * Makefile.am (EXTRA_DIST): Added linc.spec and linc.spec.in. * configure.in (AC_OUTPUT): Create linc.spec. 2001-09-13 Michael Meeks * src/linc-protocols.c (linc_protocol_get_sockinfo_ipv46): use guint instead of in_port_t to fix the issue differently. * configure.in: remove bogus in_port_t define. 2001-09-12 Dirk-Jan C. Binnema * configure.in; compile fix: define in_port_t if it isn't 2001-09-11 Mark McLoughlin * src/linc-protocol.c: fix typo. 2001-09-11 Mark McLoughlin * include/linc/linc-protocol.h, src/linc-protocols.c (LINCProtocolGetAddrInfoFunc, LINCProtocolGetNameInfoFunc): killed. (LINCProtocolGetSockInfoFunc): added. (LINCProtocolInfo): added get_sockinfo. killed getaddrinfo and getnameinfo. (linc_getaddrinfo, linc_getnameinfo, sys_getaddrinfo, sys_getnameinfo): killed. (tcp_setup): renamed to linc_protocol_tcp_setup. (af_unix_destroy): renamed to linc_protocol_unix_destroy. (protocol_ents): renamed to static_linc_protocols. (linc_protocol_get_sockinfo_ipv46, linc_protocol_get_sockinfo_ipv4, linc_protocol_get_sockinfo_ipv6, linc_protocol_get_sockinfo_unix, linc_protocol_get_sockinfo_irda, linc_protocol_get_sockinfo): implemented. Finished documenting. NOTE: get_sockinfo_irda and get_sockaddr_irda are not working. * src/linc-private.h: added linc_protocol_get_sockinfo. * src/linc-server.c(linc_server_accept_connection): use get_sockinfo instead of getnameinfo. (linc_server_setup): ditto. * include/linc/linc-connection.h, src/linc-connection.c(linc_connection_from_fd): don't dup remote_host_info and remote_serv_info. 2001-09-10 Mark McLoughlin * linc/src/linc-protocols.c: (linc_protocol_get_sockaddr_ipv4): set resolver options. (linc_protocol_get_sockaddr_ipv6): impl. (linc_protocol_get_sockaddr_unix): kill silly saddr_len bug. (irda_getaddrinfo): use new IRDA_PREFIX_LEN define. Move protocol_ents definition to bottom and kill prototypes. Api-doc most functions. 2001-09-09 Michael Meeks * src/linc-server.c (linc_server_setup): remove bogus g_free (saddr) 2001-09-07 Mark McLoughlin * acconfig.h, configure.in: add check for sockaddr's sa_len member. * src/linc-protocols.c(linc_protocol_get_sockaddr, linc_protocol_get_sockaddr_ipv4, linc_protocol_get_sockaddr_ipv6, linc_protocol_get_sockaddr_unix, linc_protocol_get_sockaddr_irda): impl. get_sockaddr will replace getaddrinfo soon. getaddrinfo is a waste of time - we don't need most of the data it returns, and it is non-portable for unix sockets, ipv6 and irda. Indeed older unices don't even have an implementation for ipv4. *NOTE*: irda and ipv6 are not working with this yet. But I doubt anyone is actually using these... * src/linc-private.h: add linc_protocol_get_sockaddr. * src/linc-connection.c(linc_connection_initiate): use linc_protocol_get_sockaddr instead of linc_getaddrinfo. * src/linc-server.c(linc_server_setup): ditto. * include/linc/linc-types.h: moved LINCProtocolInfo here. * include/linc/linc-protocol.h (LINCProtocolInfo): added get_sockname. Impl typedefs for functions types. 2001-09-07 Mark McLoughlin * src/linc-protocols.c: Warning killers - include string.h and don't prototype IRDA functions if IRDA defines not available. 2001-08-31 Michael Meeks * src/linc-connection.c (ERR_CONDS): hack off G_IO_PRI (IN_CONDS): PRI|IN (linc_connection_connected), (linc_connection_real_state_changed): use it. 2001-08-27 Mark McLoughlin * linc.pc.in: require gobject and gthread. 2001-08-24 Mark McLoughlin * configure.in: remove unused --enable-linc-threadsafe option. Removed pthread.h check - we always want to link against gthread. 2001-08-23 Michael Meeks * Version 0.1.4 2001-08-21 Dirk-Jan C. Binnema * src/linc.c (main): ignore SIGPIPE, handle this here instead of in libbonobo 2001-08-20 Theo van Klaveren * include/linc/linc-protocol.h: Include to fix build on FreeBSD. 2001-08-18 Cody Russell * linc.pc.in: Added. * configure.in, Makefile.am: Build and install linc.pc 2001-08-18 Michael Meeks * configure.in: bump version to 0.1.3 * src/linc.c (linc_mutex_attrs): kill. (linc_init): kill pthread specific bits, take gboolean 'init_threads' (linc_mutex_new): impl. to hide conditional mess. * src/linc-server.c (linc_server_accept_connection): split out of (linc_server_handle_io): here & update locking. 2001-08-17 Michael Meeks * src/linc-server.c (linc_server_init): use g_thread stuff straight - no need for a recursive mutex - set to NULL if threads not initialized. * include/linc: homogenise header guard style, add G_BEGIN/END_DECLS * include/linc/linc-types.h: s/LINC_THREADSAFE/G_THREADS_ENABLED/ kill whacked out threading macro overload. (LINC_MUTEX_[UN]LOCK): don't inexplicably steal chunks of the O_ namespace. kill extreme strangeness with defining wierd system bits. * Revert Mark's patch. 2001-08-18 Mark McLoughlin * configure.in: added --enable-linc-threadsafe option. Defaults to yes. * include/linc/linc-config.h.in: added LINC_ENABLE_THREADSAFE def. * include/linc/linc-connection.h, include/linc/linc-server.h, include/linc/linc-server.h, include/linc/linc-types.h, include/linc/linc-threads.h, include/linc/linc.h: split out threaded stuff into linc-threads.h. Removed _GNU_SOURCE, _XOPEN_SOURCE and _REENTRANT defines. Cleaned up a little. * linc/include/linc/Makefile.am: added linc-threads.h. * src/Makefile.am: add -D_GNU_SOURCE for PTHREAD_MUTEX_RECURSIVE. 2001-08-16 Mark McLoughlin * configure.in: Cache ACLOCAL_FLAGS. 2001-08-16 Michael Meeks * configure.in: bump version to 0.1.2 * src/linc-connection.c (linc_connection_get_type): don't use the base_init - but the instance_init to set fd == -1 so we don't close (0), doh. (linc_connection_connected): update to call the handle_input virtual method on input. 2001-08-14 Michael Meeks * src/linc-protocols.c (irda_getaddrinfo): kill another heinous srand idiocy. 2001-08-13 Michael Meeks * src/linc-connection.c (linc_close_fd): split out. (linc_connection_dispose): use. (linc_connection_real_state_changed): ditto. 2001-08-13 Michael Meeks * src/linc-connection.c (linc_connection_init): impl, to init cnx->fd = -1. (linc_connection_get_type): upd. - thanks to Martin Baulig. 2001-08-10 Michael Meeks * src/linc-protocols.c (linc_set_tmpdir): kill gratuitous evil (make_local_tmpdir): copy from ORBit-stable. (linc_set_tmpdir): actualy ensure that we have a valid working directory. 2001-07-30 Michael Meeks * Version 0.1.1 2001-07-30 Michael Meeks * src/linc-connection.c (linc_connection_class_init): remove redundant static prototypes. (linc_connection_class_init): init 'broken' signal. (linc_connection_real_state_changed): emit the 'broken' signal. 2001-07-24 Michael Meeks * src/linc-connection.c (linc_connection_real_state_changed): make it unref the connection on disconnect ... 2001-07-18 Michael Meeks * src/linc-connection.c (linc_connection_writev): s/g_main_iteration/linc_main_iteration/. * src/linc.c (linc_main_iteration): impl. (linc_init): make the linc_loop run. (linc_main_pending): impl. (linc_main_loop_run): impl. * src/linc-server.c (linc_server_dispose): upd. (linc_server_setup): upd. (linc_server_get_type): re-order to kill redundant prototypes. * src/linc-connection.c (linc_source_remove): upd. (linc_connection_init): remove; redundant. (linc_connection_real_state_changed): upd. (linc_connection_connected): upd. * src/linc.c (linc_io_add_watch): impl. (linc_io_remove_watch): impl. * include/linc/linc-types.h: add LincWatch type. * src/*.c: s/g_io_add_watch/linc_io_add_watch/ 2001-07-16 Darin Adler * include/linc/linc-types.h: Fix order of includes to keep Linux happy -- the Solaris change let to a compile failure on Linux. * src/linc.c: (linc_init): Add a missing ifdef. 2001-07-16 Laszlo Peter * src/linc-protocols.c: set fakelen to 0 when fakehost is NULL to avoid core dump on Solaris. * include/linc/linc-types.h: include to keep Solaris happy. 2001-07-13 Darin Adler * configure.in: Remove duplicate macros, and fix one of the test invocations that was not using the x prefix technique correctly. 2001-07-13 Michael Meeks * src/linc-connection.c (linc_connection_initiate): add more error checking on fcntls. 2001-07-08 Seth Nickell * src/linc.c: (linc_init): Only call g_thread_init if the threading system hasn't already been activated. 2001-07-03 Michael Meeks * src/linc-protocols.c (linc_getaddrinfo): don't re-seed the random number generator with the time in seconds ! don't use "%d%d", rand (), rand () - it gains us nothing, add gettimeofday ^ instead. * src/linc-connection.c (linc_connection_dispose): s/shutdown/dispose. * src/linc.c (linc_init): fix g_type_init. 2001-07-02 Michael Meeks * src/linc-server.c (linc_server_setup): regenerate the UDS' name on EINVAL from bind. 2001-06-21 Martin Baulig * configure.in: Make this work if SSL is not installed. 2001-05-25 Michael Meeks * src/linc-connection.c (linc_source_remove): split from (linc_connection_shutdown): here, and release the self reference whilst watching. (linc_connection_real_state_changed): use linc_source_remove. (linc_connection_connected): hold a ref over the state_changed emissions. 2001-05-24 Michael Meeks * src/linc-connection.c (linc_connection_connected): unref the connection object on disconnection. * src/linc-server.c (linc_server_destroy): protect against multiple shutdowns, and rename to * src/linc-connection.c (linc_connection_destroy): protect against multiple shutdowns, and rename to (linc_connection_shutdown): this. (linc_connection_real_state_changed): add assertions on source removal. 2001-05-18 Michael Meeks * src/linc-connection.c (linc_connection_destroy): check the io channel is valid before the unref - happens in some error cases. 2001-05-18 Michael Meeks * src/linc-server.c (linc_server_class_init): actualy make the signal run. 2001-05-18 Michael Meeks * autogen.sh: update for libtool 1.4 * src/linc-connection.c (linc_connection_destroy): unref the IO channel on destroy - doh. 2000-10-27 Michael Meeks * src/linc-server.c (linc_server_get_type): type_register_static fix. * src/linc-connection.c (linc_connection_writev): use cnx->fd. (linc_connection_get_type): add '0' parameter for head glib.