2004-12-12  David Smith  <courierdave@users.sourceforge.net>
	* hotwayd.spec: hotsmtpd and hotwayd config files were writing
	over each other. Made the installation a little smarter

	* configure.in: Improved detection of cyrus-sasl2, now it will
	make sure you have v2 before allowing hotsmtpd to be made.

	* commands.c: Added better hotsmtpd message post handling. Now it
	is possible to use hotsmtpd with lycos/spray as well. Should
	handle any errors better as well. 

	* commands_smtp.c: Fixed a bug (967167) causing message sending
	not to work with lycos/spray. 

	* libghttp-1.0.9-mod/md5.h: Fixed bug  922142 thanks to Malcolm
	Lashley. Wrong assumptions about the size of long ints were being
	made on 64-bit machines. Now hotwayd should be 64-bit friendly.

2004-12-03  David Smith  <courierdave@users.sourceforge.net>
	* xmlstuff.c: Added some parsing fixes to prevent crashing out

	* hotwayd.c: Add nice(20) to set lowest priority for hotwayd
	processes. Added back httpmail_init() to get cookies initally, it
	seems some cookies were not getting set with the "optimised" login
	procedure I created earlier.

	* commands_pop3.[ch]: Put httpmail_init() back in.

	* commands.c: Added check before freeing cookies. Incorporated
	patch 1050318 to fix UIDL buffer size problem.

	* hotsmptd/hotsmptd.c: Incorporated patch 1047535 for protocol
	fixes and bug fix. Fixed bug 1063604 which was causing seg faults
	due to argc/argv problems & updated return code to follow SMTP
	standards. Added patch 1065443 to fix authentication issues with
	kmail.

	* hotsmtpd/Makefile.am: Fixed compilation issue with cygwin
	

2004-02-07  David Smith  <courierdave@users.sourceforge.net>

	* hotsmtpd: added a first version of hotsmtpd which allows SMTP
	based message sending via HTTPMail servers. Thanks to Trever
	L. Adams for the patch.

	* Makefile.am/configure.in: added support for hotsmtpd and
	detection of cyrus-sasl libs.

	* commands.c: moved some common functions into here. Made some
	global variables static. Added support for hotsmtpd. Fixed bug
	888415 which caused a Bus Error to occur on OS-X when using the -a
	flag.

	* xmlstuff.c: Added support for hotsmtpd.	
	
2004-01-29  David Smith  <courierdave@users.sourceforge.net>

	* commands_imap.c: Updated functions to use open_folder_ptr
	instead of folders_list.

2004-01-26  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: Moved grow_and_copy() into here. Removed global
	variables and moved functions getmessage() lazy_dump() and
	lazy_handler() into commands_pop3.c..

	* commands_imap.c: Added support for UID xxx commands. Implemented
	EXPUNGE and CLOSE. Changed inbox opening to allow for "INBOX"
	because Mozilla Mail insists on making it all-capitals even though
	lsub returns lowercase. Moved libghttp based handler functions
	into commands_imap_handlers.c including downloading of headers and
	messages. Added support for more FETCH including RFC822.SIZE.

	* commands_imap_fetch.c: Fixed some more bugs and added
	implementations for lots more FETCH commands including
	BODY[]<x,y>. 

	* commands_pop3.c: Moved lazy_hander and lazy_dump into here.

	* hotimapd.c: Added support for more FETCH style commands. Added
	support for UID xxx based commands. Moved lazy_set fn call out.

	* xmlstuff.c: updated for IMAP to remove stored header upon
	cleanup.

2004-01-20  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: Rewrote the header downloading routine for IMAP
	because realloc()s were acting strange. Also optimised it so it
	only reads when necessary and fixed a few other bugs.

	* commands_imap_fetch.c: Implemented FETCH(BODY[HEADER])

	* hotimapd.c: Fixed a bug with FETCH implementation. 

	* hotwayd.1: Added some comments about using "http://" for -p
	flag.

2004-01-18  David Smith  <courierdave@users.sourceforge.net>

	* commands_imap_fetch.c: Fixed some bugs and completed
	implementation of FETCH (ENVELOPE) except for group addresses.

	* hotimapd.c: Fixed implementation of FETCH. 

2004-01-17  David Smith  <courierdave@users.sourceforge.net>

	* cache.c: removed unused variable	
	
	* commands.c: added access control for users trying to access the
	daemon (thanks to Domingo Alczar for the basis patch).
	
	Moved function definitions into .h files

	Update types in some function calls.

	* commands_imap.c: Fixed a potential problem with uninitialised
	variables.

	* commands_imap_fetch.c: Fixed a bug reporting flags.

	* commands_pop3.c: Definition updates

	* hotimapd.c: Some errors reporting bugs have been fixed.
	
	* hotwayd.c: added access control interface to command line
	arguments.

	* hotwayd.1: include -a switch and improve descriptions.

	* xmlstuff.c: Definition updates

2004-01-16  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: updated update_readmark so it doesn't bother if the
	readmark is already the same as on the HTTPMail server.

	* commands_imap_fetch.c: continued on the implementation of FETCH
	(ENVELOPE)

	* commands_pop3.c: added functionality to update readmark after
	downloading a message

	* hotwayd.c: added flag -r which will update the readmark on the
	HTTPMail server after downloading a message via POP3.
	
2004-01-08  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: Added a lazy_handler_buff to take care of the header
	processing in IMAP fetch command.

	* commands_imap.c: Added functions to get the header of a
	message. Required for IMAP FETCH. 

	* commands_imap_fetch.c: Added a header parser function to
	implement the FETCH (ENVELOPE) command of IMAP. Not complete yet.

	* hotimapd.c: Fixed a bug in fetch command using wrong string
	length. 

	* libghttp-1.0.9-mod: added support for lazy buf downloading

2004-01-03  David Smith  <courierdave@users.sourceforge.net>

	* commands_imap_fetch.c: Added this file which implements the
	FETCH command for IMAP.

	* commands.c: Changed the '.\r\n' output at end of message to
	'\r\n.\r\n' because hotmail server doesn't always end message with
	new line.

	* commands_imap.c: Added some util functions for FETCH
	implementation. 

	* hotimapd.c: Added FETCH command detection and execution.

	* hotwayd.h: Added data structure for fetch_cmdtable

2003-12-08  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: delmessage() function removed and replaced with
	cp_mv_msg. As delmessage is simply moving a message to the trash
	folder. This allowed an easier implementation of the IMAP COPY
	command to be made without rewriting code. 

	Made several new functions here including del_href() to move that 
	href to the trash folder, update_readmark() to mark a message as
	read or unread on the server, proppatch() which is an
	implementation of the PROPPATCH HTTP request and a function to
	check return codes for better error checking.

	* commands.h/commands_imap.h/hotwayd.h/httpmail.h: Some new error
	codes and updates.

	* hotwayd.1: added details of the -v flag

	* xmlstuff.c: Added function build_propertyupdate_str() to build a
	propertyupdate request to send to the server. This is used to
	update the read flag of a message.

	* hotimapd.c: Added STORE implementation. Added COPY
	implementation. Added usage -v flag info. Updated main_loop to
	accept bracketed arguments for commands like STORE. Changed
	argv[x] args to more reader friendly names. Made internal
	functions static.

	* commands_imap.c: Added httpmail_copy() implementation. Added
	httpmail_store() implementation. Added readonly flag for examine
	command.

2003-12-05  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: Added a few more checks for null pointer exceptions. 

	* commands_imap.c: Added functions to create the UIDs required by
	IMAP.

	Implemented SELECT/EXAMINE and LIST/LSUB.

	* commands_pop3.c: minor semantic changes.

	* commands_imap.h: file added.

	* httpmail.h: added storage for date and UID used by IMAP

	* xmlstuff.c: Tried to modularise code a little bit more so that
	the filling of FOLDER_STRUCT lists can be achieved easier.

	Added BuildXMLFolderList to build the folder_list structure
	located in commands_imap.c

	Added some cleanup functions to prevent callocing already calloced
	memory.

	* hotimapd.c: Added implementation for LIST/LSUB and
	SELECT/EXAMINE. 

	Modified the way arguments are read in so that arguments with
	spaces are read in correctly. 

	Fixed the states so that they are detected properly.

2003-11-31  David Smith  <courierdave@users.sourceforge.net>

	* commands_imap.c: Added this file for the IMAP specific command 
	implementation.

	* hotimapd.c: Added this file which handles the command mappings
	and issues commands for commands_imap.c.

	* Makefile.am: Added support for automated hotimapd binary
	creation.

	* commands.c: Changed password variable to dynamic allocation. 

	Added a generic function to fill in FOLDER_STRUCT structures

	* commands.h/hotwayd.h: rearranged definitions

	* hotwayd.c: minor bug fixes

	* commands_pop3.c: moved a little bit of functionality into
	commands.c to allow reusability with IMAP code.

2003-11-30  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: removed some bad global variables being used by
	lazy_handler and lazy_dump to keep track of where they are.

	Updated getmessages so that it detects and reports errors
	downloading messages (thanks Naomi Yamakawa)

	Fixed some problems with message caching.

	* commands.h: added error levels for getmessages function

	* hotwayd.c: removed some global variables, made them local

	* commands_pop3.c: removed some global variables and updated the
	usage of getmessages function.

2003-11-29  David Smith  <courierdave@users.sourceforge.net>

	To simplify the process of creating an IMAP daemon I moved all of
	the POP3 specific code from commands.c into commands_pop3.c and
	reorganised quite a bit of the code to remove some yucky global
	variables and make reuse of the common command functions in
	commands.c much easier.

	* commands.c: the global "inbox_props" which used to hold the data
	for a folder as specified upon login has been removed and each
	function modifies a FOLDER_STRUCT passed to it via the
	arguments. This means we can work on multiple folders when using
	IMAP without having to lose all of the previous folder info. 

	Trash href is now a global var here.

	Moved lazy_dump and lazy_handler from hotwayd.c into here.

	Moved all POP3 specific files into commands_pop3.c

	Did some general cleanups.

	* hotwayd.c: Moved lazy_dump and lazy_handler into commands.c

	* commands.h: File added. Some definitions for commands.c are in
	here.

	* commands_pop3.c: File added. All POP3 specific commands are now
	in this file.

	* VERSION&&hotwayd.spec: Version updates.

	* hotwayd.1: Removed version number from manual file, fixed type
	with logging level (thanks John Nielsen)

	* xmlstuff.c: ParseXMLFolderRoot now takes a TRASH_STRUCT instead
	of FOLDER_STRUCT as argument, functionality unchanged.

	* httpmail.h: Changed inbox_props_struct to folder_props_struct

	* hotwayd.h: Updated function definitions.

2003-11-01  David Smith  <courierdave@users.sourceforge.net>

	Version 0.7.1 - minor bugfix
	
	* xmlstuff.c: Changed the handling of errors from libxml2 so
	that they longer print to stderr. If logging level is >2 then
	they will print to your log file. Same for warnings. This was
	causing a problem with libxml2 >= 2.6.1

	* hotwayd.c: Added logging level 3.

2003-10-18  David Smith	 <courierdave@users.sourceforge.net>

	Closer towards version 0.7 :-)

	* libghttp-1.0.9-mod/http_lazy.c: Now we report the total length
	of the message we are about to grab to the handler function to 
	prevent calling a read when there is no data waiting, which 
	prevents a stall at the end of a message when using lycos/spray 
	and when using a proxy server.

	* commands.c: Added support for various other lycos mailboxes
	and spray.se mailboxes, could possibly be more..

	Fixed a memory allocation bug with the serverurl when it changes
	which was causing memory corruption of the response headers.

	Removed some passing of global variables via function calls,
	what's the point?

	* hotwayd.c: Prevent the daemon from hanging at end of retr and 
	top when waiting for more data from a socket that has no more
	data to read. Instead we use the Content-Length field of the 
	header to "know" when we have reached the end of the data. We
	just hope the sending server doesn't lie to us about the 
	Content-Length :-)
	
2003-10-16  David Smith  <courierdave@users.sourceforge.net>

	Towards Version 0.7...
	
	* commands.c: Added in new support for lycos.co.uk mailboxes,
	this also involved added the Basic authentication scheme into
	the authentication schemes that hotwayd could recognise. This
	is done via libghttp.

	Changed logging output to be command line configurable.

	Had to modify invalid password handling to allow detection 
	when using a proxy server. 

	* hotwayd.c: Minor fixup with error messages and added in 
	support for logging levels. 

	* xmlstuff.c: Added support for logging levels

	* libghttp-1.0.9-mod/ghttp.c: Fixed allocation of URI which
	was causing proxy support to fail with error message that
	inbox cannot be found.

	* libghttp-1.0.9-mod/http_req.c: Memory allocation issue 
	when using proxy resolved.

	* libghttp-1.0.9-mod/http_resp.c: Needed to make it detect \n\n
	in addition to \r\n\r\n between header and body of HTTP response
	as lycos was only sending \n\n and causing this code to bomb out.
	This also meant some magic numbers in here had to be changed.

2003-09-24  David Smith  <courierdave@users.sourceforge.net>

	* commands.c: Bit of code cleanup and changed handling of
	ParseXMLResponse so that it is now split into 3 functions. See
	xmlstuff.c for more details

	* hotwayd.c: Made it so cache doesn't reset on unknown command. 

	Made it possible to get a particular folder by putting it after
	the domain name. E.g. to get the inbox, which is already the
	default anyway, use: user@hotmail.com/inbox as the login. 

	Don't run the stat command twice on login now, should speedup a
	tiny bit.

	* xmlstuff.c: Split ParseXMLResponse into ParseXMLFolderProps,
	ParseXMLMsgList and ParseXMLFolderRoot. 

	Modified folderprops so that you can get the properties of any
	folder which is passed to it as an argument. Now the href is set
	inside this function. Before it was hardcoded for the inbox in
	ParseXMLResponse. 

	Added error checking for XML encoding alias allocation.

	Tried to make it a bit easier to follow the code in here through
	tidyup. 

2003-09-20  David Smith  <courierdave@users.sourceforge.net>

	Version 0.6

	* commands.c: Overhauled login error reporting. Now it shouldn't
	randomly present an error with incorrect username/password and
	should report login problem more precisely. 

	Added in proxy support via libghttp - couldn't test it though as I
	don't have a proxy server. Thanks to Frank Schckermann for an
	implementation guideline via his patch.

	Also changed the username handling so that it can handle a
	username of any size, should solve any long username problems. 

	Can now specify addresses as xxx%hotmail.com xxx%msn.com should
	you have problems with supplying an @. Thanks to Johannes Berg for
	the patch.

	* hotwayd.c: Similar to commands.c added in better login error
	reporting and added proxy support. Proxy details provided via
	command line, check README or website for more details.

	* httpmail.h: Added in INVALIDUSER define. It _seems_ to be that
	an invalid username triggers a 503 server busy response. So this
	is now detected via commands.c
	
2003-05-05  David Smith  <courierdave@users.sourceforge.net>

	Version 0.5.3
	
	* hotwayd.c (user_cmd): Fixed up login problem where people have
	long login names for hotmail.com addresses. hotwayd no longer
	sends the complete email address to the server (i.e. now only
	sends the username like 0.4.x). msn.com address still send the
	domain name as it is required by the servers.

	* Makefile.am: Updated makefiles

	* hotway.spec: First attempt at RPM packages

	* command.c (httpmail_uidl): UIDL was not reporting +OK after
	second execution due to not being written to cache, fixed in this
	version

	Added option to only operate on messages marked as unread on the
	hotmail/msn mail server, refer to httpmail.h or check
	http://hotwayd.sf.net/faq/ for more details.

	
2003-02-21
	Version 0.5.2 (RenE Bertin & JBM)
	-	A few minor cleanups (including the last malloc() of a msg_props 
		entry).
	- Implementation of a caching scheme. This speeds up operation
		somewhat (or a lot, depending on your situation):
		* clients that issue a STAT immediately after the login 
		  operation get the result from the login, without an additional
		  query of the server. This kind of caching times out after 30s
		* getting the message for either a TOP or a RETR results in
		  persistent caching of the message; a subsequent TOP or RETR 
		  on the same message will be almost instantaneous. This speeds 
		  up things for clients that do a TOP on each (new) message 
		  first and/or always do a RETR when a message is selected 
		  (StarOffice 5.2 Mail, e.g.). This caching is persistent as
		  the message is not supposed to change on the server (and 
		  properties like the read mask are determined by the STAT 
		  command).
	-	Updates to the ghttp libraries thanks to Josh Myer
	-	Updates to caching system and other fixes thanks to Josh Myer
	-	Added timeout to getlist function to allow for changes to the
		mailbox due to changes on the web interface. Currently set to
		2 minutes (David Smith)
	-	User name verification tuned to occur directly after the USER
		command rather than after the USER/PASS combination (DSmith)
	-	More fixes to the xmlstuff.c file to update the structures
		after commands like DELE. (DSmith)
	-	Minor change to included files of inet.c to fix a compilation
		bug with FreeBSD (David Smith)
	-	Updated configuration scripts (David Smith)
	-	Updated web page :-) (David Smith)
	
2002-10-23
	Version 0.5.1
	-	Resolved an issue with the STAT command after re-logging in 
		(RenE Bertin)
	-	Implemented 'byte-stuffing' (RenE Bertin; thanks to 'voicebox' 
		who pointed this one out)
	-	Modified commands.c to handle msn.com accounts (RenE Bertin)
	-	Included patch to commands.c to cope with certain proxies 
		and redirection (RenE Bertin)
	-	Modified configure.in and Makefile.am to support libghttp as 
		a static library
		(that still has to be built manually; developers only) 
		(RenE Bertin).
	-	Administration of the hotwayd project has been transferred to 
		David Smith and RenE Bertin!

2002-09-24
	Version 0.5
	-	Implemented TOP command (thanks to RenE Bertin & Timothy Lee)
	-	Minor cookie handling corrections (RenE Bertin)
	-	Clearing of global variables improved at termination of login
		& UIDL corrected to correspond to RFC1939 specs. Improved
		configure/makefile scripts (David Smith)

2002-07-08
	Version 0.4-R2 - David Smith & RenE Bertin
	-	Changed printfs to fputs (RenE Bertin)
	-	Improved null pointer checking in xmlstuff.c
	-	Improved configure script to link all libraries that libxml2
		depends on (RenE Bertin)

2002-07-07
	Version 0.4-R1 - David Smith
	-	Changed xmlstuff.c so that it handles xml nodes in any order
		which prevents the segfault from previous version

2002-06-16
	Version 0.4 - David Smith
	- 	Failure when logging in is now reported to mail client via standard
	  	POP-3 messages. (in commands.c)
	- 	Removed all internal queues from xmlstuff.c which would overrun if
	  	there were too many messages or too many folders.  Now it
	  	should be able to handle a hotmail account with an unlimited number
	  	of folders.
	- 	Added some more checks to make sure we don't try to allocate
		memory to null pointers and don't try to copy data from a null
		pointer.
	-	Fixed some pointer/array memory allocations as described by
		Korwin Smith and R.J.V. Bertin
	-	Restored global variables for cookies when clearing in
		command.c

2002-05-11
	Version 0.3-patched - Korwin Smith
	- 	Only authorise when asked via message 401.
	-	Fixed cookie management - some old cookies were being
		overwritten by new cookies.
	- 	Removal of internal queues from function msglengths in
		xmlstuff.c and improved xml node tranversal.
	-	Clear memory in http_digest.c were references were being made to
		internal pointers to struct.

2002-05-03
	Version 0.3 - Frank de Lange
	-	Memory allocation errors made the program dump core in many cases.
		Fixed there errors.
	-	Started changing insecure functions to more secure versions (strlcat,
		strlcpy, snprintf). Included strlcat and strlcpy source from OpenBSD.
	-	Program was looping because of authentication errors. Made program
		use Authorize: header only on explicit request from server to get
		out of those loops... Outlook behaves like this, so this program
		should do so as well...
	-	Made program compile without warnings with -Wall
	-	Fixed Makefile.in so it includes the xml2 header include directory
		This needs the xml2-config program, which should be available on
		any box which has libxml2 installed.
	-	According to RFC 1939, a POP server should be able to handle
		the RETR command immideately after entering the TRANSACTION
		state. For this to work, we need to do an implicit STAT on the
		mail store, otherwise RETR will fail. The STAT will also produce
		the needed +OK response.

2001-12-13
	Version 0.2
        libghttp is now statically linked. (bigger binary but easier to install)
        Thanks to: David McClosky <dmcc@bigasterisk.com>
        Changed User Agent to MS Outlook.

2001-04-18
	First Release
