Sat Jun 22 04:48:46 2002 David Helder * *: Release 0.3.2 * src/libemcast.c (emcast_join): Copy from inet address, not string. Interesting that mcast was still working before in Linux. Wed May 15 11:49:30 2002 David Helder * *: Release 0.3.1 * btp/b_conn_handler.c (handler_timeout): Remove debug output * src/libemcast.c: " Mon May 13 12:02:57 2002 David Helder * btp/b_conn_io.c (b_conn_watch_update): Set watch to 0 after clearing it. It may not be set immediately. * btp/b_peer.c (receive_hello): Actually, delete dropped conns entirely and don't delete the conn->conn twice. * configure.in: Up version to 0.3.1 (unreleased) * test/Makefile.am: Include more in distribution Sun May 12 17:59:05 2002 David Helder * btp/b_peer.c (receive_hello): Bug. Deleting wrong pointer on connection drop. Thu Apr 25 10:53:58 2002 David Helder * *: Release 0.3.0 * btp/b_conn_handler.c (b_conn_handler_dispatch): Remove debug output. * src/libemcast.c (emcast_join): Fix IP multicast join * btp/*: BTP is stable. Prepare for release. Fri Apr 19 12:52:30 2002 David Helder * btp/btp_proto.c (send_node_info): Don't send node info if we aren't using shortcuts. * btp/btp_proto.c (receive_ok_switch): TREE->parent is new_parent, not old parent. We were disconnecting from the wrong one. * btp/btpcat.c: Added. * btp/b_conn.c (b_conn_delete): Delete connection after reset. * btp/b_conn.c (b_conn_reset): Delete connection. * src/libemcast.c (process_init): Free buffer from INIT message. Wed Apr 17 15:11:19 2002 David Helder * btp/btp_tree.h (struct _BtpTree): Remove ref_count. Unused. * btp/btp_tree.c (btp_tree_relation_to_string): Added. * btp/btp_proto.c (node_fail_or_leave): Add. * btp/btp_proto.c (btp_conn_fail): This removes all handlers then calls node_fail_or_leave(). * btp/btp_proto.c (receive_leave): This does not remove any handlers, then calls node_fail_or_leave(). We had some cases where nodes would leave, not close the connection yet, and then join. The handler would be missing and this would cause problems. (Although leaving then immediately joining is another problem that should be addressed. * btp/btp_proto.c (remove_handlers): Remove _all_ switch handlers. * btp/b_conn_handler.c (b_conn_handler_print): Added. * btp/b_conn_handler.c (b_conn_handler_dispatch): Add assertion that not called on conn that should be destroyed. * btp/b_conn_handler.c (b_conn_handler_add_full, b_conn_handler_dispatch): Use g_timeout, not rand_timer * btp/b_conn_handler.c (handler_timeout): Clear timer when timeout is called. Tue Feb 12 13:49:10 2002 David Helder * btp/*: Move source_id and seq_num globals in BGroup structure. BGroup now pointed to in BConns; BtpTree derives from BGroup. Wed Feb 6 10:44:58 2002 David Helder * btp/*: Remove bug-prone assert(func())'s. Fri Jan 18 13:07:51 2002 David Helder * src/emcast.c: Options can be in hexidecimal. Wed Jan 16 12:05:16 2002 David Helder * btp/btp_tree.c (btp_tree_parent_degree): If my parent is the root, it has 0 parents, not 1. This func is used by heuristics only. * btp/b_packet.h: Added 16-bit source ID, removed "(unused)" comment from sequence number. Sequence number is now used. Tue Jan 15 16:42:49 2002 David Helder * btp/btp_{tree,proto}.c: More debug output * src/libemcast.[hc]: s/char*/void*/ in send, recv, recvfrom interfaces Thu Nov 8 15:44:34 2001 David Helder * tests/Makefile.am (EXTRADIST): Include brutal * btp/btp_proto.c (receive_leave): Don't remove child. btp_conn_fail will do this when we call it. * btp/btp_tree.c (btp_tree_print): More debug output cleanup. * btp/btp_proto.c (receive_switch): " Thu Nov 8 13:54:49 2001 David Helder * btp/btp_tree.c (btp_tree_print): Debug output cleanup. * btp/btp.c (btp_join): ucast_read_func is ucast_read_cb, not mcast_read_cb. Thu Nov 8 13:20:05 2001 David Helder * btp/btp_proto.c (receive_mcast): Print source of bad mcast packet. * btp/btp_tree.c (btp_tree_print): Cleanup debug output. * src/emcast.c (main): Added commented-out malloc_options. * src/emcast.c (main): Clear emcast after calling emcast_leave. If emcast_leave fails, we call EERROR which will attempt to leave again if it's set. * src/libemcast.c (emcast_leave): Delete emcast even if setsockopt-DROP fails. * src/libemcast.c (emcast_new): Don't close IPM socket if socket() fails. * src/libemcast.c (emcast_join): Use memcpy, not memmove. * tests/brutal (loop): Remove write and error vectors. These weren't used. Thu Nov 8 11:19:06 2001 David Helder * btp/btp_tree.c: Added is_deleting flag for sanity check. * btp/btp_proto.c (receive_ok_switch): If grandparent is also root, disconnect but don't delete. * btp/btp_proto.c (btp_conn_fail): More sanity checks. Wed Nov 7 22:00:06 2001 David Helder * btp/btp_tree.c (btp_tree_print): Debug output clean-up. * btp/b_conn.c (b_conn_print): " * btp/btp_node.c (btp_node_print): " * btp/b_conn_connect.c: More debug output (11) * btp/btp_debug.h: " * btp/btp_proto.c (btp_conn_fail): Added sanity check. We should not delete the root. * btp/b_conn_io.c (write_cb): Handle write failure. Before we just warned. Wed Nov 7 13:48:58 2001 David Helder * btp/btp_proto.c (receive_ok_switch): Fix logic. Wed Nov 7 11:37:13 2001 David Helder * btp/btp_proto.c (receive_ok_switch): Delete gparent after switch. * btp/btp_tree.c (btp_tree_is_related): Remove. Was wrong and unused. * btp/btp_tree.c (btp_tree_is_one_hop, btp_tree_is_two_hop): Added. * btp/btp_proto.c: Close unrelated connections after updating relations. Ultimately, fail will be called and the nodes will be deleted. * btp/btp_proto.c (btp_conn_fail): If gparent fails, remove and reset stuff. * btp/btp_node.c (btp_node_delete): If node is my gparent, clear it. Tue Nov 6 15:42:39 2001 David Helder * btp/btp_proto.c (receive_reply_neighbors): Clear old list of siblings before creating the new list. This didn't matter before since we marked bad nodes. Now that we don't, nodes sometimes got stuck repeatedly switching to non-sibling nodes. * btp/b_conn_io.c (error_cb): Fixed debug flag (should have been level 4). * configure.in: Check for lib socket (Needed in SunOS 5.8?) Mon Nov 5 18:55:57 2001 David Helder * src/emcast-protocol.c (emcast_parse_url): Clear out all passed vars. Fixed port parsing. s/filename/resource. If no resource, resource is set to NULL, not "/". * star/*: Added. * tests/brutal (loop): Use >= in time check. This prevents a busy wait. * btp/btp-emcast.c (emgetopt, emsetopt): Handle btp_max_degree and btp_follow_nodes options. * btp/btp_tree.h (struct _BtpTree): Added max_degree and follow_nodes members. * btp/btp.[hc]: Added btp_max_degree and btp_follow_nodes flags. When BtpTree is created, it is initialized with these. Default is max degree 5, follow nodes TRUE. * btp/btp_proto.c (receive_switch): In error packet, include new parent or current parent. * btp/btp_proto.c (find_new_parent): Check follow. Follow if better than current siblings. * btp/btp_proto.c (find_follow_node): Added. * btp/btp_proto.c (receive_error_switch): Set follow node if sent. We still reschedule a request_neighbors immediately. We may need to adjust this. If the bad potential parent hasn't finished switching, we may try to switch to it again. * btp/btp_node.h (_BtpNode): Add follow, follow_distance fields. * btp/b_packet.c (b_packet_parse_addrs): Added. Moved b_packet_parse_info_reply_neighbors() logic here. Mon Oct 29 16:39:22 2001 David Helder * btp/b_conn_ping.c (receive_pong): Compile fix. Mon Oct 29 16:38:02 2001 David Helder * btp/b_conn_ping.c (receive_pong): More debug output * btp/btp_proto.c (btp_conn_ping): Remove debug output * src/libemcast.c (emcast_new): Added. Creates emcast object, can then join. The reason for this new function is so options can be set before joining. * src/emcast.c: Updated to support above. Use -O flag to set pre-join options. * src/libemcast.c: Errors returned are now always negative. Fri Oct 26 19:40:23 2001 David Helder * btp/btpclimber.c: In edge mode, print edges as we see them. * btp/b_conn.c (b_conn_send_packet): Debug output addition. * btp/b_conn_ping.c (receive_pong): Call b_conn_func_ping whenever there's a pong. * btp/b_conn_ping.h (BTP_PING_SEND_TIME): Lower time to 15 seconds, range to 5 seconds. * btp/b_conn_ping.c (send_ping): Set timer for sending next PING. * btp/b_conn_ping.c (receive_any): Don't reset the ping timer. Pings were never getting sent because receiving a neighbor request would reset the send_ping timer. Now conn_timeout and send_ping are separate. Fri Oct 26 18:01:37 2001 David Helder * btp/btp-emcast.c (emjoin): Support BTP_PORT environment variable. * btp/btp_proto.c (receive_reply_neighbors): Print neighbors on receving inforep-neighbors (debug only). * btp/btpclimber.c (btpclimber_dump): Print all pending nodes. * btp/btpclimber.c (btpclimber_dump_pending_r): Done Thu Oct 25 15:02:45 2001 David Helder * btp/btpclimber.c (btpclimber_dump_r): Print parent-child, not child-parent. Thu Oct 25 12:56:23 2001 David Helder * btp/btp_proto.c (btp_conn_fail): Don't print FAIL for node's we're deleting (since they didn't fail techincally. Thu Oct 25 12:29:48 2001 David Helder * btp/btp_proto.c (btp_conn_fail): Don't printf NULL string in debug output. Mon Oct 22 13:21:21 2001 David Helder * src/libemcast.c (drainn): Added * src/libemcast.c (emcast_recvfrom): If buffer is too small, *drain* and return EBADARG. Before we didn't drain so we could not easily recover from the error. * src/libemcast.c (emcast_getopt): " * src/emcast.c (BUFLEN): Make the default buffer size 8192 by default (was 1500). * src/emcast-protocol.c: Replace BUFSHRT with SHORTCPY, which handles odd alignment properly. This fixes crashes on Suns. * src/libemcast.c: " * btp/btpclimber.c: Do getopt option parsing. Added edge-mode for printing edges and not ascii tree. Mon Oct 1 14:14:27 2001 David Helder * Makefile.am (snapshot): Fix whitespace problem. Mon Oct 1 10:36:38 2001 David Helder * btp/util.h (timersub, timerdiff): Added macros. Thu Sep 20 17:06:48 2001 David Helder * src/libemcast.c: Define socklen_t if not defined. Thu Sep 20 14:00:40 2001 David Helder * configure.in (TOPSUBDIRS): Add doc to TOPSUBDIRS * doc/Makefile.am (EXTRA_DIST): Include emcast-config.1.in * irc/Makefile.am (EXTRA_DIST): Include irc-emcast Wed Sep 5 16:00:04 2001 David Helder * README: Clean-ups Wed Aug 22 10:52:11 2001 David Helder * *: Release 0.2.0 Tue Jul 24 17:46:59 2001 David Helder * irc/irc-emcast: Added. * perl/Emcast/Handler.pm: Added. Mon Jul 23 15:36:07 2001 David Helder * btp/b_conn.c (b_conn_print): Initialize status (should not matter). Thu Jul 12 11:39:38 2001 David Helder * btp/btp_tree.c (btp_tree_print): Print gparent. * btp/btp_proto.c (receive_reply_neighbors): Reset gparent on receiving neighbors. * btp/b_conn_ping.c (receive_pong): Min distance is 1. After calc distance, raise if too low. * btp/btp_proto.c (find_new_parent): Clean-up hearistics. Does not aggressively switch to gparent. Switch to close siblings less often. Max degree is now 5. * btp/btp_tree.c (btp_tree_is_gparent): Added. * btp/btp_tree.c (btp_tree_degree): Added * btp/btp_tree.c (btp_tree_parent_degree): Added * btp/btp_proto.c (receive_ok_switch): Fix "OK from odd relation" check. Can receive OK from root, if it's our gparent. * btp/btp_proto.c (add_handlers): Handle gparent switches. Wed Jul 11 16:40:54 2001 David Helder * btp/btp_proto.c (btp_conn_fail): If parent fails and connected to root, send JOIN to root, not to old parent. (Otherwise, we don't receive pkts from the root.) * btp/btp_proto.c (receive_mcast): Drop mcast packets from non-neighbors. * src/emcast.c (main): Remove debug string. Fri Jul 6 16:00:54 2001 David Helder * btp/b_peer.c (b_peer_remove_handler): name is non-NULL, not handler. Fri Jul 6 14:53:11 2001 David Helder * btp/btp-emcast.c: Added "btp_debug_flags" option. * btp/btp-emcast.c (peer_dump): Print peer occasionally if flag 8 set. * btp/btp.c (btp_print): Added * btp/b_peer.c (b_peer_get_handler_data): Added. * src/emcast.c: Added -o option setting option. Converts numbers to ints and sets as ints. * src/emcast-protocol.c (emcast_loop_once): If getopt callback fails, set optlen to 0. * btp/btp_proto.c: Do switch-one-hop (added grandparent switches). Thu Jun 14 12:30:26 2001 David Helder * btp/btp.c (btp_leave): Remove handler * btp/b_peer.c (b_peer_add_handler): Don't return anything. It's a private structure anyway. * btp/b_peer.c (b_peer_remove_handler): Remove by name, not handler. Wed Jun 13 15:35:50 2001 David Helder * tests/brutal: Remove -c * btp/btp-emcast.c: Attempt to create. If that fails, then join. * src/*: Remove group creation. * src/emcast.c: Remove -c option. Added quiet option. Wed Jun 13 10:38:20 2001 David Helder * configure.in: Version 0.1.1 * src/libemcast.h: Added emcast_{blah}. Added EMCAST_CHECK_VERSION * emcastconfig.h.in: Added * emcast.m4: Fixed typos Mon Jun 11 23:29:35 2001 David Helder * emcast.m4: Fixed libemcast.h path Mon Jun 11 22:29:11 2001 David Helder * Makefile.am: Added snapshot rule Sat Jun 9 15:25:24 2001 David Helder * btp/btp.c (btp_has): Added * btp/btp.c (btp_create): Check if handler exists before creating tree. Before, we'd write over the old handler. (Which is fine since we use the same handler, but is probably not what the user intended, as it could mess up a previously created group. * btp/btp.c (btp_join): Use "/" if resource is NULL, not "". * btp/btp.c (btp_join): Check if handler exists. TODO we should allow this. * btp/b_peer.c (b_peer_has_handler): Added. * btp/b_conn_io.c (demux_cb): Check for error before checking for write. Otherwise, we may write when there's an error, and this will cause SIGPIPE. * btp/b_conn.c (b_conn_reset): Made this static. We don't want to reset the conn while we're in demux_cb, since it will delete stuff we need. (Using b_conn_delete is safe though.) This will prevent future idiot mistakes. * btp/btp_debug.[hc]: Added * btp/globals.[hc]: Removed * btp/*: Convert to btp_debug. Fri Jun 8 14:35:56 2001 David Helder * btp/b_conn_io.c (read_cb): If there was a partial read and no packet was produced, then break. Fri May 25 11:22:08 2001 David Helder * emcast.m4: Remove GNet stuff. Handle modules. * doc/emcast-config.1.in: Mention modules. * emcast-config.in: Clean-ups. Module support. Thu May 24 14:13:03 2001 Andrew J Lanoix * tests/brutal: Fixes for BSD * tests/runtest: ., not source * btp/Makefile.am: Add LDFLAGS Mon May 21 17:20:15 2001 David Helder * tests/runtest: Added Mon May 21 16:17:33 2001 David Helder * btp/btp.c (btp_create): Fix adding slash to created URL Mon May 21 11:19:38 2001 David Helder * configure.in: Require GNet 1.1.0 Fri May 18 16:48:33 2001 David Helder * btp/b_conn.h (struct _BConn): Add bye timer * btp/b_conn_connect.c (b_conn_close): Set bye timer * btp/b_conn_connect.c (bye_timeout_cb): Added * btp/b_conn.c (b_conn_reset): Reset by timer * btp/b_conn.c (b_conn_new_accepted): Added * btp/b_conn.h: Added b_conn_num_conns, b_conn_num_conns_zero * btp/b_conn.c (b_conn_{new, delete}): Modify above Thu May 17 11:50:07 2001 David Helder * tests/brutal: More tests work * tests/runtests, tests/cases/*: Added * src/libemcast.c: Documentation improvements * src/libemcast.c: Documentation clean-ups * src/libemcast.c (emcast_setopt): Accept non-zero as loopback on. * src/emcast-protocol.c (emcast_loop_once): " Thu May 17 10:55:38 2001 David Helder * src/libemcast.c: Include signal.h * src/emcast.c: Include string.h (for bzero on BSD) Wed May 16 15:08:08 2001 David Helder * src/libemcast.c: Use smaller dummy buffers when given buffers are too small/not specified. This is friendlier the stack. Wed May 16 14:45:16 2001 David Helder * btp/util.[hc]: Remove unneeded stuff. * COPYING, *: Added license information * src/emcast-protocol.c (emcast_handler_recv): Fixed return value. * btp/btp-emcast.c (packet_func): Check rv * src/libemcast.c: Unlink the fifo after opening it. Then we don't have to save the name. Tue May 15 17:34:49 2001 David Helder * src/libemcast.c: No any IO errors. If there was an IO error, don't send a leave message on leave. * src/libemcast.c (process_init): Open fifo readonly * src/emcast-protocol.c (emcast_loop_once): Open fifo writeonly * btp/btp-emcast.c (emsend): Remove debug output Tue May 15 16:42:03 2001 David Helder * src/*: Use FIFO for RECV. This fixes bug where libemcast sends SEND and handler sends RECV at the same time (both then expect a response, but get the others request, causing a failure usually). * src/tempfifo.[hc]: Added * src/libemcast.c (emcast_send): Return len, not 0, as was documented. * src/emcast.c (main): Use writen Mon May 14 17:17:49 2001 David Helder * tests/brutal: Added this EM brutal tester. Fri May 11 12:30:43 2001 David Helder * btp/Makefile.am: Revert some of these changes.. Fri May 11 12:18:57 2001 David Helder * *: Makefile, config cleanups Thu May 10 16:55:05 2001 David Helder * btp/*: Big ass restructuring/clean-up * btp/btp-emcast.c (packet_func): Don't write pkts to stderr. * src/emcast-protocol.c (emcast_loop_once): Fix automatic loopback (was always on). * src/emcast.c (sig_int_cb): Added * src/libemcast.c: Kill and wait for pid on join/create error or when leaving. * src/emcast.c (usage): Fix (should be -l1, not -l 1) * src/libemcast.c (process_init): Don't close stderr * src/util.[hc]: const fixes * src/emcast-protocol.h: " 2001-05-10 Andrew J Lanoix * btp/b_conn_accept.c (b_conn_init): Fixed Gnet change * btp/poll.c: Added declaration * src/libemcast.c: Added include for BSD * src/gethostbyname.h: Mon Apr 9 17:00:06 2001 David Helder * configure.in: Fixed CHECK_LIB bug * btp/create-test, join-test: Added * btp/README: Added Thu Apr 5 23:01:28 2001 David Helder * src/emcast-protocol.c (emcast_parse_url): Added * src/emcast-protocol.[hc]: Handle loopback automatically * btp/btpclimber.[ch]: Added (was in jmtools) * btp/btp-emcast.c: Do init, implement create * btp/b_conn_accept.c (b_conn_init): Don't require interface * btp/btp.c (btp_init): * src/*: Clean-up, added create Fri Mar 30 17:52:37 2001 David Helder * *: Debugging BTP and library Fri Mar 30 15:31:15 2001 David Helder * *: Moved btp here, much cleanup Fri Mar 30 12:01:02 2001 David Helder * Start