Wed May 31 20:45:38 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* Makefile.in: Added uu.* http.* bprintf.*

	* topology.c:
	Changed order of topology rescheduling as part of the fix to ensure
	only one topology event was generated per rescheduling period.

	* group.c:
	Fixed bug that had two generate topology events being added to the
	event queue for every topology event.

	* event.c: Fixed bug in heapify that corrupted the heap.

	Added a html output for the event queue.

	* datablock.c:
	Fixed nastly problem that made datablocks_total_bytes go to less than 0

	* config.c:
	Added type information to fields (for use by the http interface).

	* client.c: Changed `html' references to `http'.
	Added new client_cmd_get ()
	Added new client_cmd_post ()
	Process mimi headers.

	* http.c:
	Tons of changes.  Renamed html.c to http.c to better reflect it's
	mission in life.

	Eliminated all string_*  macros and replace them with the function
	bprintf().

	Handle POST method.

	Handle Mime Headers.

	Handle authentication.

	Changed Look and Feel of HTML interface.

Thu May 11 20:43:28 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* io.c: Only accept ping times that are less than 5 seconds.

	* statistics.c:
	Changed the value of alpha from 0.9 to 0.5 to permit faster
	response of BW and RTT estimates.

Fri Apr 28 06:54:14 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* fd-config.c: Added password support.


Fri Apr 28 06:41:34 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* Vastly improved http support.  All html commands have been moved
	  to html.c.  Mime headers are now available to play with, and
	  Basic Authorization is supported.  Adiministrative commands are
	  password protected.  The password can be set by set in the
	  flood-config file with the `local' `password' parameter.

	  Bad URLs now return errors.

	  Experimental refresh option added to estimates table.  Only
	  works in netscape at the moment.

	* html.c: Initial revision

	* client.c: Move almost all html commands to html.c.

	Removed useless mime commands.

	When processing an HTTP command, the entire mime header is grabbed
	before attempting to process the command.  The entire command + mime
	header is passed to the new exec_html_command () routine for
	processing.

	* floodd.h: Added extern declaration for password variable

	* main.c: Added password variable for admin interface.

Wed Apr 26 22:08:06 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* client.c: Added site name to estimates table labels.

Mon Apr 24 23:41:51 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* timeval.h, timeval.c, xmalloc.h, xmalloc.c: Initial revision

Mon Apr 24 23:07:25 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* statistics.c: Added versioning info.

	* group.h:
	Out of order entry.  Added the max_size field to the group structure.

	* group.c:
	group_site_add (): Check to see that a new site does not exceed the
			   maximum allowable group size (group->max-size).

	* config.c: Added group parameter max-size to limit group size.

	* topology.c:
	build_group_definition () - New function to set group parameters in
	topology update.

	generate_topology () - Calls build_group_definition ().

	* network.c:
	receive_topology() - parse `(group-define ..)' if found.  Allows
	master to set group parameters.

	Changed list_find () to LIST_FIND() to avoid compilation errors.

	* threads.c:
	Fixed division by zero error where double_factor might be zero.
	Fixed ping period intialization to be group specific.

	* client.c: Removed duplicate navigation bar in group page.

Sun Apr 23 20:53:25 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* topology.c: Initial revision

Sat Apr 22 22:26:47 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* queue.h: *** empty log message ***

	* queue.h: Initial revision

	* queue.c: *** empty log message ***

	* queue.c: Initial revision

	* properties.h: *** empty log message ***

	* properties.h: Initial revision

	* properties.c: *** empty log message ***

	* properties.c, parse.c, messagelog.h, messagelog.c, message.h, message.c, getopt.h, getopt.c, fd-config.c, fd-client.c, event.h, event.c, dynamic_string.h, datablock.h:
	Initial revision

	* commandlib.c: *** empty log message ***

	* commandlib.c: Initial revision

	* list.c, list.h: *** empty log message ***

	* list.h, list.c, group.h: Initial revision

Thu Apr 20 22:29:33 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* network.c:
	When receiving estimates, the sender of the estimates is header.id,
	not header.sender.  Fixed.

	* threads.c:
	If no other sites, bw_period in bandwidth_estimate_some_site() was
	not getting set.

	* io.c:
	For list_find() calls, added statistics_by_id as the comparision
	function parameter.

	* client.c:
	Changed list_find to LIST_FIND to avoid compilation warning about
	types.

	* datablock.c: Fixed a few typos.

	* client.c, network.c, threads.c:
	Added statistics_by_id paramter when calling list find on estimates
	list.

Wed Apr 19 00:25:06 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* statistics.c, group.c, config.c, io-handler.c, io.c, utility.c, client.c, datablock.c, siteinfo.c, main.c, threads.c:
	Initial revision

Tue Apr 18 23:57:43 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* network.c, floodd.h, Makefile.in: Initial revision

Fri Apr  7 16:17:08 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* timeval.c (timeval_subtract): Fixed a bug when the resultant
	  time could be negative.  Barfed on HPUX.

Sun Apr  2 17:33:00 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* threads.c: When randomly choosing sites to ping or perform 
	  bandwidth estimates on, keep track of which sites have been
	  probed to ensure that all sites get probed before a site is
	  probed again.

	* client.c (client_cmd_get): New HTML reference.  
          http://host/floodd/estimates
	  returns a matrix of the current estimates.

	* network.c (receive_estimates): 
	  Changed several function to only flood to relevant group.

	  (flood_datablock_to_group): New function to support the above.

	  (flood_datablock): Now implemented in terms of
	  flood_datablock_to_group().

	* threads.c: Make all treads group dependent.  Each group now has
	  it's own set of threads.

	  (send_estimates): Added "group" name to estimates.

	  Changed several function to only flood to relevant group.
Mon Mar 27 15:06:43 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* group.c (group_new): default topology connectivity set to 2.

Sun Mar 26 16:49:53 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* io.c: only compute bandwidth of datablocks are >= bandwidth_size

	* Changed nearly all calls to timeval_from_seconds() to 
	  variable_period() to avoid synchronous behaviour.

	* threads.c (initialize_events): Put random data in
	  bandwidth_block.

	* (variable_period): new function.  Given a period in seconds,
	  it returns a timeval according to period/2 + unif(0,1)*period/2. 

Mon Mar 20 15:21:29 1995  Dante De Lucia  <dante@inferno.datawave.net>

	* threads.c (bandwidth_estimate_some_site): Added fast bandwidth
	  estimation on startup. Erhyuant mods.
	  (ping_site): Same as bandwidth.

	  (initialize_events): Bandwidth estimator size parameter added.
	   (:bandwidth-size nnnn)

Thu Dec 22 14:12:42 1994  Dante De Lucia  (dante@inferno.datawave.net)

	* network.c (purge_sites): Delete statistics as well as sites when
	  purging.

	* main.c (initialize): changed sockets to bind to INADDR_ANY to
	  allow for multiply homed hosts.

Tue Dec 20 16:39:07 1994  Dante De Lucia  (dante@inferno.datawave.net)

	* client.c (client_cmd_statistics): Added patches to check for
	  unknown site ID's.

	* threads.c: Added patches for fast ping code from Erh-Yuan Tsai.

Fri Dec 16 15:27:55 1994  Dante De Lucia  (dante@inferno.datawave.net)

	* io.c (data_connection_write): move bandwidth computation into
	  a function called compute_bandwidth().  Moved computation of 
	  bandwidth out of datablock routines into io functions.  Added
	  bandwidth computations to outgoing as well as incomming
	  datablock events.

	* siteinfo.c (siteinfo_new): Initialized last_head_from to current
	  time.

	* threads.c (status_sweep): Added purge_sites.

Thu Oct 27 16:00:25 1994  Dante De Lucia  (dante@inferno.datawave.net)

	* datablock.c (datablock_read): Don't toss datablocks from unknown
	  hosts.  Can cause problem with trying to join a large group,
	  since we are unlikely to receive the topology from the master,
	  or known member.

Mon Oct 24 10:50:35 1994  Dante De Lucia  (dante@inferno.datawave.net)

	* parse.c: Added token_set_delimiters ().

Wed Aug 31 09:27:12 1994  Dante De Lucia  (dante@inferno)

	* network.c (purge_sites): Don't delete a group master.

Sun Aug 14 13:39:48 1994  Dante De Lucia  (dante@inferno)

	* config.c (parse_list_by_type): return NULL if cannot lookup an
	  object with a lookup method, or cannot create new object.

        * added allow/deny list to group.

Mon Jul 11 00:58:34 1994  Dante De Lucia  (dante@inferno)

	* siteid.h (struct SiteID).  Change address field to be a union of
	  unsigned chars and bytes.

	* datablock.c (datablock_allocate): don't return NULL if a zero
	  byte datablock length is requested.

Sun Jul 10 10:50:03 1994  Dante De Lucia  (dante@inferno)

	* siteid.h (struct SiteID): changed address from long to int, for
	  portability.

	* event.c (va_action_new): rewrote for portability.

Thu Jul  7 20:25:26 1994  Dante De Lucia  (dante@inferno)

	* io-handler.c (IODescriptor_by_fd): added type 'int' to paramter
	  specification. 

	* floodd: replaced perror() fprintf (stderr,..) calls with
	  syslog().

Tue Jul  5 10:28:09 1994  Dante De Lucia  (dante@inferno)

	* threads.c (event_thread): Changed param to `void'.

Wed Jun 29 16:12:17 1994  Dante De Lucia  (dante@inferno)

	* Minor version number incremented.

	* client.c (client_cmd_binary_read):

	  (ClientState) added send_to_siteid to allow datablocks destinated
	  to a specific site.

	  (client_cmd_binary_data): Modified to accept an optional third
	  parameter which can be either a siteid to send the data to, or
	  "neighbor" in which case a neighbor is randomly selected.

	* network.c (send_to_siteid): New function to send to a specific
	  site, given the siteid.

	* siteinfo.c (site_by_id): A siteid can now be either
	  inetaddr:data_port or inetaddr:client_port.

Fri Jun 24 02:25:24 1994  Dante De Lucia  (dante@inferno)

	* commandlib.c (cmd_execute_line): check to see that words[0] is
	  not null, thus preventing cmd_find() dumping core.

Thu Jun 23 23:57:50 1994  Dante De Lucia  (dante@inferno)

	* io.c (export_start): Only start exporting if there are
	  datablocks on the export_queue.

Mon May 30 21:22:16 1994  Dante De Lucia  (dante@loci.spirit.com)

	* threads.c (initialize_events): typo.  Set the bandwidth block
	  size to be 32 * 1024 instead of 32 * 102.

Wed May 25 11:27:37 1994  Dante De Lucia  (dante@inferno)

	* config.c (set_master): set master_site even if it has been set
	  before.  This will allow a changing of the master site.

	* client.c (client_cmd_groups): added space between group names 
	  when multiple groups are printed.

	* parse.c (return_token): check for null pointer at end.

	* group.c (group_topology_update): when receiving a new topology,
	  group membership is updated.

	* config.c (set_master): Add the master site to the group list
	  in case it was not mentioned in a (:site ...) entry.
	  (join_fields): added dummy ':group-name' entry.

Tue May 24 11:21:51 1994  Dante De Lucia  (dante@inferno)

	* datablock.c (datablock_read): Compute bandwidth only if
	  datablock is > 16K.

Thu May 19 23:49:40 1994  Dante De Lucia  (dante@inferno)

	* network.c (flush_hold_queue): Oops.  This should work now.
	  Sdi bug, i.e.:
	          if (nuclear_attack = yes)
	               send_missiles()

Tue May 17 11:09:25 1994  Dante De Lucia  (dante@inferno)

	* main.c: change directory to `/' to be a nice daemon.

	* io.c (data_connection_write): If a we get a wite error when
	  writing to a site, we assume that it went down.  This could
	  be for a variety of reasons, but lets just assume the worst.  In
	  any case, something bad is happening and we don't want to
	  immediately retry.

Sun May 15 15:55:00 1994  Dante De Lucia  (dante@inferno)

	* io.c (data_connection_read): Fixed memory leak in
	  data_block_read. state->datablock now freed on error 
	  condition.

	* client.c: moved client_count increment/decrement to
	  client_state_new/client_state_free.  Should clear
	  inconsistiences when reporting the number of clients
	  currently active.

	* utility.c (fgetnextline): Same fix as dynamic_string.h

	* client.c (buffer_insert_char): Same fix and dynamic_string.h.
	  (client_connection_read): output a prompt if we have processed
	  a command line and the current read function is
	  client_connection_read read.  This elimates the need for the
	  `output_prompt' global variables and handles multi-threading.

	* dynamic_string.h (string_append_string_field): Change
	  reallocation strategy to only allocate as much as is needed in the
	  case of a string, or to add 16 characters if appending a single
	  character when we run out of space.

	* client.c (client_cmd_statistics): put :log-sizes and :log-length
	  fields next to each other.

Tue Dec 14 21:38:12 1993  Dante De Lucia  (dante@inferno)

	* utility.c (find_myself): fixed coredump if name was NULL.

Tue Oct 19 08:27:42 1993  Dante De Lucia  (dante@inferno)

	* Restructures things to work with LightWeightProcesses.

