Sun Aug 25 15:02:31 EST 2002
	Releasing GNUnet 0.4.6.

Thu Aug 22 01:31:21 EEST 2002
	gnunet-gtk should now be able to perform multiple 
	search and download operations simultaneously (atleast a couple).

Tue Aug 20 23:11:10 EEST 2002
	Fixed segfault in gnunet-search and gnunet-gtk which appeared
	when there was lots of results.
	Modified gnunetd to return more results at once if there
	is excess bandwidth.
	
Sun Aug 18 23:57:10 EST 2002
	Reworked the lookup-database. The old database got
	into trouble storing data when it was 6% full. Some
	simulations show that the new approach should manage
	94% and should be about as fast (more CPU, presumably
	slightly fewer random disc accesses).
	This change is INCOMPATIBLE with 0.4.5. You *must*
	run "gnunet-check -a" before starting this new version
	of gnunetd in order to migrate to the new format. For
	database simulation and statistical numbers, see
	also src/historical/simula.c.

Fri Aug 16 17:07:15 EST 2002
	Releasing GNUnet 0.4.5.

Fri Aug 16 16:43:39 EST 2002
	Added feature that will allow the specification of
	multiple URLs for downloading the initial hostlist.

Mon Aug 12 02:28:14 EST 2002
	Fixed big problem in requestmanager that would
	make downloads *very* slow for no good reason
	at all (ttl increment in wrong place would make
	us defer the next request for more than twice
	as long as needed, plus some other minor bugs).

Mon Aug 12 01:31:03 EST 2002
	Fixed bug #347 (option "-H" to gnunet-clients for 
	connecting to a remote gnunetd node).

Mon Aug 12 01:10:17 EST 2002
	Fixed bug #348 (no more scan of the entire database
	on startup, instead the databases (gdbm, tdb) contain
	an entry that gives the nubmer of entries). Note that
	this is not done for contentdatabase_directory.

Sun Aug 11 17:00:03 EEST 2002
	Crude file insertion capabilities added to gnunet-gtk gui.

Thu Aug  8 19:13:34 EST 2002
	Added progress bar / printing of insertion status to
	gnunet-insert (option "-V").

Thu Aug  8 19:02:33 EST 2002
	Cleaning up code (establishing sessions, etc.)

Thu Aug  8 18:03:05 EST 2002
	Fixed bug #343 (overflow in stats) by moving to
	long long. Let's hope that __BYTE_ORDER is
	actually defined outside of netinet/in.h.

Thu Aug  8 17:47:17 EST 2002
	Fixed gnunetd segfaulting if gnunet.conf is not 
	available. Also, recvfrom returning -1 with
	errno == EAGAIN was fixed earlier.

Wed Jul 31 23:38:36 EST 2002
	Released 0.4.4.

Wed Jul 31 21:35:53 EST 2002
	Fixed bug with TCP connection that would not
	free thread resources and eventually lead to
	gnunetd not being able to start new threads 
	anymore (mantis: #339).

Tue Jul 30 23:38:51 EST 2002
	Fixed SIGHUP exiting. The main loop was exiting
	because recvfrom returned -1 with errno EINTR,
	which caused us to break out of the main loop.
	Also added gnunetd.pid file to simplify killing
	(or re-reading configuration of) the server.
	You must specify the PIDFILE in gnunet.conf!

Tue Jul 30 20:38:47 EST 2002
	Started writing code to enable re-reading of the
	configuration file whenever we receive a SIGHUP.
	Works, except that after we've read the new
	config file, gnunetd exits (unknown why). 

Mon Jul 29 18:52:23 EST 2002
	Added shutdown code that terminates connection when 
	SIGTERM is received (to avoid keeping lots of UDP
	traffic for the next couple of minutes from hosts
	that still believe we're up).
	
Sat Jul 27 12:39:47 EST 2002
	Added code to measure network load asymmetrically (useful
        for DSL users).

Fri Jul 26 22:46:54 EST 2002
	Released 0.4.3.
	
Wed Jul 24 21:13:08 EST 2002
	Fixed bug in locking and segfault (Linux tolerated,
	BSD crashed, both in connection.c), added logging service.

Tue Jul 23 00:41:17 EST 2002
	Made gnunetd fork like a nice deamon should. Also
	started to add a logging service.
	
Sun Jul 21 20:39:20 EST 2002
	Fixed issue with check_database (index checking too
	strict if content is available in database and 
	on-demand encoded; also a bounds check was missing).

Sun Jul 21 16:05:20 EST 2002
	Fixed deadlock in heloexchange (knownhost requires
	recursive lock).

Sun Jul 21 02:02:32 EST 2002
	Improved routing table. Now does more dynamic memory 
        allocation, reducing the fixed-size per slot from 700
	to 56 bytes. Increased number of slots from 512 to
	8092 (which is the optimal number for a 56 kbps 
        modem connection).

Sat Jul 20 23:57:06 EST 2002
	Fixed bug that caused problems for files
        that were indexed and that had spaces in 
        the filename.

Wed Jul 17 22:50:24 EST 2002
	Fixed bug that prohibited a transitive HELO exchange
	in many cases.
	
Wed Jul 17 01:48:44 EST 2002
	Fixed a couple of bugs in gnunet-check and the
	insertion-tools. Now gnunet-check seems to run like
	a charm. Running it to detect and fix problems in
	the GNUnet databases seems now recommendable :-).
	Note that you must stop gnunetd before running 
	gnunet-check.

Mon Jul 15 22:27:45 EST 2002
	Added return values for insertion. If we run out of
	space (in particular for the fixed-size index
	database), we can now communicate the problem to the
	user.
	gnunet-check is now pretty much feature-complete,
	but it takes of course very, very long to run. There
	is now also a man-page for gnunet-check.

Thu Jul 11 11:33:34 EST 2002
	Added randomized order of blocks for the download
	(patch by I. Wronsky).

Thu Jun 20 21:13:21 EST 2002
	Added HANGUP, a message send if one side terminates the connection.
	Sending the message is optional, but it is nicer to have it. Also
	started on gnunet-check, a tool to check database consistency.

Thu Jun 20 03:11:01 EST 2002
	Improved handling of collisions in the hashes in the
	lookup module (uses no longer a linear scan on the
	collisions file but a hashtable for the collisions!).	
	
Tue Jun 18 20:29:38 EST 2002
	Released GNUnet 0.4.2.
	
Tue Jun 18 20:20:55 EST 2002
	Fixed bugs in blacklisting IPs. Added feature to allow specification
	which networks are trusted enough to connect to the trusted TCP
	port (TCP/2086 no longer needs to be firewalled!).
	
Tue Jun 18 02:35:53 EST 2002
	Fixed problems with ttl (negative TTL queries were forwarded),
	also better flushing of buffers and fewer SKEY exchanges due to
	a now working implementation of the blacklist. A DNS lookup for
	the NAT-box-IP configuration was also added.

Sun Jun 16 04:11:01 EST 2002
	Added code to provide statistics (gnunet-stats).
	Incomplete.

Sun Jun  9 22:56:02 EST 2002
	Released GNUnet 0.4.1.
	
Sat Jun  8 05:00:36 EST 2002
	Several small bugfixes (list of shared files not updated on 
        insertion, highest-bit of trust not interpreted as dirty,
        rpm dependency on libextractor added.
        Also many improvments to the build process.

Wed Jun  5 17:01:58 EST 2002
	Made sure that HELOs don't trigger Ping-Pong if we don't
	really learn anything new.

Tue Jun  4 17:17:45 EST 2002
	The port numbers were not in network-byte order. Fixing
	this is trivial, but it breaks compatibility with 0.4.0. 
	Thanks to Rick Kennell for reporting the endianess issue.
	
Mon Jun  3 20:35:47 EST 2002
	Fixed bug with CRC not endian-converted in gnunet-gtk.
	Added mimetype and filename support to gnunet-gtk.

Sun Jun  2 03:52:18 EST 2002
	Released 0.4.0.

Sat Jun  1 22:13:12 EST 2002
	Added three-way handshake for SKEY exchange. Not tested.
	
Sat Jun  1 16:55:18 EST 2002
	Fixed potential DDoS problem where malicious hosts could
	trick GNUnet servers to repeatedly probe a non-partitipating host
	trying to establish a connection. I wonder how many other
	p2p systems are vulnerable. (Fix: after HELO, play PING-PONG).
	The endianess issues should be fixed throughout the system, but
	not tested on a real machine so far. 	

Sat May 25 15:55:11 EST 2002
	Moved to new CVS server. First changes towards 0.4.0:
	* mostly-big-endian
	* insert/index via TCP
	* bugfixes (mostly performance)

Sat May 18 16:00:06 EST 2002
	Added mimetype, filename and version number to RootNodes
	(mostly incompatible change!). Added automatic generic keyword
	and mime-type extraction via libextractor to gnunet-insert.

Tue May 14 23:59:40 EST 2002
	New storage database is starting to look good. We can now store
	the data in a directory (one file per block), a gdbm database,
	and presumably (not tested) in a tdb database. 

Sat May 11 22:10:56 EST 2002
	Completed, deployed and tested the new TCPIO code. This changes
	the gnunetd-client protocol. Essentially, we convert the TCP stream
	into records with a length and type header. This should allow us
	to fix bug #212 and add other features in the future. The current
	change is really only changing the core TCP code and not anything
	around it. We should deploy some demultiplexing code later.

Tue May  7 20:56:40 EST 2002
	Added IP blacklisting (for virtual private networks).	

Sat May  4 14:08:23 EST 2002
	Fixed bug with bad insertion of files smaller than 1k.

Fri May  3 23:25:16 EST 2002
	Added IP change detection (useful for dialup) [bug #272].
	Added code to ensure that a HELO is life instantly
	after receiving it, fixing the 'unknown host,
	refusing SKEY problem' (bug #273). Other minor	
	bugfixes (#274, #283).

Sun Apr 14 22:36:03 EST 2002
	Added option to allow NAT boxes not to exchange
	foreign HELOs and thus expose the private
	network. Fixed bug that all other hosts should
	in fact do this exchange.

Sat Apr 13 11:02:59 EST 2002
	Make sure that files are readable before returning TRUE
	in assertIsFile()

Fri Apr 12 03:01:06 EST 2002
	Added padding messages with random if maximum
	packet size is not reached. All encrypted
	packets now look absolutely uniform in size
	for a non-participating adversary (before,
	a host that had few queries may have sent packets
	that were less than the maximum size).

Thu Apr 11 01:43:28 EST 2002
	Added sequence numbers to protocol to defend
	against replay attacks (bug #185). 

Wed Apr 10 02:07:25 EST 2002
	Bugfix gnunet-insert-mp3 (endless loop). 
	Updated documentation.
	
Mon Apr  8 00:07:15 EST 2002
	Fixed endless-loop bug when activemigration is turned
	on (during startup).
	
Fri Apr  5 02:03:13 EST 2002
	Released 0.3.3.
	
Fri Apr  5 00:33:42 EST 2002
        gnunet-gtk, the gtk+ based GUI is now functional and
	has all the features of gnunet-search and gnunet-download,
	including boolean queries. In fact, it is a bit better than 
	gnunet-download as it shows the progress of the download.
	The manpage for gnunet-gtk was updated. Minor bugfixes.
	
Mon Mar 25 02:59:13 EST 2002
	Changed writeFile to use a fourth parameter which is the
	desired permissions for the file. Files in data/hosts
	are now world-readable.	Created man pages

Mon Mar 18 17:56:52 EST 2002
	Released 0.3.2.

Sun Mar 17 10:47:51 EST 2002
	Got rid of far too frequent key exchange attempts.
	Added expiration for very-long-dead host keys. Stopped
	forwarding of expired HELOs (receiver drops anyway).	

Wed Mar 14 05:46:20 EST 2002
	Fixed some file location inconsistencies. All files are
	now in $HOME/GNUnet. RPM installation points to /var/GNUnet
	and the config file is ~/GNUnet/gnunet.conf
	Finished port to FreeBSD. This included mostly changes
	to src/util/statuscalls.c, but also several changes to 
	the build system. Added a stat() call in the server code
	to make sure the config file exists before sending it to
	the OpenSSL conf code. Added getopt to source to fix
	portability issues. Changed FREEBSD defs to SOMEBSD, also
	changed in configure.in. Compiles and works on at least
	FreeBSD 4.5 and OpenBSD 3.0

Wed Mar  6 23:15:36 EST 2002
	Added code for 'fast scan' of the database for
	content to discard (should be called partial
	scan). This improves the startup-time dramatically.
	Every source file got the GNU header. 
	
Tue Mar  5 22:42:36 EST 2002
	Added option for *not* participating in content
	migration. Added timeout option to gnunet-search.
	gnunetd now periodically (1h) scans for new content,
	no restarting required. 

Mon Mar  4 23:21:51 EST 2002
	Optimized routing and content migration. Distance
	of the hash to the identity of the local host is
	now taken into account for routing. Hosts give
	higher priority to content that is close to their
	identity (priority towards keeping it). If the 
	network grows, this should significantly improve
	the performance. Also, the choice of the hosts
	for routing is now based on proximity (to the
	query), the activity level of the host and its
	credit ranking.

Sun Mar  3 00:14:58 EST 2002
	Implemented binary queries ("AND") for gnunet-search.
	Made sure that content is not downloaded again if
	already present (if there is other content, we
	overwrite). Fixed bug in gnunet-download 
	(uninitialzied time-to-live).
	
Sat Mar  2 01:57:37 EST 2002
	Finished porting the download-code to C. Now files can
	be downloaded in using shell commands. No GUI though.
	Released GNUnet v0.3.1.

Wed Feb 20 23:47:19 EST 2002
	Big CVS moving operation. 

Sat Feb 16 23:17:27 EST 2002
	Started migration to GNUnet. 

Sun Feb  3 01:20:37 EST 2002
	Extracted crc32 method from zlib and put only that method into
	primitives. Reduces our memory footprint (if nobody else uses
	zlib) and we no longer depend no that library (always good).

Sat Feb  2 22:56:32 EST 2002
	Building final tarball for v0.3.0. 

Wed Jan 30 23:41:04 EST 2002
	Created mp32gnet, a tool to automaticall index mp3 files
	using information from the mp3 header as keywords (title,
	artist, album, comments). The mp3 parsing code comes from
	the GPL tool mp3info.

Tue Jan 29 17:36:48 EST 2002
        Fixed bug with files that were not closed under certain
        circumstances and lead to an exhaustion of the number of
        concurrently open files.

Mon Jan 21 23:34:44 EST 2002 
	Bumping version numbers to v0.3.0 (not yet released, needs some
	more testing to be on the safe side).
	
Sun Jan 20 02:09:06 EST 2002
	Content gathering now discards the least important
	content in favour of new, more important content (if
	there is not space for all content). The cron
	management is now used everywhere. The rpm, the init-script
	and the gproxy shell script have been revised.
	
Sun Jan 13 23:17:58 EST 2002
	Created cron management, replacing old control
	thread (allows for better timing of events).
	EvaluateContent now gets the priority of the
	query that the content had.
	
Sun Jan 13 00:54:56 EST 2002 
	Improved choice in number of hosts to forward
	queries to (now dynamic, depending on priority, etc.)
	Removed many, many allocations in print statements
	which also caused memory leaks if active (see 
	debugging.h).
	Added CRC checking of the root node in GProxy. Fixed
	problem with CRC in IBlocks for large files.
	Added dialog to GProxy to choose where to save the file.

Sat Jan  5 14:25:31 EST 2002
	Optimized routing table. Routing table is now a hashtable
	(collisions are handled by droping either the former or the
	new entry). Each bucket has it's own lock, the global
	semaphore is gone. The table has many more entries (we can
	afford that now that there is no longer a linear search).

Wed Dec 26 19:30:41 CET 2001 
	Created v0.2.0

Tue Dec 25 21:24:18 CET 2001 
	Fixed TTL errors that made queries loop. Added host-evaluation
	to policy (drop packets from untrusted hosts under load). Found that CRC-errors
	are related to policy decisions ("drop"), cosmetic fix.

Sun Nov 25 08:10:52 EST 2001
	Added triple-hash functionality and on-demand encoding (lookup.c). 

Sat Nov 24 07:46:10 EST 2001
	Added randomized choice of hosts for the hosttable.

Thu Nov 22 04:57:57 EST 2001
	Fixed another bunch of big bugs, tested, seems to work smoothly. Creating V0.1.0.

Mon Nov 19 01:22:42 EST 2001:
	Fixed biggest (show-stopper) bugs. Creating V0.0.3

Fri Oct 26 02:20:00 EST 2001:
	Created ChangeLog. Report important changes here,
	report small changes to CVS only.
