2008-12-25  Alvaro Lopez Ortega  <alvaro@octality.com>

	* 0.11.6 released

	* cherokee/handler_dbslayer.c (send_query): Fixes a parsing
	problem: http://code.google.com/p/cherokee/issues/detail?id=292

2008-12-22  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/connection.c (cherokee_connection_recv): Fixes a
	problem with lengthy https POSTS. This patch is based on the
	previos Stefan's patch: Stefan de Konink <stefan@konink.de>.
	Fixes: http://code.google.com/p/cherokee/issues/detail?id=282

2008-12-18  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/PageInfoSource.py: Fixes a administration interface
	issue. The Information Sources was failing when a source was being
	used inside a User Directory rule.

2008-12-18  Alvaro Lopez Ortega  <alvaro@octality.com>

	* 0.11.5 released

2008-12-10  Antonio Perez  <aperez@skarcha.com>

	* cherokee/cryptor_libssl.c: Fixes problem where OpenSSL expected
	to read a CA cert appended to the server cert. Bug #264:
	http://code.google.com/p/cherokee/issues/detail?id=264

2008-12-17  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/validations.py (is_ip_or_netmask): Fixes IPv6 addresses
	validation. Fixes bug #266:
	http://code.google.com/p/cherokee/issues/detail?id=266

	* 0.11.4 released

	* cherokee/main.c, cherokee/server.c: This patch should fix the
	graceful restart functionality.

2008-12-06  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/cryptor_libssl.c, admin/PageVServer.py: Fixes SSL CA
	file support. It also adds a few SSL context options.

2008-12-03  Alvaro Lopez Ortega  <alvaro@octality.com>

	* 0.11.3 released

	* cherokee/socket.c, cherokee/cryptor_libssl.c, cherokee/server.c:
	Fixes a couple of issues with the new cryptor plug-in support. Now
	it reports errors when something unexpected happens during the TLS
	support initialization process.

2008-11-30  Antonio Perez  <aperez@skarcha.com>

	* admin/PageAdvanced.py: Advanced->I/O Cache changes didn't work.
	http://code.google.com/p/cherokee/issues/detail?id=242

2008-11-30  Alvaro Lopez Ortega  <alvaro@octality.com>

	* 0.11.2 released

	* cherokee/cryptor_libssl.c, cherokee/cryptor_libssl.h: Adds a
	license exemption for OpenSSL. In case the cryptor-libssl plug-in
	is linked with OpenSSL a license exemption is needed because the
	GPL (Cherokee) and X11 (OpenSSL) licenses incompatibility. It is
	important to note that these are only two source files where this
	exemption applies. Thus, the cryptor_libssl plugin in the only
	plug-in where the license exemption applies.

2008-11-28  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_dirlist.c, themes/firefox3/footer.html,
	themes/firefox3/entry.html, themes/firefox3/header.html: Fixes a
	couple of UTF-8 related issues. Patch by: Emil Renner Berthing
	<esmil@mailme.dk>

2008-11-27  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/buffer.h: Fixes the 'Long-File-Support' in dirlist and
	server_info handlers.

2008-11-26  Alvaro Lopez Ortega  <alvaro@octality.com>

	* 0.11.1 released

	* admin/ModuleExists.py (ModuleExists.get_name): Fixes a execution
	problem when the !match_any key wasn't present in the configuration.

	* cherokee/connection.c (cherokee_connection_create_encoder):
	Keepalive connections with Content-Length header should go
	through a encoder.

	* 0.11.0 released

	* admin/ModuleExists.py: The !iocache and !match_any properties
	were being misplaced.

	* qa/112-NiceError-CGI.py, qa/187-Method.py, qa/188-Method2.py,
	qa/170-Error-ContentLength.py, qa/180-RuleExists2.py,
	qa/179-RuleExists.py, qa/181-RuleExists3.py: The sh based CGIs
	code should not be indented.

	* qa/190-RuleExists4.py, qa/191-RuleExists5.py: Adds a couple of
	new QA test. They test whether or not the rule exists' !match_any
	flag works.

	* cherokee/rule_exists.c: The !exists property shouldn't be
	required when !match_any is set.

2008-11-26  Taher Shihadeh  <taher@unixwars.com>

	* admin/PageVServer.py: fix by Skarcha for issue 239
	http://code.google.com/p/cherokee/issues/detail?id=239
	
2008-11-25  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_dirlist.c, cherokee/common-internal.h: S_ISLNK
	clean up.

	* cherokee/handler_cgi_base.c, cherokee/header.c,
	cherokee/header.h: A couple of missing (reverse proxy related)
	headers have been added.

	* cherokee/http.c, cherokee/handler_cgi_base.c,
	cherokee/handler_proxy.c, cherokee/connection.c: A few small (but
	quite visible) bugs have been fixed.

	* qa/154-DirRedirection., qa/155-DirRedirection2.py,
	qa/123-ImplicitRedit.py, qa/173-Chunked-SCGI.py: These QA tests
	have been slightly adapted so they can be run thru a proxy.

	* cherokee/Makefile.MingW.in: Removed.

2008-11-25  Taher Shihadeh  <taher@unixwars.com>

	* doc/*: added anchors throughout the documentation to ease
	navigation.

2008-11-25  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_cgi_base.c: It has been adapted to use the new
	cherokee_find_header_end() function.

2008-11-24  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/macros.h, cherokee/common-internal.h: fcntl.h related
	macros has been moved from macros.h to common-internal.h.

	* qa/run-tests.py, qa/base.py,, qa/076-AccessRange2.py,
	qa/075-AccessRange.py, qa/074-Access2.py: There are QA tests not
	suitable of being run through a proxy.

	* configure.in, cherokee/validator_htpasswd.c: Rework the
	crypt_r() detection. The final target is to fix the compilation on
	AIX.

	* cherokee/handler_proxy.c (build_request): Use the source IP
	address as Host: header if the client didn't send it.

	* cherokee/handler_proxy.c (cherokee_handler_proxy_init): Resend
	POST information whenever the internal connection has to be
	respined.

2008-11-23  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_proxy.c (do_connect): Improves the connection
	event handling. It's slightly more efficient now.

	* cherokee/socket.c, cherokee/socket.h: Removes a few functions
	that was not needed any longer.

2008-11-22  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/logger_writer.c, cherokee/socket.c,
	cherokee/cryptor_libssl.c, cherokee/server.c: Fixes a number of
	PRINT_ERROR calls. The patch fixes Cherokee, so it can be compiled
	with Sun CC again. Patch by Michal Pryc <Michal.Pryc@Sun.COM>.

2008-11-21  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/ModuleExists.py, cherokee/rule_exists.h,
	cherokee/rule_exists.c: Adds a new flag to match any file.

	* cherokee/thread.c: Tries to fix a FIN_WAIT2 state related issue.

	* cherokee/handler_proxy.c (build_request): Fixes the Host
	header. It was sending a wrong header in the request.

	* qa/run-tests.py, qa/util.py, qa/base.py, qa/help.py,
	qa/091-Digest2.py, qa/092-Digest3.py, qa/100-Digest-htdigest.py,
	qa/122-Methods.py, qa/130-Digest-EmptyPasswd.py,
	qa/175-Digest-htdigest-2.py: Adds a new -P option to allow the QA
	bench to be run through a proxy.
	
	* qa/run-tests.py: Read conf_local.py rather than conf.py whenever
	it's present.

2008-11-20  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/util.h, cherokee/main.c: Exports the strcasestr()
	prototype in case it isn't supported by the system. This patch
	should fix a Solaris compilation issue:
	http://code.google.com/p/cherokee/issues/detail?id=139

	* cherokee/handler_dbslayer.c (dbslayer_step): Multi-Statement
	queries need to be enclosed within a list object. Bis.

2008-11-20  Taher Shihadeh  <taher@unixwars.com>

	* cherokee/handler_dbslayer.c (dbslayer_step): Spurious warning
	removed from proccessing of Multi-Statement queries.

	* admin/PageEntry.py, admin/PageVServers.py, admin/PageVServer.py,
	admin/validations.py: allows /dev/null as path. No need for
	/var/www/fake from now on.

2008-11-20  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_dbslayer.c (dbslayer_step): Multi-Statement
	queries need to be enclosed within a list object. Bis.

2008-11-19  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_dbslayer.c: Fixes the Multi-Statement query
	support.

	* configure.in: MySQL 5.0.0 is required for the dbslayer handler
	(MySQL 4.0 does not support some required API).

2008-11-18  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_cgi_base.c: Fixes REQUEST_URI and SCRIPT_URL.
	They were not correct on the user directory (/~user) requests. It
	should fix: http://code.google.com/p/cherokee/issues/detail?id=226

2008-11-17  Alvaro Lopez Ortega  <alvaro@octality.com>

	* configure.in: Fixes a compilation issue (when libssl was not
	present). Fixes bug #227:
	http://code.google.com/p/cherokee/issues/detail?id=227

	* cherokee/Makefile.am: connection_info.{c,h} are now part of
	lincherokee_server. It fixes bug #228:
	http://code.google.com/p/cherokee/issues/detail?id=228

2008-11-17  Taher Shihadeh  <taher@unixwars.com>

	* doc/*: bunch of new screenshots, and some more recipes and
	fixes.

2008-11-17  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/server.c (cherokee_server_initialize): getpwuid() fail
	is only a fatal if a user or group change was scheduled. It should
	fix bug: http://code.google.com/p/cherokee/issues/detail?id=224

	* cherokee/Makefile.am, cherokee/module.h: module.{h,c} are now
	part of libcherokee base.

2008-11-17  Taher Shihadeh  <taher@unixwars.com>

	* doc/media/images/admin_general.png,
	doc/basics_installation_windows.txt, doc/config_general.txt,
	doc/cookbook_optimizations.txt, doc/dev_cherokee.conf.txt,
	doc/basics_requirements.txt, doc/basics_installation_unix.txt,
	doc/other_goodies.txt: documentation adjustments to the new
	reimplementation of the TSL/SSL support.

2008-11-17  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/cryptor.c, cherokee/cryptor_libssl.c: Fixes a
	double-free bug. Now both cherokee-worker and cherokee-tweak exit
	cleanly.

	* cherokee/downloader.c, cherokee/post.c, cherokee/post.h,
	cherokee/main_tweak.c: Fixes a problem with Cherokee-tweak, the
	new TLS/SSL layer and the POST mechanism.

	* admin/PageGeneral.py, admin/consts.py: Adds a new option for
	setting the TLS backend.

	* m4/libgnutls.m4, cherokee/virtual_server.c,
	cherokee/virtual_server.h, cherokee/module.c,
	cherokee/Makefile.am, cherokee/info.c, cherokee/admin_client.c,
	cherokee/admin_client.h, cherokee/cherokee.h, cherokee/socket.c,
	cherokee/socket.h, cherokee/cryptor.c, cherokee/cryptor.h,
	cherokee/downloader.c, cherokee/downloader.h, cherokee/plugin.h,
	cherokee/thread.c, cherokee/util.c, cherokee/util.h,
	cherokee/cryptor_libssl.c, cherokee/cryptor_libssl.h,
	cherokee/server-protected.h, cherokee/main_tweak.c,
	cherokee/connection.c, cherokee/server.c, configure.in,
	qa/run-tests.py: This patch reimplements the TLS/SSL support. It
	adds a new plugin type for the crypt related support. It
	implements the OpenSSL (libssl) backend, and removes any trace of
	GnuTLS. Based on this plugin type it could be reimplemented,
	although it isn't part of my short/medium-term plans. This patch
	also removed the TLS/SSL library dependency form libcherokee-base.

2008-11-17  Taher Shihadeh  <taher@unixwars.com>

	* cherokee/handler_fcgi.c: gets rid of a warning that shouldn't be
	there.

2008-11-16  Antonio Perez  <aperez@skarcha.com>

	* cherokee/connection.c: Keep-alive was been disabled ALWAYS when
	encoders was used. It should fix bug #143:
	http://code.google.com/p/cherokee/issues/detail?id=143

2008-11-14  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/source_interpreter.c (DEFAULT_TIMEOUT),
	cherokee/main_admin.c: The default timeout has been increased to
	10 seconds; 15 in the case of cherokee-admin. There were times
	when cherokee-admin returned 503 errorsq because python took more
	than 3 seconds to be ready.

2008-11-13  Antonio Perez  <aperez@skarcha.com>

	* cherokee/rule_extensions.c: Better extension checking.

2008-11-13  Alvaro Lopez Ortega  <alvaro@octality.com>

	* configure.in: Adds AC_CONFIG_MACRO_DIR(). It should have been
	using it since I moved the m4 macro files to the m4/ directory.

2008-11-13  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleProxy.py: fixes a cross-browser bug for the
	submissions.

2008-11-13  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/source_interpreter.h, cherokee/source_interpreter.c: :
	The standard error output of the interpreters is redirected to the
	error log file now. (It applies to FastCGI and SCGI). It should
	fix bug http://code.google.com/p/cherokee/issues/detail?id=161

2008-11-12  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/logger.c, cherokee/logger.h, cherokee/logger_w3c.c,
	cherokee/logger_w3c.h, cherokee/logger_ncsa.c,
	cherokee/logger_ncsa.h, cherokee/handler_cgi.c,
	cherokee/logger_combined.c: Redirects the stderr output of CGIs to
	the error log. It fixes the bug #217:
	http://code.google.com/p/cherokee/issues/detail?id=217

	* admin/ModuleProxy.py: Adds support of the new "Arbitrary header
	addition" feature.

	* cherokee/handler_proxy.c, cherokee/handler_proxy.h: The proxy
	can now add arbitrary headers to the relied request.

	* admin/ModuleProxy.py (ModuleProxy._op_render): Adds "Hidden
	returned headers" support.

2008-11-11  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/ModuleProxy.py, admin/consts.py, admin/Makefile.am: Adds
	the Cherokee-admi module for the Proxy handler.

2008-11-11  Taher Shihadeh  <taher@unixwars.com>

	* static/js/common.js: fixes superfluous 'going away' warning. It
	was issue http://code.google.com/p/cherokee/issues/detail?id=215

	* doc/*: some more docs.

2008-11-11  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_proxy.c, cherokee/handler_proxy.h: Adds URL
	rewriting support (based on regular expressions).

	* cherokee/handler_redir.c cherokee/regex.h cherokee/regex.c: More
	code re-factoring. Adds the new cherokee_regex_substitute()
	function.

	* cherokee/handler_redir.c cherokee/regex.h cherokee/regex.c: Some
	code has been re-factorized. Now the regex list class is available
	outside the redir handler. It will allow the proxy handler to use
	it as well.

	* cherokee/rule_extensions.c (match): This patch fixes a bizarre
	issue. If an error is detected during the match, return a 500
	internal error on error instead of a "200 ok".

2008-11-11  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleErrorRedir.py: Fixes problem where error handler
	could not be set.

2008-11-11  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_proxy.c: Adds X-Forwarded-For and
	X-Forwarded-Host support.

2008-11-10  Alvaro Lopez Ortega  <alvaro@octality.com>

	* qa/189-Redir9.py: Adds a new QA test to ensure that the regular
	expression management code at handler_redir can match and rewrite
	at least nine chunks.

	* cherokee/regex.h: Fixes an issue with regular expressions.
	Reported by Stefan de Konink <stefan@konink.de>.

2008-11-08  Alvaro Lopez Ortega  <alvaro@octality.com>

	* configure.in, cherokee/util.h, cherokee/util.c,
	cherokee/win32_misc.h, cherokee/win32_misc.c: Fixes a compilation
	issue (the strnstr() function is not always available).

	* configure.in: Removes AC_TYPE_SIGNAL call. Patch by Tim Post
	<echo@echoreply.us>.

2008-11-07  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_proxy.c, cherokee/handler_proxy.h: Implement
	the "header_hide" configuration entry. It allow to hide (remove)
	header entries from the internal server response.

	* cherokee/handler_server_info.c (build_server_table_content):
	TLS port was not reported propertly.

2008-11-06  Taher Shihadeh  <taher@unixwars.com>

	* admin/consts.py, admin/PageVServer.py: re-sets 'file' as the
	default logging output and fixes another remaining cleanup.

2008-11-06  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/Makefile.am, cherokee/http.c, cherokee/rule_method.c: A
	couple of fix issues have been fixed.

	* qa/187-Method.py, qa/188-Method2.py, qa/Makefile.am: Adds a
	couple of new QA tests for checking the Rule 'method'.

	* cherokee/Makefile.am (win32_src): Adds the win32_cherokeeserv.c
	file to the Windows compilation stack.

	* cherokee/win32_misc.h, cherokee/win32_misc.c: Believe it or not,
	Windows does not implemetn strnstr. This patch adds a home-made
	implementation of the function so the server code can compile.

2008-11-06  Taher Shihadeh  <taher@unixwars.com>

	* admin/PageVServer.py: adds new validation. Should fix
	http://code.google.com/p/cherokee/issues/detail?id=167

2008-11-06  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/unix4win32.h: Adds a few more Windows mapping entries.
	Original patch by Patch by Stefan de Konink <stefan@konink.de>.

	* cherokee/validator_htpasswd.c, cherokee/validator_plain.c,
	cherokee/validator_file.c, cherokee/validator_file.h,
	cherokee/validator_htdigest.c: Adds support for relative paths (in
	addition to the full paths previously supported) to the file based
	validators.

	* cherokee/validator_htpasswd.c, cherokee/validator_htpasswd.h,
	cherokee/Makefile.am, cherokee/validator_plain.c,
	cherokee/validator_plain.h, cherokee/validator_file.c,
	cherokee/validator_file.h, cherokee/validator_htdigest.c,
	cherokee/validator_htdigest.h: Re-factored the file based
	validators. A new common parent class cherokee_validator_file_t
	has been added.

	* cherokee/win32_misc.h, cherokee/win32_misc.c: Implements kill()
	on Windows. Patch by Stefan de Konink <stefan@konink.de>.

2008-11-05  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/socket.c (cherokee_socket_close): Fixes a Win32
	compilation issue. Patch by Stefan de Konink <stefan@konink.de>

2008-11-05  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleMethod.py, admin/Form.py: allow Ajax reloads of
	option lists. They were compeltely resubmitting the forms on
	change instead.

	* admin/ModuleScgi.py, admin/ModuleFcgi.py: deleted overzealous
	check that prevented checkfile to work with directories. Now it is
	enabled by default for extension-type rules. Also document_root is
	configurable again from within FastCGI and SCGI handlers.

2008-11-04  Antonio Perez  <aperez@skarcha.com>

	* admin/ModuleRedir.py, admin/static/js/common.js, admin/Entry.py:
	Now it is possible to modify redirection rules. Fixes Bug #191:
	http://code.google.com/p/cherokee/issues/detail?id=191

	* admin/ModuleMethod.py: Fixes an autosubmit issue adding a
	HTTP Method Rule.

2008-11-04  Alvaro Lopez Ortega  <alvaro@octality.com>

	* configure.in, m4/libgnutls.m4: Fixes a GNUTLS compilation issue.

2008-11-04  Taher Shihadeh  <taher@unixwars.com>

	* admin/PageVServer.py: small cleanup. Removed a superfluous
	option that was repeating functionality, related to
	http://code.google.com/p/cherokee/issues/detail?id=192

2008-11-03  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleMethod.py: Fixes glitch in the submission of the
	"HTTP method"-rules that prevented them from being configured.

2008-11-03  Antonio Perez  <aperez@skarcha.com>

	* admin/ModuleCgi.py, admin/static/js/common.js, admin/Entry.py:
	Adds support for Custom Environment Variables. Bug #188:
	http://code.google.com/p/cherokee/issues/detail?id=188

2008-11-03  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_ssi.c (cherokee_handler_ssi_add_headers): Fixes
	a little problem with the SSI MIME type handling.

	* qa/186-SSI-droot.py, qa/Makefile.am: Adds a new QA. It checks
	whether the document root security feature actually works.

	* cherokee/handler_ssi.c (parse): Adds a security check to ensure
	that the SSI target file is inside the document root. If the file
	is outsize, the handler does just ignore the SSI entry.

	* admin/ModuleMethod.py, admin/consts.py, admin/Makefile.am:
	Adds a new method to implement the new HTTP method rule.

	* cherokee/rule_method.h, cherokee/rule_method.c, configure.in,
	cherokee/Makefile.am: Integrates a new rule type. It tries to
	match the HTTP method.

	* cherokee/http.h, cherokee/http.c: Adds the new
	cherokee_http_string_to_method() function for converting a HTTP
	method string to its enum.

	* cherokee/rule_exists.c (match): The I/O entry must be unrefed.

	* qa/182-SSI-include-file.py, qa/183-SSI-include-virtual.py,
	qa/184-SSI-fsize-file.py, qa/185-SSI-fsize-virtual.py,
	qa/Makefile.am: Adds a few of new QA tests for checkin the SSI
	file inclusion and file size replacement.

	* cherokee/handler_ssi.c: Fixes a couple of issues with the new
	SSI handler.

2008-11-02  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/ModuleSsi.py, admin/constants.py, admin/Makefile.am: Added
	the a new module for the SSI handler.

	* cherokee/handler_ssi.c: Implements SSI virtual fsize, and
	flastmod (with both 'file' and 'virtual' files).

	* cherokee/handler_ssi.c (parse): Implements SSI virtual
	inclusions.

	* cherokee/handler.h (HANDLER_VSRV): Adds a new macro to access
	a virtual server object from one of its connection handlers.

	* cherokee/handler_ssi.h, cherokee/handler_ssi.c, configure.in,
	cherokee/Makefile.am: Initial import of the upcoming SSI handler.

2008-11-01  Alvaro Lopez Ortega  <alvaro@octality.com>

	* configure.in, m4/libgnutls.m4: The GnuTLS detection code has
	been reimplemented. From now on, it won't use pkg-config. It was
	an error to suppose that most of the systems would have it
	installed. Be aware of this patch, it may introduce regressions.

	* admin/PageInfoSource.py: Adds a new field for the interpreter
	spawning timeout.

	* cherokee/source_interpreter.c, cherokee/source_interpreter.h:
	Adds a new "timeout" configuration key. The spawning timeout is
	not longer hardcoded.

	* admin/ModuleBalancer.py (ModuleBalancerGeneric._op_render):
	Fixes a linking issue. The source names pointed to invalid
	source pages.

2008-11-01  Antonio Perez  <aperez@skarcha.com>

	* admin/ModuleErrorRedir.py: Changed submit button. Fixes
	bug #190: http://code.google.com/p/cherokee/issues/detail?id=190

2008-11-01  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/ModuleCommon.py (ModuleCommon._op_render): Reflects the
	latest change on the configuration interface.

	* cherokee/handler_common.c, cherokee/handler_common.h: Implements
	a new property to define whether or not the use of dirlist is
	allow. It implements the RFE #186:
	http://code.google.com/p/cherokee/issues/detail?id=186

	* cherokee/handler_dirlist.c: Fixes the symbolic links to
	directories support. Original patch by Stefan de Konink
	<stefan@konink.de>; a few additions my me.

	* cherokee/connection.c (cherokee_connection_set_redirect): Fixes
	a problem with the redirections. Patch by Stefan de Konink
	<stefan@konink.de>.

2008-10-31  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/handler_cgi_base.c, cherokee/server-protected.h,
	cherokee/server.c: Implements the "SERVER_PORT" and "REMOTE_PORT"
	variables for *CGIs.

	* cherokee/server.c, cherokee/server-protected.h,
	cherokee/handler_cgi_base.c: Adds support for the "SERVER_ADDR"
	variable. Original patch by Patch by Stefan de Konink
	<stefan@konink.de>; I've reworked it in order to make it more
	efficient.

	* cherokee/source_interpreter.h, cherokee/source_interpreter.c:
	Adds support for changing the user right before spawning the new
	source.  Patch by Stefan de Konink <stefan@konink.de>.

	* cherokee/server.c (configure_server_property): Fixed to use
	cherokee_getpwnam() instead of getpwnam()

	* admin/PageEntry.py, admin/ModuleExists.py: Adds a check button
	select whether or not the rule should use I/O cache for the
	evaluation.

	* admin/PageVServer.py (PageVServer._op_apply_changes): Reflects
	the latest change in the administration interface. It adds a new
	checkbox to allow whether a virtual server should keep connections
	alive between requests.

	* cherokee/virtual_server.c, cherokee/virtual_server.h,
	cherokee/connection.c: Added a new option to enable/disable
	keep-alive per virtual server. By default it's enabled.  It
	implement the RFE #181:
	http://code.google.com/p/cherokee/issues/detail?id=181

	* cherokee/handler_cgi_base.c
	(cherokee_handler_cgi_base_build_basic_env): Adds support for
	SCRIPT_URL. It contains the request *after* the internal
	redirections. It's important to remember the REQUEST_URI contains
	the original request.

	* cherokee/macros.h (SENDFILE_MAX_SIZE): Fixes a 'integer overflow
	in expression' compilation warning. Fixes bug #185:
	http://code.google.com/p/cherokee/issues/detail?id=185

	* cherokee/source_interpreter.c: From now on, Cherokee will kill
	all the sources that are lauched during its life time. Original
	patch by Stefan de Konink <stefan@konink.de> (thanks! Great
	job). I have also added a new check to ensure that, in case a
	interpreter is re-launched, the old source is killed as well.

2008-10-31  Taher Shihadeh  <taher@unixwars.com>

	* admin/PageInfoSource.py: The last source in a rule cannot be
	deleted now to prevent appearence of broken rules. Addresses
	http://code.google.com/p/cherokee/issues/detail?id=144

	* admin/PageIcon.py: There was a problem updating the existing
	lists of extensions. It was issue 184:
	http://code.google.com/p/cherokee/issues/detail?id=184

2008-10-30  Antonio Perez  <aperez@skarcha.com>

	* admin/server.py, admin/Page.py, admin/static/css/cherokee.css,
	admin/static/js/common.js: Config changes now use AJAX.
	http://code.google.com/p/cherokee/issues/detail?id=162

2008-10-30  Taher Shihadeh  <taher@unixwars.com>

	* admin/Makefile.am: we missed installing a file for the new
	Authlist handler. Credit to Antonio Perez <aperez@skarcha.com>.
	http://code.google.com/p/cherokee/issues/detail?id=176

2008-10-29  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/consts.py, admin/ModuleExists.py, admin/Makefile.am: Adds
	support for the new rule type: "If file exists".

	* cherokee/rule_exists.h, cherokee/rule_exists.c, configure.in,
	cherokee/Makefile.am: A new rule for checking whether a file
	exists or not has been adeed.

	* qa/179-RuleExists.py, qa/180-RuleExists2.py,
	qa/181-RuleExists3.py, qa/Makefile.am (EXTRA_DIST): Added three
	new QA tests to check the Exists rule.

	* qa/176-AuthLista1.py, qa/177-AuthLista2.py,
	qa/178-AuthLista3.py: Added three new QA tests that test the new
	AuthList validator.

	* cherokee/handler_common.c: Converted to use the new
	cherokee_io_stat() function.

	* cherokee/util.c (cherokee_io_stat), cherokee/util.h: Adds a new
	commodity function.

	* cherokee/cherokee.h, cherokee/iocache.h, cherokee/Makefile.am:
	Adds the I/O-cache API to the public interface.

	* 0.10.0 released

	* admin/ModuleAuthlist.py, admin/consts.py: A new Cherokee admin
	module has been added to reflect the functionality of the new
	AuthList validator.

	* contrib/09to010.py, contrib/Makefile.am: Added new configuration
	file converter: Cherokee 0.9.x to Cherokee 0.10.x.

2008-10-28  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleRedir.py: fixes bug that prevented having an empty
	Regular Expression (which should be
	allowed). http://code.google.com/p/cherokee/issues/detail?id=168

2008-10-28  Antonio Perez  <aperez@skarcha.com>

	* admin/Form.py: Heights of the tabs autofit to contents. Fixes
	Bug #164: http://code.google.com/p/cherokee/issues/detail?id=164

2008-10-27  Antonio Perez  <aperez@skarcha.com>

	* cherokee/handler_cgi_base.c, cherokee/handler_common.c,
	cherokee/connection.c: REQUEST_URI cgi environment variable now
	contains the correct value.

2008-10-27  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleBalancer.py, admin/ModuleFcgi.py: fixes bug that
	prevented balancers to be correctly configured when auto-submits
	weren't triggered.

	* doc/bundle_cherokee-admin.txt, cherokee-admin.1: documents the
	new feature.

2008-10-27  Alvaro Lopez Ortega  <alvaro@octality.com>

	* admin/PageAdvanced.py: Adds a new entry for the "Nonce cache
	clean up elapse time". It allows to define the lapse between
	nonce cache clean ups.

	* cherokee/main_admin.c: Adds a new parameter -u
	(or --unsecure).  It allows the execute cherokee-admin without
	requiring the user to authenticate. This is a developers feature,
	regular users are not supposed to use it.

	* cherokee/macros.h, cherokee/nonce.c, cherokee/nonce.h,
	cherokee/server-protected.h, cherokee/connection.c,
	cherokee/server.c: Fixes nonce handling.

2008-10-27  Taher Shihadeh  <taher@unixwars.com>

	* admin/server.py, admin/PageInfoSource.py: cleanup following
	http://code.google.com/p/cherokee/issues/detail?id=144

	* doc/dev_debug.txt, doc/other_community.txt,
	doc/basics_why_cherokee.txt, doc/config_general.txt,
	doc/index.txt, doc/config_quickstart.txt,
	doc/cookbook_optimizations.txt, doc/dev_cherokee.conf.txt,
	doc/config_info_sources.txt: some doc changes for the upcoming
	0.10

2008-10-27  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/main_admin.c: Implements a new security mechanism for
	Cherokee-admin. From now on, it will require authentication to
	access the administration interface.

	* cherokee/validator_authlist.c, cherokee/validator_authlist.h,
	configure.in, cherokee/Makefile.am: A new validator has been
	added. It implements a fixed list of authorized users.

2008-10-27  Taher Shihadeh  <taher@unixwars.com>

	* admin/server.py, admin/PageInfoSource.py: cleanup following
	http://code.google.com/p/cherokee/issues/detail?id=144

2008-10-25  Antonio Perez  <aperez@skarcha.com>

	* admin/ModuleFcgi.py: Bug #153 was not completely fixed in r2206

2008-10-23  Antonio Perez  <aperez@skarcha.com>

	* admin/ModuleBalancer.py: Fixes auto-submit error assigning
	Information Sources. Bug #153:
	http://code.google.com/p/cherokee/issues/detail?id=153

2008-10-23  Taher Shihadeh  <taher@unixwars.com>

	* admin/Page.py, admin/ModuleBalancer.py, admin/PageInfoSource.py,
	doc/config.txt, doc/config_info_sources.txt,
	doc/cookbook_django.txt, doc/index.txt, doc/config_quickstart.txt:
	unify naming conventions to address issue
	http://code.google.com/p/cherokee/issues/detail?id=152.

2008-10-17  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/thread.c (maybe_purge_closed_connection): I suppose
	that there is no need of flushing if the connection did not use
	tcp_cork. This is an experimental change, I might have to revert
	it. Let's see.

	* cherokee/server.c (configure_server): IO-cache must be instanced
	even if there are no "server!" keys in the configuration file.

	* admin/PageAdvanced.py: Updates the advanced page to reflect the
	latest IO-cache configuration change.

	* cherokee/server.c: Works out IO-cache configuration.

2008-10-16  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/macros.h, cherokee/iocache.c: Set better values for the
	IOcache and sendfile limits.

	* admin/static/js/common.js: Fixes an auto-submit error. Patch by
	Antonio Perez <aperez@skarcha.com>.

2008-10-14  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/config_entry.h, cherokee/iocache.c: Fixes compilation
	without pthreads, and therefore it fixes bug #137:
	http://code.google.com/p/cherokee/issues/detail?id=137

	* cherokee/handler_common.c (cherokee_handler_common_new): Fixes a
	crash when I/O-cache is disabled.

	* cherokee/server.c (cherokee_server_step): Do not mess with the
	threads at this point. They will be freed in server::free().

	* admin/PageAdvanced.py: The page content has been splited among
	different tabs. There is a new entry for "I/O cache", so now its
	configuration is also covered from the administration interface.

	* cherokee/handler_server_info.c (build_cache_table_content): Adds
	more information about the state of the IO-cache.

	* cherokee/cache.h cherokee/cache.c cherokee/handler_file.c
	cherokee/server-protected.h cherokee/iocache.h cherokee/iocache.c
	cherokee/server.c: IO-cache gets its own configuration entry:
	server!iocache, so fro now on, it can be tuned.

	* admin/config.py (Config._parse): Better error reporting.

	* cherokee/handler_server_info.c (build_cache_table_content): Adds
	a new row showing the max. cache size.

	* qa/qa/175-RedirectUrl.py, qa/Makefile.am (EXTRA_DIST): Removes
	the QA test number 175. It was duped.

	* qa/113-HeaderFile.py: It needed the allow_pathinfo flag.

	* qa/176-Digest-htdigest-2.py: Fixes the test. It was using an
	invalid priority number.

	* qa/run-tests.py, qa/help.py, qa/*-*.py: Added a new -D
	parameter. It stops right before executing a certain QA test.  All
	the QA tests needed a small fix in order to be able to access its
	file name.

	* qa/067-PathInfo.py: This test needs pathinfo processing.

2008-10-13  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/cache.c (cherokee_cache_entry_unref): Clean references
	in a better way. IOcache clients shouldn't keep pointers to
	unref'ed iocache objects.

	* cherokee/main.c (signals_handler): Fixes graceful restart.  It
	was generating zombi processes. Patch by Antonio Perez
	<aperez@skarcha.com>

	* admin/CherokeeManagement.py (CherokeeManagement.save): Fixes a
	bug while saving the configuration without restarting the server.
	Patch by Antonio Perez <aperez@skarcha.com>.

	* cherokee/handler_common.c (DEFAULT_ALLOW_PATHINFO): It should
	not allow pathinfo by default. Patch by Antonio Perez
	<aperez@skarcha.com>.  This patch fixes bug #149:
	http://code.google.com/p/cherokee/issues/detail?id=149

	* cherokee/util.c (cherokee_parse_query_string): Covers a corner
	case. Patch by Antonio Perez <aperez@skarcha.com>.

	* cherokee/main.c (main): It should not clean up the PID file if
	cherokee is executed in "single time" mode. Patch by Antonio Perez
	<aperez@skarcha.com>.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_init),
	cherokee/handler_fcgi.c (build_header),
	cherokee/handler_fastcgi.c (build_header): Neither of these
	functions needed to call cherokee_connection_parse_args(). This
	change is slightly speeding up response elapses. A million thanks
	to Antonio Perez <aperez@skarcha.com> for hunting this nasty bug.

	* cherokee/cache.c, cherokee/cache.h: Fixes a cache issue.

	* cherokee.conf.sample.pre: Removed a few duped entries.

	* cherokee/mime.c (cherokee_mime_get_by_suffix),
	cherokee/icons.c (add_suffix): Better error management.

2008-10-12  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/balancer.c (cherokee_balancer_mrproper): Fixes a small
	memory leak on clean up (it wasn't a leak per-se).

	* cherokee/init.c (cherokee_mrproper): Added new function to clean
	up the global cherokee_init() initialization.

	* cherokee/icons.c (cherokee_icons_add_suffix): Better memory
	management on error. Patch by Stefan de Konink <stefan@konink.de>.

	* cherokee/config_entry.c (cherokee_config_entry_mrproper): There
	was a AVL tree structure that wasn't being freed. Patch by Stefan
	de Konink <stefan@konink.de>.

	* cherokee/avl.c (cherokee_avl_add): Better error handling. Patch
	by Stefan de Konink <stefan@konink.de>.

	* cherokee/server.c (cherokee_server_free): Fixes an issue with
	the previous patch. An invalid memory deallocation was being made.

	* cherokee/server.c (cherokee_server_free): Frees the source
	objects. Patch by Stefan de Konink <stefan@konink.de>

2008-10-11  Alvaro Lopez Ortega  <alvaro@octality.com>

	* cherokee/logger.c (cherokee_logger_free): Frees the ->priv
	property. (It was not a memory leak because loggers are never
	freed, actually). Patch by Stefan de Konink <stefan@konink.de>

2008-10-08  Alvaro Lopez Ortega  <alvaro@octality.com>

	* qa/175-RedirectUrl.py, qa/176-Digest-htdigest-2.py,
	qa/Makefile.am: Adds a couple of new QA tests. 175 check infinite
	redirections, and 176 ensure that bug#146 is fixed:
	http://code.google.com/p/cherokee/issues/detail?id=146

	* cherokee/validator_htdigest.c (extract_user_entry): Fixes an
	error processing htdigest files. Reported by Eric Drechsel
	<ericdrex@gmail.com>.

2008-10-07  Taher Shihadeh  <taher@unixwars.com>

	* admin/Form.py, admin/Page.py, admin/static/js/common.js:
	usability enhancement suggested by Gunnar Wolf <gwolf@gwolf.org>
	is implemented. Related to the previously thought to be fixed
	http://code.google.com/p/cherokee/issues/detail?id=111.

2008-10-07  Alvaro Lopez Ortega  <alvaro@octality.com>

	* qa/Makefile.am (EXTRA_DIST): help.py was missing from the file
	distribution list. Reported by Eric Drechsel <ericdrex@gmail.com>

2008-10-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cache.c: Add a few TRACE points within the cache policy
	code.

	* cherokee/connection.c (cherokee_connection_set_cork): Better
	error management.

	* cherokee/server.c (set_server_fd_socket_opts): Uses
	SO_ACCEPTFILTER in case it's available.

	* cherokee/socket.c: Do not suppose that TCP_CORK and TCP_NOPUSH
	are equivalent; and apply TCP_CORK only if the system supports it.

	* cherokee/socket.c (cherokee_socket_set_block_timeout,
	cherokee_socket_flush): It ought to retry on EINTR.

2008-10-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageAdvanced.py: Adds the cherokee-admin support for the
	last change. It includes a new checkbox to toggle the
	"server!use_iocache" configuration entry.

	* cherokee/handler_server_info.c, cherokee/handler_common.c,
	cherokee/server-protected.h, cherokee/iocache.c,
	cherokee/iocache.h, cherokee/server.c: Adds a new
	"server!use_iocache" configuration key to allow to enable or
	disable the use of I/O cache server wide.

	* cherokee/cache.c, cherokee/iocache.c, cherokee/iocache.h: Fixes
	one more bug in the cache implementation. (sigh!)

2008-10-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c (build_cache_table_content): Adds
	a new row to show the total amount to memory mmaped by the IOcache

	* cherokee/cache.h, cherokee/cache.c: Fixes the cache.  There were
	a couple of bugs in the implementation that was leading the server
	to random crashes.  The internal cache indexes work as expected.

	* cherokee/buffer.h, cherokee/buffer.c: Functions
	cherokee_buffer_add_chunked(),
	cherokee_buffer_add_buffer_chunked() and
	cherokee_buffer_convert_to_chunked() have been removed. They are
	no longer needed.

2008-09-30  Taher Shihadeh  <taher@unixwars.com>

	* admin/ModuleGeoip.py, admin/ModuleDefault.py,
	admin/ModuleErrorNn.py, admin/ModuleRequest.py,
	admin/ModuleExtensions.py, admin/ModuleBalancer.py,
	admin/ModuleDirectory.py, admin/ModuleErrorRedir.py: fixes and
	prevents regressions on Option selection entries.

2008-09-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cache.c, cherokee/cache.h, cherokee/handler_file.c,
	cherokee/iocache.c, cherokee/iocache.h: Takes care of a potential
	concurrency issue that could ended up leading the server to crash.

	* cherokee/thread.c, cherokee/server.c: Fixes an error while
	freeing the memory on exit.

	* cherokee/logger_writer.c (cherokee_logger_writer_open): Open the
	log with the O_NOFOLLOW option (security enhancenment).

	* cherokee/macros.h, cherokee/connection-protected.h,
	cherokee/connection.c, qa/174-Respins-Limit.py, qa/Makefile.am:
	Adds a protection against internal respin infinite loops. By
	default the server can perform up to 16 internal redirections
	before returning a 500 error.

2008-09-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/ModuleAuth.py, admin/ModuleDirlist.py,
	admin/ModuleCustomError.py, admin/ModuleHeader.py,
	admin/PageGeneral.py, admin/ModuleBalancer.py: Auto-submit was not
	working for a few Option selection entries. This patch should fix
	it; although I'd wait a couple of days before applying it to the
	0.9 branch; it might introduce unexpected regressions.

2008-09-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Cherokee 0.9.0 released

	* admin/PageAdvanced.py: Adds a missing text entry validation.

	* admin/PageIcon.py (PageIcon._render_icon_list): Tiny style
	change.  Now the 'special icons' tab looks like the rest.

2008-09-26  Taher Shihadeh  <taher@unixwars.com>

	* admin/static/js/common.js, admin/Form.py,
	admin/PageInfoSource.py: fixed a missing case related to issue 131.

2008-09-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/balancer.c (cherokee_balancer_mrproper): This should
	fix bug: http://code.google.com/p/cherokee/issues/detail?id=129

	* cherokee/main_worker.c (wait_process): Improves the SIGCHLD
	signal management.

	* admin/PageAdvanced.py: Fixes an issue setting the max keep-alive
	time. Two validations rules were interfering with each other.

	* admin/ModuleBalancer.py (ModuleBalancerGeneric._op_render): Adds
	a link to the source configuration page.

2008-09-25  Taher Shihadeh  <taher@unixwars.com>

	* admin/Form.py, admin/ModuleRedir.py, admin/static/js/common.js:
	fixes http://code.google.com/p/cherokee/issues/detail?id=131. PS:
	I hate JavaScript.

2008-09-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source_interpreter.h,
	cherokee/source_interpreter.c (cherokee_source_interpreter_spawn):
	Do not allow the source to be spawned in pararell.

	* cherokee/server.c (cherokee_server_initialize): Fixes a problem
	with SSL/TLS initialization.

	* cherokee/main_worker.c (common_server_initialization): Instead
	of ignoring SIGCHLD, let's wait for our child. It sounds slightly
	more polite.

	* cherokee/socket.c (cherokee_socket_init_tls): Checks whether a
	virtual server supports SSL before trying to accessing its
	certificates.

2008-09-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_init_client_tls): CA checks
	clean up.

	* cherokee/server.c (init_vservers_tls): It a virtual server
	cannot initialize its SSL engine, it should be handled like an
	error.

	* cherokee/handler_common.c (cherokee_handler_common_new): Reply
	the the right HTTP error (415 Unsupported Media Type) when trying
	to server a special file (not a file, nor a directory).

	* cherokee/main.c (set_signals): SIGUSR2 management was missing.

	* cherokee/handler_dbslayer.c (send_query): From now on, the MySQL
	balancer gets the SQL query from the requested URL. Previously, it
	was using POST to get the query (it just looked much cleaner).
	However, the replies could not be cached by a proxy cache, and
	that's a big enough problem for changinf it.

	* contrib/cherokee: Updated to the new signal scheme. By Antonio
	Perez <aperez@skarcha.com>

2008-09-24  Taher Shihadeh  <taher@unixwars.com>

	* static/css/cherokee.css: addresses isue
	http://code.google.com/p/cherokee/issues/detail?id=85

2008-09-23  Taher Shihadeh  <taher@unixwars.com>

	* admin/Page.py, admin/static/js/thickbox.js: added another jQuery
	plugin to finish remaking the help system.

2008-09-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dbslayer.c, cherokee/dwriter.c,
	cherokee/dwriter.h: Fixes a couple of problems. Now it uses a
	different Mime type for each language. Besides, it escapes the
	strings so the client interpreter can parse (evaluate) the result.

2008-09-23  Taher Shihadeh  <taher@unixwars.com>

	* admin/PageEntry.py, admin/ModuleRedir.py,
	admin/ModuleServerInfo.py, admin/Form.py, admin/PageInfoSource.py:
	addressed usability issues
	http://code.google.com/p/cherokee/issues/detail?id=111 and
	http://code.google.com/p/cherokee/issues/detail?id=125

	* doc/cookbook_*, doc/modules_*: Addressed issue #126:
	http://code.google.com/p/cherokee/issues/detail?id=126

2008-09-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/rule_directory.c (match): Fixes a problem with the
	directory rule. Requests starting as a directory entry were
	matched with it, even if there were targeting another file.  If
	fixes bug: http://code.google.com/p/cherokee/issues/detail?id=68

2008-09-22  Taher Shihadeh  <taher@unixwars.com>

	* doc/cookbook_redirs.txt, doc/cookbook_maintenance.txt,
	media/images/cookbook_redir*,
	doc/media/images/cookbook_maintenance*, doc/cookbook_redirs.txt,
	doc/other_community.txt: some new sections were suggested.

2008-09-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (cherokee_server_step): It was taking the
	server too long to die. Now it does not way for the threads to
	stop, but it takes care of closing all the connections, flush the
	log files and point that the server ought not to accept new
	connections (while it's dying).

	* cherokee/socket.c (cherokee_socket_connect): Fixes an issues
	spawaing the PHP interpreter. It was failing when it used a Unix
	socket as entry point for accepting FastCGI connections.

2008-09-22  Taher Shihadeh  <taher@unixwars.com>

	* admin/Makefile.am: ModuleCustomError was not being installed.

2008-09-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source_interpreter.c, cherokee/source_interpreter.h,
	cherokee/main_admin.c: Adds a 'debug' mode to cherokee-admin.  It
	helps to debug the administration back-end. If cherokee-admin is
	executed with the -x parameter, it will print the backend errors
	in the terminal when it was executed from, otherwise those errors
	and debug information would be lost.

	* cherokee/main.c (figure_worker_path): Now Cherokee uses the
	cherokee-worker next to it (instead of the executable located at
	the default system path).

2008-09-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_worker.c, cherokee/util.c, cherokee/util.h,
	cherokee/connection.c: Fixes bug #124:
	http://code.google.com/p/cherokee/issues/detail?id=124
	The server accepts relative paths in the -r parameter now.

2008-09-18  Taher Shihadeh  <taher@unixwars.com>

        * doc/index.txt, doc/other_signals.txt, doc/other_faq.txt,
        doc/other_goodies.txt: documentation updates.

2008-09-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/macros.h, cherokee/main_worker.c, cherokee/main.c:
	Fixes a infite loop when a wrong parameter was supplied to
	cherokee (cherokee was relaunching the server worker with the same
	wrong parameter).

	* cherokee.conf.sample.pre: Cherokee is handling Keep-Alive way
	much better nowadays. It's my believe that 15 seconds is a
	reasonable timeout value for the upcoming version.

2008-09-17  Taher Shihadeh  <taher@unixwars.com>

	* admin/Module.py: fixed minibug that duplicated empty entry in
	Handler list for PageEntry form.

2008-09-16  Taher Shihadeh  <taher@unixwars.com>

	* doc/media/images/admin_advanced1.png,
	doc/media/images/admin_advanced2.png,
	doc/media/images/admin_handler_dbslayer.png added.

	* doc/basics_installation.txtdoc/config_advanced.txt,
	doc/basics_installation_windows.txt, doc/modules_balancers.txt,
	doc/dev_debug.txt, doc/modules_handlers.txt,
	doc/basics_why_cherokee.txt, doc/config_general.txt,
	doc/index.txt, doc/config_quickstart.txt,
	doc/cookbook_optimizations.txt, doc/dev_cherokee.conf.txt,
	doc/modules.txt, doc/basics_installation_svn.txt,
	doc/basics_installation_unix.txt: documentation is up to date once more.

2008-09-15  Taher Shihadeh  <taher@unixwars.com>

	* doc/config_advanced.txt, doc/modules_encoders_gzip.txt,
	doc/config_general.txt, doc/index.txt, doc/dev_cherokee.conf.txt,
	doc/config_virtual_servers_rule.txt, doc/modules_encoders.txt:
	Changes until r1949 reflected.

2008-09-15  Taher Shihadeh  <taher@unixwars.com>

	* admin/PageStatus.py, admin/ModuleBalancer.py,
	admin/PageInfoSource.py: minimal fixes + help updates.

	* doc/media/images/admin_handler_fastcgi1.png,
	doc/media/images/admin_handler_cgi.png,
	doc/media/images/admin_handler_fastcgi2.png,
	doc/media/images/admin_info_sources.png: screenshots needed a
	refresh.

	* doc/config.txt, doc/modules_handlers_cgi.txt,
	doc/cookbook_php.txt, doc/modules_handlers_fcgi.txt,
	doc/modules_balancers.txt, doc/config_info_sources.txt,
	doc/config_status.txt: changes were not reflected since r1915.

2008-09-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/server.py, admin/Page.py, admin/PageAppServers.py,
	admin/static/css/cherokee.css, admin/PageInfoSource.py:
	"Application server" has been renamed to "Information Source".  As
	long as this list contains pointers to application servers and
	data bases it is a better naming.

	* admin/ModuleCgi.py, admin/ModuleScgi.py, admin/ModuleFcgi.py:
	The 'check file' option is still useful when the handler manages
	an extension. (A few days ago I removed them completelly from the
	FastCGI and SCGI configuration pages). Now it is displayed only
	hidden when a directory is being configured.

	* cherokee/server.c (set_server_fd_socket_opts): TCP_DEFER_ACCEPT
	should be set in the TCP level rather than in the SOCKET level.
	Additionally, it ought not to check whether it success, it's fine
	even if it could not set the option.

2008-09-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, admin/Makefile.am: Adds a new --disable-admin
	option. It stops cherokee-admin from installing.

2008-09-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageAdvanced.py, admin/PageMime.py, admin/PageIcon.py:
	Adds a few missing references to help pages.

	* admin/PageEntry.py, admin/ModuleHtdigest.py,
	admin/ModuleLdap.py, admin/ModulePlain.py, admin/ModulePam.py,
	admin/ModuleHtpasswd.py, admin/ModuleMysql.py: Adds contextual
	help to the validator modules.

2008-09-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* ModuleAdmin.py, PageEntry.py, Theme.py, ModuleRedir.py, Page.py,
	ModuleDirlist.py, Module.py, ModuleFile.py, ModuleServerInfo.py,
	ModuleCustomError.py, ModuleScgi.py, ModuleCgi.py,
	ModuleDbslayer.py, PageVServers.py, PageStatus.py,
	ModuleCommon.py, PageGeneral.py, ModuleFcgi.py, PageVServer.py,
	ModuleMirror.py: First steps to rework the whole help subsystem.
	From now on, Cherokee-admin will use the main documentation rather
	than the short texts it has been using until now.

	* admin/advanced.help.html, admin/feedback.help.html,
	admin/mime.help.html, admin/vservers.help.html,
	admin/appserver.help.html, admin/general.help.html,
	admin/status.help.html, admin/entry.help.html,
	admin/icon.help.html, admin/vserver.help.html: Removed.

	* cherokee/main_admin.c, constants.h.pre, admin/configured.py.pre,
	admin/Makefile.am, Makefile.am: Exports a new /help web directory
	from cherokee-admin. It points to the installed documentation.

	* cherokee/Makefile.am, cherokee/matching_list.c,
	cherokee/matching_list.h: The matching list class is no longer
	needed. Removed.

	* contrib/08to09.py (convert): Updated to remove the old
	server!encoder entries. There is no way to convert those old
	entries, so removing them looks like the right thing to do in this
	case.

	* cherokee/virtual_server.c, cherokee.conf.sample.pre,
	admin/PageEntry.py, admin/server.py, admin/Page.py,
	admin/encoder.help.html, admin/PageEncoders.py,
	admin/static/css/cherokee.css, admin/Makefile.am,
	qa/089-gzip-encoding.py, qa/168-Deflate-Encoding.py:
	Dusts the latest encoders support change.

2008-09-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/virtual_server.c, cherokee/encoder_table.c,
	cherokee/encoder_table.h, cherokee/Makefile.am,
	cherokee/connection-protected.h, cherokee/config_entry.c,
	cherokee/config_entry.h, cherokee/thread.c,
	cherokee/server-protected.h, cherokee/connection.c,
	cherokee/server.c, qa/089-gzip-encoding.py, qa/run-tests.py,
	qa/168-Deflate-Encoding.py: Encoders are now a configuration
	entry (directories, regexs, extensions, etc) property rather than
	a global server one.

	* admin/ModuleDbslayer.py (ModuleDbslayer._op_apply_changes): Add
	the cherokee-admin module for the new DBSlayer handler.

	* cherokee/handler_dbslayer.h, cherokee/handler_dbslayer.c,
	cherokee/dwriter.c, cherokee/dwrite.h, configure.in,
	cherokee/Makefile.am: Adds our brand new data base
	bridge/serializer/balancer.

2008-09-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source_interpreter.c (cherokee_source_interpreter_spawn):
	Closes stdout and stderr. These fds should not be opened; the
	system buffers might fill up while the interpreter prints debug
	and it would stop working because of that.

	* cherokee/connection.c, cherokee/connection-protected.h,
	cherokee/util.c: Improves the Chunked encoding performance.

	* cherokee/handler_dirlist.c, cherokee/handler_dirlist.h: Adds a
	new state to ensure that when the list has been generated, it will
	return eof even it is called more than once.

2008-09-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/08to09.py, contrib/Makefile.am: Added a new
	configuration file converter. It reads Cherokee 0.8.x files and
	translates them to the new Cherokee 0.9 format.

	* qa/007-Missing-Host.py , qa/020-VirtualHost.py ,
	qa/021-VirtualHost2.py , qa/022-NoHost.py , qa/023-Host.py ,
	qa/024-Host+Port.py , qa/026-Host-Broken-Dot.py ,
	qa/031-Post+urlencoded2.py , qa/042-Pipelining.py ,
	qa/043-Pipelining2.py , qa/044-Home.py , qa/048-NN.py ,
	qa/049-NN-broken.py , qa/094-URL-request.py , qa/105-If-Range.py ,
	qa/106-If-Range2.py , qa/116-RequestTiny.py ,
	qa/117-DomainToDir.py , qa/121-NoUserDir.py , qa/122-Methods.py ,
	qa/124-DomainToDir2.py , qa/125-domain-redir1.py ,
	qa/135-RedirParams.py , qa/139-domain-wildcards1.py,
	qa/153-SCGI-vars-root.py, qa/160-RuleNot1.py, qa/161-RuleNot2.py,
	qa/166-xsendfile1.py, qa/171-SCGI-Keepalive.py,
	qa/172-Chunked-CGI.py, qa/173-Chunked-SCGI.py: QA tests using
	HTTP/1.1 must send the "Connection: Close" header.

	* qa/172-Chunked-CGI.py: This QA was failing because of an
	unexpected new line character at the end of the output.

	* qa/173-Chunked-SCGI.py, qa/Makefile.am: Adds a new QA test to
	check whether SCGI works with chunked encoding.

	* cherokee/thread.c: Fixes keep-alive timeout. It was not closing
	the connection at the right time when it was compiled without
	pthread support.

	* cherokee/connection.c (cherokee_connection_set_keepalive): When
	using HTTP/1.1 Cherokee should use keep-alive by default.
	Regression reported by Rui Lopes <rgl@ruilopes.com>.

	* cherokee/util.c: Fixes a problem compiling without pthread.

2008-09-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c (check_worker_version): Checks whether Cherokee
	and Cherokee-worker were compiled from the same version. The have
	been a few problem due to broken installation that mixed binaries
	from different versions.

2008-09-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/Page.py, admin/static/css/cherokee.css: Adds a new menu
	entry to access the Application Server section.

	* cherokee/balancer., cherokee/balancer.h, cherokee/source.h,
	cherokee/main_admin.c, cherokee/balancer_round_robin.c,
	cherokee/balancer_round_robin.h, cherokee/server-protected.h,
	cherokee/connection.c, cherokee/server.c, cherokee.conf.sample.,
	admin/config.py, admin/server.py, admin/PageAppServers.py,
	admin/consts.py, admin/ModuleBalancer.py, qa/127-SCGI-Post.py,
	qa/conf.py, qa/153-SCGI-vars-root.py, qa/140-SCGI-EmptyVars.py,
	qa/run-tests.py, qa/help.py, qa/172-Chunked-CGI.py,
	qa/126-SCGI.py, qa/151-SCGI-vars.py, qa/util.py,
	qa/152-SCGI-vars2.py, qa/171-SCGI-Keepalive.py,
	qa/141-FastCGI-EmptyVars.py, qa/142-SCGI-ExtraVars.py: This
	jumbo-patch modifies the way in which the balancers used to work.
	From now on balancers (and therefore the FastCGI and SCGI support)
	will use the new concept to 'Application Servers'. Be careful,
	this change does change the configuration file format, although it
	makes much easier to configure the same application server across
	different virtual servers. The most common case: PHP.

	* admin/PageAdvanced.py, admin/PageGeneral.py: The keepalive
	option has been moved to the advanced page. A new option to enable
	or disable Chunked encoding has been added as well.

	* cherokee/connection-protected.h, cherokee/handler_cgi_base.c,
	cherokee/handler_cgi_base.h, cherokee/handler.h, cherokee/util.h,
	cherokee/util.c, cherokee/connection.c: Reimplements the Chunked
	encoding support.  Now it is system-wide and does less memory
	moves/allocations.

2008-09-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/CherokeeManagement.py: Updated the 'last option'
	configuration snippet to the current format.

	* cherokee/connection-protected.h, cherokee/handler_cgi_base.c,
	cherokee/handler_cgi_base.h, cherokee/connection.c: Fixes a
	chunked encoding issue while speeds it up. Now Chunked encoded
	connections are faster than with the first implementation.

2008-09-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c (add_data_sent_row): Fixes a
	memory initialization issue.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_add_headers):
	Fixes the chunked encoding support. It was not being used unless
	the applicating sent the Content-Length in which case a Keep-Alive
	reply was easier and faster to perform. Reported by Cesar Fernandez.

	* qa/172-Chunked-CGI.py, qa/Makefile.am: Adds a new QA to cover
	Chunked encoded responses from CGIs.

	* qa/138-ChangeUser-cgi.py (Test.Precondition): It does not need
	PHP.

2008-09-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source_interpreter.c (cherokee_source_interpreter_spawn):
	Ignores SIGCHLD trying to get rid as soon as possible of the zombi
	processes that are generated randomly when the server spawns
	php-cgi processes.

	* admin/config.py (Config.serialize.sorter): Fixed sorting
	function.  It is just a configuration file aesthetical fix.

	* admin/server.py, admin/main.template.html, admin/Page.py,
	admin/main.help.html, admin/PageStatus.py, admin/PageMain.py,
	admin/static/css/cherokee.css, admin/Makefile.am: Adds a new
	"Status" menu entry in Cherokee admin.

	* cherokee/main.c (process_launch): Report whenever the Cherokee
	worker could not be spawned.

	* admin/PageGeneral.py (PageGeneral._render_content): Fixes de TLS
	port configuration key. Reported by Csar Fernndez Gago
	<cesar@pk2.org>

2008-09-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/virtual_server.c, cherokee/server.c: The log opening
	order has changed. Now it creates the log files as the web server
	user (instead of root, in case it was launched as super-user).

	* cherokee/logger_writer.c: Open the logs with perms 0640 rather
	than 0644. It is not "Others"' business what the server does.

	* cherokee/main.c (figure_pid_file_path): Fixes the functionality,
	it was not working properly because and incorrect string
	comparison.

	* cherokee/main_worker.c, cherokee/handler_cgi_base.c,
	cherokee/thread.c, cherokee/server-protected.h, cherokee/server.c:
	Some signal management work.

2008-08-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.1, cherokee-worker.1, Makefile.am: Updates the manual
	pages. Now cherokee.1 shows the information and cherokee-worker.1
	is only a note. Additionally information about the signal handling
	was added to the cherokee man page.

	* cherokee/main_worker.c: Updates the signals. There were not
	coherent with the signals handled by main.c.

2008-08-31  Taher Shihadeh <taher@unixwars.com>

	* cherokee.1, cherokee-worker.1: changed man pages to accomodate
	recent program name changes.

	* doc/basics_running_cherokee.txt, doc/index.txt, doc/bundle.txt,
	doc/bundle_cherokee.txt: changed docs to reflect the new names.

2008-08-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am, cherokee/main.c, cherokee/main_guardian.c,
	cherokee/server.c, constants.h.pre, admin/configured.py.pre,
	admin/PageMain.py, admin/CherokeeManagement.py: Cherokee-guardian
	becomes Cherokee, and Cherokee is renamed to Cherokee-worker. The
	idea behind this change is to use the "guardian" feature by
	default.

2008-08-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/ModuleAdmin.py, admin/PageEntry.py, admin/server.py,
	admin/ModuleRedir.py, admin/ModuleDirlist.py,
	admin/ModuleHandler.py, admin/Module.py, admin/ModuleFile.py,
	admin/ModuleServerInfo.py, admin/ModuleCustomError.py,
	admin/ModuleScgi.py, admin/ModuleCgi.py, admin/ModuleCommon.py,
	admin/ModuleFcgi.py, admin/PageVServer.py, admin/RuleList.py,
	admin/ModuleMirror.py: Hides the Document Root entry box depending
	on the case. There were a few handler with which did not make
	sense to show it such as FastCGI, SCGI, redirections, server info,
	etc.

	* admin/config.py: Adds a couple of convenience methods and
	improves the serialization.

	* admin/ModuleCgi.py, admin/ModuleFcgi.py, admin/ModuleScgi.py:
	Hides the "script alias", "change user" and "check file" options
	in the FastCGI and SCGI modules. There barely made sense there.

	* admin/CherokeeManagement.py (cherokee_build_info_has): This
	function was randomly failing because a problem with the caching
	structure.  This patch fixing the problem.

2008-08-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.h (OPENSSL_NO_TLSEXT): Fixes the twisted
	OPENSSL_NO_TLSEXT define. It looks wrong to require a define in
	case a feature is NOT present on the system.

	* cherokee/socket.c, cherokee/connection-protected.h,
	cherokee/socket.h, cherokee/source.c, cherokee/thread.c,
	cherokee/thread.h, cherokee/handler_scgi.c, cherokee/server.c,
	cherokee/server-protected.h, cherokee/connection.c: This patch
	fixes a problem with Keep-Alive connections. It also cleans up a
	few related methods.

2008-08-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre: Fixes an absurdly high default
	timeout.

2008-08-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	It was not using the right SERVER_SOFTWARE string.

	* cherokee/connection.c (cherokee_connection_build_header): Fixes
	a problem with scgi/fcgi/cgi and keep-alive connections. Reported
	by Rui Lopes <rgl@ruilopes.com>

	* qa/171-SCGI-Keepalive.py, qa/Makefile.am: Adds a new QA test. It
	ensures that the SCGI handler replies Connection: Keep-Alive
	connections without closing the connection.

2008-08-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cget/Makefile.am (cget_LDADD): Added libcherokee-base.la to the
	linking paramater of cget. This missing parameter might have
	something to do with a compilation issue on LinuxFromScratch.

2008-08-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/virtual_server.c: There was a wrong #ifdef that made
	the build to fail if compiling without OpenSSL. Patch by Rui Lopes
	<rgl@ruilopes.com>

	* cherokee/http.h (http_method_with_input): PUT has also
	input. Reported/Patched by Stefan de Konink <stefan@konink.de>

2008-08-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/virtual_server.c, cherokee/virtual_server.h,
	cherokee/socket.c: Adds TLS SNI support to the GNUTLS backend.

	* cherokee/virtual_server.c, cherokee/socket.c, cherokee/socket.h,
	cherokee/downloader.c: Adds TLS SNI support to the OpenSSL
	backend.

2008-08-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_custom_error.c, configure.in,
	cherokee/handler_custom_error.h, cherokee/Makefile.am,
	admin/ModuleCustomError.py, admin/consts.py: This patch adds a new
	handler for replying custom HTTP error codes. It includes both the
	server side and the administrarion interface module.

	* cherokee/virtual_server.c, cherokee/util.c, cherokee/util.h,
	admin/PageEntry.py: Adds support for time extensions in the
	"Expire" sections. For instance, now it allows setting "2h" for
	two hours, or "1w" for one week.

	* admin/static/js/common.js: Fixes a weird problem with Firedfox.
	If window.location.reload() is called it pops a dialog asking
	whether it should resend the last post. Using the twisted:
	window.location = window.location assignament it does the same
	thing without showing the window question.

	* cherokee/Makefile.am (libcherokeeinclude_HEADERS): Installs a
	missing header: cache.h. Reported by Stefan de Konink.

	* cherokee/rule_list.c, cherokee/virtual_server.c,
	cherokee/connection-protected.h, cherokee/config_entry.c,
	cherokee/config_entry.h, cherokee/connection.c,
	admin/PageEntry.py, admin/consts.py: Adds support por expiration
	headers.  This patch adds support to both the server and the
	configuration interface.

	* cherokee/config_node.c (cherokee_config_node_read_long),
	cherokee/config_node.h: Adds a new method to read long integers.

	* cherokee/util.h, cherokee/util.c (cherokee_mkdir_p): Adds a new
	cheroke_mkdir() and fixes compilation on Windows:
	http://code.google.com/p/cherokee/issues/detail?id=96

2008-08-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c (build_cache_table_content): It
	adds a new table showing some general file caching statistics.

	* cherokee/connection.c (cherokee_connection_set_redirect),
	cherokee/connection-protected.h, cherokee/rule_directory.c,
	cherokee/handler_dirlist.c, cherokee/connection.c: Fixes another
	problem with redirections. It was failing to redirect requests
	targeting a directory rule entry without a empty request (not even
	the root slash). There is a new function now to perform this sort
	of redirections, so it should be much safer to use it from
	handler_dirilst and rule_directory.

	* cherokee/handler_dirlist.c: Fixes a problem with redirections of
	local user directories.

	* admin/CherokeeManagement.py: Fixes a problem with the Hard
	restart. Reported by Miguel Angel Ajo.

2008-08-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c: Fixes an issue of redirections replies over
	Keepalive connections. This regression was introducced right
	before releasing 0.8.0.

	* cherokee/handler_dirlist.c: Adds a final slash whenever the list
	entry is a directory, so next request does go through a
	redirection reply.

	* cherokee/handler_dirlist.c: Fixes an issue redirecting
	connections when the server does not run on the port 80.

2008-08-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler.h, cherokee/connection.c: Slightly improves the
	chunked encoding support.

	* cherokee/buffer.c (cherokee_buffer_convert_to_chunked): Added
	new function. It converts buffer into a chunked "Transfer
	Encoding" packet.

2008-08-16  Taher Shihadeh <taher@unixwars.com>

	* doc/basics_installation_svn.txt: added info.

2008-08-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/balancer.c (cherokee_balancer_instance): Adds a sanity
	check (only broken configurations could fail on this check).

2008-08-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_mirror.c, cherokee/source_interpreter.c,
	cherokee/source_interpreter.h, cherokee/source.c,
	cherokee/source.h, cherokee/handler_fcgi.c,
	cherokee/handler_scgi.c: Clean up the code where handler were
	using 'source' object in order to connect to an external
	information source. This patch removes some code duplication.

	* admin/PageVServer.py (PageVServer._render_vserver_guts): Fixes
	an unfortunate error. The administration interface fails to set
	the security files (certificates and keys) because a previous
	variable value messed up the property key.

2008-08-15  Taher Shihadeh <taher@unixwars.com>

	* admin/PageVServers.py, admin/PageVServer.py,
	admin/static/css/cherokee.css: addresses UI enhancement proposal
	at http://code.google.com/p/cherokee/issues/detail?id=86.

2008-08-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c, cherokee/socket.h, cherokee/thread.c,
	cherokee/thread.h, cherokee/connection.c: Fixes the TLS/SSL
	support. It adds support for a new concept within the server: a
	cherokee_buffer_t can have pending information to be read, so in
	addition to the file descriptor this property must be checked
	whenever it real status need to be known.

	* qa/run-tests.py, qa/base.py: Fixes two minor issues.

	* 0.8.0 released

	* doc/Makefile.am (EXTRA_DIST): Fixes an issue with the
	documentation distribution. It was not being included in the
	tarball.

2008-08-14  Taher Shihadeh <taher@unixwars.com>

	* doc/basics_download.txt, doc/basics_installation.txt,
	doc/basics_installation_unix.txt,
	doc/basics_installation_windows.txt, doc/basics_requirements.txt,
	doc/basics_running_cherokee.txt, doc/basics.txt,
	doc/basics_upgrade.txt, doc/basics_why_cherokee.txt ,
	doc/build/build_web.sh, doc/build/doc.conf, doc/build/web.conf,
	doc/bundle_cget.txt, doc/bundle_cherokee-config.txt,
	doc/bundle_cherokee-guardian.txt, doc/bundle_cherokee-tweak.txt,
	doc/bundle_cherokee.txt, doc/bundle_spawn-fcgi.txt,
	doc/bundle.txt, doc/config_advanced.txt, doc/config_encoding.txt,
	doc/config_general.txt, doc/config_icons.txt,
	doc/config_mime_types.txt, doc/config_quickstart.txt,
	doc/config.txt, doc/config_virtual_servers_rule.txt,
	doc/config_virtual_servers.txt, doc/cookbook_authentication.txt,
	doc/cookbook_cross_compilation.txt, doc/cookbook_django.txt,
	doc/cookbook_managing_logs.txt, doc/cookbook_optimizations.txt,
	doc/cookbook_php.txt, doc/cookbook_ror.txt, doc/cookbook_ssl.txt,
	doc/cookbook.txt, doc/dev_api.txt, doc/dev_cherokee.conf.txt,
	doc/dev_debug.txt, doc/dev_examples.txt, doc/dev.txt,
	doc/index.txt, doc/media/css/cherokee_doc.css,
	doc/modules_balancers_round_robin.txt, doc/modules_balancers.txt,
	doc/modules_encoders_deflate.txt, doc/modules_encoders_gzip.txt,
	doc/modules_encoders.txt, doc/modules_handlers_admin.txt,
	doc/modules_handlers_cgi.txt, doc/modules_handlers_common.txt,
	doc/modules_handlers_dirlist.txt, doc/modules_handlers_fcgi.txt,
	doc/modules_handlers_file.txt, doc/modules_handlers_mirror.txt,
	doc/modules_handlers_redir.txt, doc/modules_handlers_scgi.txt,
	doc/modules_handlers_server_info.txt, doc/modules_handlers.txt,
	doc/modules_loggers_combined.txt, doc/modules_loggers_ncsa.txt,
	doc/modules_loggers.txt, doc/modules_loggers_w3c.txt,
	doc/modules.txt, doc/modules_validators_htdigest.txt,
	doc/modules_validators_htpasswd.txt,
	doc/modules_validators_ldap.txt, doc/modules_validators_mysql.txt,
	doc/modules_validators_pam.txt, doc/modules_validators_plain.txt,
	doc/modules_validators.txt, doc/other_goodies.txt, doc/other.txt:
	hopefully that is enough documentation. For now anyway. :)

2008-08-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/conf.py, qa/run-tests.py: Fixes the TLS/SSL execution.

	* cherokee/connection-protected.h, cherokee/thread.c,
	cherokee/connection.c: Polish the Keep-Alive management.

	* cherokee/server.c (add_vserver): Adds a sanity check. It makes
	sure that the virtual server number can be actually converted into
	an integer number.

	* cherokee/server.c: Clean up. Removes an unnecessary check that
	was implemented in the virtual server class.

	* cherokee/handler_dirlist.c (check_request_finish_with_slash):
	Now it sends redirections using the FQDN whenever it is
	possible (as described in the RFC). Partially fixes:
	http://code.google.com/p/cherokee/issues/detail?id=39

	* cherokee/thread.c (cherokee_thread_step_MULTI_THREAD): Fixes a
	problem with the Keep-Alive timeout.

	* cherokee/connection.c: Allows 3xx replies to keep the connection
	alive.

2008-08-13  Taher Shihadeh <taher@unixwars.com>

	* doc/basics.txt, doc/basics_why_cherokee.txt,
	doc/build/chunked_template.conf, doc/build/combined_template.conf,
	doc/build/combined.txt, doc/build/doc.conf, doc/bundle.txt,
	doc/config.txt, doc/cookbook_authentication.txt,
	doc/cookbook_cross_compilation.txt, doc/cookbook_django.txt,
	doc/cookbook_managing_logs.txt, doc/cookbook_optimizations.txt,
	doc/cookbook_php.txt, doc/cookbook_ror.txt, doc/cookbook_ssl.txt,
	doc/cookbook.txt, doc/dev_api.txt, doc/dev_cherokee.conf.txt,
	doc/dev_examples.txt, doc/dev.txt, doc/index.txt,
	doc/modules_handlers_fcgi.txt, doc/modules_handlers_scgi.txt,
	doc/modules.txt, doc/modules_validators_htdigest.txt,
	doc/modules_validators_htpasswd.txt,
	doc/modules_validators_ldap.txt, doc/modules_validators_mysql.txt,
	doc/modules_validators_pam.txt, doc/modules_validators_plain.txt,
	doc/other_goodies.txt, doc/other.txt: almost done with
	documents. Added some snapshots too.

2008-08-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/170-Error-ContentLength.py, qa/Makefile.am: Added a new QA
	test to ensure that even if a CGI/SCGI/FastCGI handler (not
	configured to send errors) replies a non-200 error with the
	Content-Length header, it is dropped before setting the server
	error message so there is not a duplicated header with different
	values.

	* Index: cherokee/Makefile.am, cherokee/connector.c,
	cherokee/connector.h, cherokee/source.c, cherokee/downloader.c,
	cherokee/server-protected.h, cherokee/server.c: The
	cherokee_connector_t class is no longer needed. Removed.

	* cherokee/main_admin.c (main): Ignore SIGCHLD. We want to be
	there that no zombie processes lingers.

	* admin/static/js/common.js: Fixes a reloading issue in Firefox. I
	do hope it does not break any other browser support. Fixes:
	http://code.google.com/p/cherokee/issues/detail?id=77

	* cherokee/handler_server_info.c, admin/ModuleServerInfo.py: Both
	the server info handler and its cherokee-admin module have been
	reworked in order to make its configuration options more
	consistent. It was showing too much internal stuff.

	* cherokee/plugin_loader.c (cherokee_plugin_loader_get_mods_info):
	The last entry for the built-in modules was not being printed
	properly. Cherokee-admin wasn't showing some modules in the
	interface because of this issue.

	* admin/ModuleBalancer.py (ModuleBalancerGeneric._op_render): Adds
	the missing "removing" option to the host entries. Fixes the first
	part of: http://code.google.com/p/cherokee/issues/detail?id=87.
	It also improves the page layout a little bit.

	* admin/ModuleMirror.py: The "Generic balancer" handler should not
	show an option to execute an interpreter. It does not make sense
	for this handler. Fixes the second part of:
	http://code.google.com/p/cherokee/issues/detail?id=87

	* cherokee/resolv_cache.c, cherokee/socket.c, cherokee/socket.h,
	cherokee/source.c: Fixes the Unix socket support of the FastCGI
	and SCGI handlers (plus some code clean up).

	* cherokee/handler_mirror.c, cherokee/handler_mirror.h: Fixes the
	TCP mirroring handler. It fixes it to use the new async client
	connections.

2008-08-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_clean_error_headers),
	cherokee/thread.c (process_active_connections): It had to remove
	the Content-Length header if the handler is not reporting error
	messages because it has to add its own. Fixes a bug with previous
	versions (cgi, fcgi and scgi).

2008-08-12  Taher Shihadeh <taher@unixwars.com>
	* doc/cookbook_ror.txt, doc/cookbook_php.txt,
	doc/cookbook_django.txt, doc/cookbook_optimizations.txt,
	doc/modules_handlers_cgi.txt, doc/modules_handlers_fcgi.txt,
	doc/modules_validators_mysql.txt, doc/modules_validators_ldap.txt,
	doc/modules_validators_pam.txt, doc/other_goodies.txt: more
	changes and some new docs.

2008-08-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/logger_writer.c, cherokee/logger_writer.h,
	cherokee/logger_w3c.c, cherokee/logger_ncsa.c,
	cherokee/connection.c, admin/PageVServer.py: This multipurpose
	patch clean up the logger writter class, and fixes the W3C support
	in the administration interface. It fixes:
	http://code.google.com/p/cherokee/issues/detail?id=89

	* admin/pyscgi.py, admin/server.py, admin/Page.py,
	admin/CherokeeManagement.py: Adds a option in the left hand menu
	bar to allow users to reset the server at the same time that the
	new configuration is written.

	* admin/server.py (main): It should only bind to localhost. Fixes
	http://code.google.com/p/cherokee/issues/detail?id=91

2008-08-12  Taher Shihadeh <taher@unixwars.com>

	* admin/ModuleLdap.py, admin/ModuleMysql.py: removed unnecessary
	empty parameter checks for handlers that can provide default
	values.

2008-08-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c (parse_header): Added a check for
	the 'X-Accel-Redirect' in addition to the 'X-Sendfile' previously
	supported. It has the exact same behavior.

2008-08-11  Taher Shihadeh <taher@unixwars.com>

	* doc/config_virtual_servers.txt, doc/modules_balancers.txt,
	doc/modules_handlers_admin.txt, doc/modules_handlers_cgi.txt,
	doc/modules_handlers_fcgi.txt, doc/modules_handlers_mirror.txt,
	doc/modules_handlers_scgi.txt,
	doc/modules_handlers_server_info.txt,
	doc/modules_loggers_combined.txt, doc/modules_loggers_ncsa.txt,
	doc/modules_loggers.txt, doc/modules_loggers_w3c.txt,
	doc/modules_validators_pam.txt, doc/modules_validators.txt,
	doc/other_goodies.txt: several modifications and six new files
	added.

2008-08-08  Taher Shihadeh <taher@unixwars.com>

	* doc/modules_handlers_cgi.txt, doc/modules_validators.txt,
	doc/modules_handlers_common.txt, doc/modules_handlers_fcgi.txt,
	doc/modules_balancers.txt, doc/modules_handlers.txt,
	doc/basics_why_cherokee.txt, doc/modules_handlers_redir.txt,
	doc/config_quickstart.txt, doc/modules_handlers_file.txt,
	doc/modules_loggers.txt, doc/modules_handlers_dirlist.txt,
	doc/other_goodies.txt, doc/modules_encoders.txt: more
	documentation.

2008-08-07  Taher Shihadeh <taher@unixwars.com>

	* cherokee-guardian.1, doc/basics_installation.txt,
	doc/basics_installation_windows.txt, doc/basics.txt,
	doc/basics_upgrade.txt, doc/build/chunked_template.conf,
	doc/bundle_cget.txt, doc/bundle_cherokee-admin.txt,
	doc/bundle_cherokee-config.txt, doc/bundle_cherokee-guardian.txt,
	doc/bundle_cherokee-tweak.txt, doc/bundle_cherokee.txt,
	doc/bundle.txt, doc/config_encoding.txt,
	doc/config_quickstart.txt, doc/config.txt,
	doc/config_virtual_servers_rule.txt,
	doc/config_virtual_servers.txt, doc/cookbook.txt,
	doc/dev_cherokee.conf.txt, doc/dev_debug.txt, doc/dev.txt,
	doc/media/css/cherokee_doc.css,
	doc/modules_balancers_round_robin.txt, doc/modules_balancers.txt,
	doc/modules_encoders_deflate.txt, doc/modules_encoders.txt,
	doc/modules.txt, doc/TOC.txt: editions to and several new file
	additions. Documentation looks better now. Still lots of work to
	do.

2008-08-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c, cherokee/main_guardian.c,
	cherokee/server-protected.h, cherokee/server.c, cherokee/server.h:
	Implemented graceful restart (aka: from now on, you can upgrade
	your Cherokee binary without killing the existing connections).

	* cherokee/socket.c: Reimplemented using the TCP layer nodelay
	property instead of the file descriptor level.

	* cherokee/util.h, cherokee/util.c (cherokee_mkdir_p): Adds a new
	function. We will need it eventually.

	* cherokee/handler_error_nn.c, cherokee/handler_error_nn.h,
	qa/049-NN-broken.py, qa/048-NN.py: Fixes the NN support and adapts
	the QA test to the new behavior (it is error handler now).

	* cherokee/connection.c (cherokee_connection_parse_header): Adds a
	check to ensure that the server will not use keepalive when it is
	about to reach the overload limit (>95% of the total capacity).

	* cherokee/server.c (cherokee_server_new): timeout is 5 seconds
	now. That should be more than enough for the average case.

	* cherokee/macros.h, cherokee/socket.c, cherokee/thread.c,
	cherokee/thread.h, cherokee/util.c, cherokee/util.h,
	cherokee/fdpoll-port.c, cherokee/server.c: This patch makes the
	server to reply a quickly built 503 error page when it is
	overloaded. This is a very special case because the page is not
	sent by using the server infrastructure but by punching a
	pre-built string into the socket and closing it right after it.
	Additionally, the patch also do some clean-up along the way.

2008-08-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fcgi_manager.c, cherokee/socket.c, cherokee/source.c,
	cherokee/downloader_async.c, cherokee/common-internal.h,
	cherokee/thread.c, cherokee/handler_file.c, cherokee/util.c,
	cherokee/util.h, cherokee/handler_scgi.c, cherokee/connection.c,
	cherokee/server.c, cherokee/logger_writer.c: Here is another patch
	for a nasty bug that has been showing up every now and then since
	long time ago. We catch ya! Hehe! Well, now, seriously: There was
	a problem with random delays (a few milliseconds) that were being
	caused by incorrect socket properties.

2008-08-06  Taher Shihadeh <taher@unixwars.com>

	* doc/basics_requirements, doc/bundle_cget.txt, doc/config_*: doc
	additions.

2008-08-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added a check for the fork() syscall. One of the
	logger back-ends was not working because of this.

	* admin/PageVServers.py: Fixes regression. Cloning was broken.

	* admin/static/images/favicon.ico, cherokee/main_admin.c,
	admin/static/images/Makefile.am: Adds the missing favicon.ico
	file.

	* cherokee/socket.c (cherokee_socket_connect): EINVAL was not
	being checked.

	* cherokee/handler_scgi.c (connect_to_server),
	cherokee/handler_fcgi.c (connect_to_server): Fixes a bug that
	could lead the server to a crash when it was trying to spawn a new
	interpreter.

2008-08-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py, qa/conf.py: Adds dtruss support (additionally
	to the previous strace support).

2008-08-05  Taher Shihadeh <taher@unixwars.com>

	* doc/config_*, doc/bundle_*, doc/cookbook_*, doc/dev_*: dompleted
	documenting another section, plus multiple fixes to the existing
	sections. Some more screeshots added.

	* admin/Page*.py: minor fixes.

2008-08-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_nn.c, cherokee/handler_nn.h, admin/consts.py:
	From now on, the 'nn' handler is an error handler (it makes much
	more sense like this).

	* admin/Theme.py, admin/Post.py, admin/PageMime.py, admin/Form.py,
	admin/PageIcon.py: Fixes a problem with some post entries. For
	instance, the Mime encoding page could not remove entries
	containing the '+' character.

2008-08-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/config_reader.c (cherokee_config_reader_parse_string):
	Fixes an issue processing empty keys. Fixes:
	http://code.google.com/p/cherokee/issues/detail?id=59

	* admin/PageEntry.py (PageEntry._get_title): Fixes a regression.

2008-08-04  Taher Shihadeh <taher@unixwars.com>

	* doc/basics_*, doc/bundle_*: completed a couple of the new sections.

	* doc/modules_validators_ldap.txt: documentation for the LDAP handler.

2008-08-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	*admin/server.py, admin/PageVServers.py, admin/RuleList.py:
	Implements the virtual server re-ordering (drag and drop).

2008-08-03  Taher Shihadeh <taher@unixwars.com>

	* doc/*: more documentation contributions and refactoring.

2008-08-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._op_render_vserver_details):
	Fixes the title text.

	* contrib/07to08.py: Added a check to ensure that the script is
	executed with two parameters (the input and output file paths).

	* admin/CherokeeManagement.py, admin/PageVServer.py,
	admin/PageVServers.py, cherokee.conf.sample.pre,
	cherokee/connection.c, cherokee/handler_cgi.c,
	cherokee/handler_cgi_base.c, cherokee/main.c,
	cherokee/main_admin.c, cherokee/server-protected.h,
	cherokee/server.c, cherokee/thread.c, cherokee/virtual_server.c ,
	cherokee/virtual_server.h, performance.conf.sample.pre,
	qa/015-CGI-simple.py, qa/016-CGI-pathinfo.py,
	qa/017-CGI-pathinfo2.py, qa/018-CGI-pathinfo3.py,
	qa/020-VirtualHost.py, qa/021-VirtualHost2.py,
	qa/029-Post+Without-lenght.py, qa/030-Post+urlencoded.py,
	qa/031-Post+urlencoded2.py, qa/033-DirIndex.py,
	qa/034-DirIndex2.py, qa/035-PHP-simple.py,
	qa/036-DocumentRoot-common.py, qa/039-Auth-Basic.py,
	qa/040-Auth-Basic2.py, qa/041-Auth-Basic3.py, qa/044-Home.py,
	qa/045-Home2.py, qa/046-Redir.py, qa/047-Redir2.py, qa/048-NN.py,
	qa/049-NN-broken.py, qa/050-HeadBody.py, qa/061-PAM.py,
	qa/062-PAM2.py, qa/063-DocumentRoot.py, qa/064-DirectoryIndex.py,
	qa/066-DirectoryIndex3.py, qa/067-PathInfo.py,
	qa/068-PathInfo2.py, qa/069-PathInfo3.py, qa/070-Inherit.py,
	qa/071-Inherit2.py, qa/072-Inherit3.py, qa/073-Access.py,
	qa/074-Access2.py, qa/075-AccessRange.py, qa/076-AccessRange2.py,
	qa/077-AccessRange3.py, qa/078-AccessAny.py, qa/079-Extension.py,
	qa/080-Extension2.py, qa/081-DocumentRoot-Common-index.py,
	qa/082-Auth-header.py, qa/083-RedirParam.py,
	qa/084-RedirParamShow.py, qa/085-AuthUsers.py,
	qa/086-AuthUsers2.py, qa/088-CGI-envs.py, qa/089-gzip-encoding.py,
	qa/090-Digest.py, qa/091-Digest2.py, qa/092-Digest3.py,
	qa/093-InvalidLinks.py, qa/094-URL-request.py ,
	qa/095-htpasswd-apache-md5.py, qa/096-htpasswd-md5.py,
	qa/097-htpasswd-sha1.py, qa/098-htpasswd-crypt.py,
	qa/099-htpasswd-plain.py, qa/100-Digest-htdigest.py,
	qa/102-QueryString.py, qa/103-ScriptName.py,
	qa/104-ScriptAlias_PathInfo.py, qa/105-If-Range.py,
	qa/106-If-Range2.py, qa/107-Priority1.py, qa/108-Priority2.py,
	qa/109-Priority3.py, qa/110-Priority4.py, qa/112-NiceError-CGI.py,
	qa/113-HeaderFile.py, qa/114-HeaderFile2.py, qa/115-Respin.py,
	qa/116-RequestTiny.py, qa/117-DomainToDir.py,
	qa/118-Request-redir.py, qa/121-NoUserDir.py, qa/122-Methods.py,
	qa/123-ImplicitRedit.py, qa/124-DomainToDir2.py,
	qa/125-domain-redir1.py, qa/126-SCGI.py, qa/127-SCGI-Post.py,
	qa/128-ValidMethod-common.py, qa/129-Basic-EmptyPasswd.py,
	qa/130-Digest-EmptyPasswd.py, qa/131-ChangeUser-phpcgi.py,
	qa/135-RedirParams.py, qa/138-ChangeUser-cgi.py,
	qa/139-domain-wildcards1.py, qa/140-SCGI-EmptyVars.py,
	qa/141-FastCGI-EmptyVars.py, qa/142-SCGI-ExtraVars.py,
	qa/143-ContentRange-NoIO.py, qa/144-ContentRange2-NoIO.py,
	qa/145-ContentRange3-NoIO.py, qa/146-ContentRange4-NoIO.py,
	qa/147-ContentRange-Double-NoIO.py,
	qa/148-ContentRange-Double2-NoIO.py, qa/149-Common-PathInfo.py,
	qa/150-Common-No-PathInfo.py, qa/151-SCGI-vars.py,
	qa/152-SCGI-vars2.py, qa/153-SCGI-vars-root.py,
	qa/154-DirRedirection.py, qa/155-DirRedirection2.py,
	qa/157-Dirlist-symlinks.py, qa/158-RuleHeader1.py,
	qa/159-RuleHeader2.py, qa/160-RuleNot1.py, qa/161-RuleNot2.py,
	qa/162-RuleAnd1.py, qa/163-RuleAnd2.py, qa/164-RuleOr1.py,
	qa/165-RuleOr2.py, qa/166-xsendfile1.py, qa/167-RuleGeoIP.py,
	qa/168-Deflate-Encoding.py, qa/169-Pipermail.py, qa/run-tests.py:
	Here is a new jumbo-patch. It changes the virtual server
	configuration format a little bit. Basically, the virtual server
	are now stored as a sorted list instead of some sort of
	dictionary. In this way, the virtual server matching is done in a
	much clean and understandable way. There is still an improvement
	to be made in order to get this feature done and dusted: the
	administration interface ought to allow to re-order the virtual
	server list as the rule list is reordered. There is a script
	locate at the contrib directory that allows to easily convert
	Cherokee 0.7 configuration files to this new format (Cherokee
	0.8).

2008-08-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/config_reader.c (cherokee_config_reader_parse_string):
	Fixes the change about forcing the properties to be lowcase. It
	was a mistake, actually. There are certain entries that should be
	written in uppercase such as environment variables. This patch
	removes the lower-case restriction and adds a check to ensure that
	there is not entry with the case name and different case as child
	of the same configuration node. Eg: vserver!001!example and
	vserver!001!Example.

2008-08-01  Taher Shihadeh <taher@unixwars.com>

	* doc/build/installation_unix.txt, doc/build/download.txt,
	doc/build/installation_windows.txt, doc/build/why_cherokee.txt,
	doc/build/running_cherokee.txt, doc/build/TODO: beggining to
	upload the new proposed documentation drafts.

2008-08-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/07to08.py, contrib/Makefile.am: Script to convert
	Cherokee 0.7.x configurations files to the upcoming 0.8 format.

	* cherokee/config_reader.c (cherokee_config_reader_parse_string):
	All the configuration key and key entries must be low case.

	* cherokee/buffer.c (cherokee_buffer_to_lowcase): New function.

	* cherokee/http.h (http_gateway_timeout_string): Typo. Reported by
	Miguel Angel Ajo Pelayo.

	* cherokee/socket.c, cherokee/buffer.c, cherokee/connection.c,
	cherokee/handler_cgi_base.h, cherokee/source.c, cherokee/thread.c,
	cherokee/handler_fcgi.c, cherokee/util.c, cherokee/handler_cgi.c,
	cherokee/connection-protected.h, cherokee/handler_scgi.h,
	cherokee/handler_fcgi.h, cherokee/handler_scgi.c: This jumbo-patch
	fixes a really nasty bug (and a few other minor issues I found
	along the way) that caused Cherokee to fail to handle PHP FastCGI
	overloads "nicely". Actually, the main problem is the lousy
	FastCGI implementation of php-cgi, which due to a design flaw,
	does not notify when it run out of resources (child processes).
	This patch makes Cherokee perform much better when the PHP
	interpreter starts misbehaving. (It would be grand if the PHP
	crowd would have fixed the php-cgi design problem.. but, well,
	after 5 years I have lost my faith). At least now Cherokee knows
	how to deal with such a broken implementation. <sigh!!>

2008-07-31  Taher Shihadeh <taher@unixwars.com>

	* spawn-fastcgi.1: fixed a minor glitch unknowinlgy introduced in
	the past.

	* doc/build/TODO: plan for improved documentation is needed.

2008-07-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am: Fixes a compilation issue. Handler CGI
	should install alright now. Fixes partially bug #61:
	http://code.google.com/p/cherokee/issues/detail?id=61

2008-07-29  Taher Shihadeh <taher@unixwars.com>

	* doc/cherokee_tweak.txt: added some documentation.

2008-07-29  Milo van der Linden <milovanderlinden@gmail.com>

	* doc/admin.txt, doc/compiling_and_installing_unix.txt: some
	documentation patches.

2008-07-28  Taher Shihadeh <taher@unixwars.com>

	* cherokee-tweak.1, cherokee-admin.1, cherokee.1: manpages needed
	an update.

2008-07-28  Taher Shihadeh <taher@unixwars.com>

	* admin/PageEntry.py, admin/PageEncoders.py, admin/PageAdvanced.py,
	admin/PageVServers.py, admin/PageGeneral.py, admin/PageMime.py,
	admin/PageVServer.py, admin/Form.py, admin/PageFeedback.py,
	admin/PageIcon.py: Configuration changes are submitted automatically.
	Many users were lost having to submit and then apply the modifications.

2008-07-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/CherokeeManagement.py (is_PID_alive): Added a new case to
	support Irix.

	* configure.in, cherokee/util.c: Added a new entry to support IRIX
	compilation. (Patch by BSDero <bsdero@gmail.com>)

	* cherokee/main.c, cherokee/main_guardian.c,
	cherokee/main_tweak.c, cget/main.c: Getopt inclusion has been
	rewritten in order to easy compilation on system with no
	getopt_long support. (Patch by BSDero <bsdero@gmail.com>)

2008-07-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/iocache.c (iocache_get): It has to return the last
	known stat() status whenever the iocache entry object cannot be
	updated and only the stat() information is requested. It fixes a
	hard to reproduce bug.

	* cherokee/virtual_server.c, cherokee/logger.c, cherokee/cache.c,
	cherokee/socket.c, cherokee/socket.h, cherokee/main_guardian.c,
	cherokee/server.c: A few compilation warning have been fixed (when
	compiling without any SSL/TLS library)

	* cherokee/socket.c, cherokee/socket.h, cherokee/connection.c,
	configure.in, acinclude.m4: Added support for TCP_CORK on BSD and
	OS X systems. Actually, it's called TCP_NOPUSH on those.

	* admin/config.py (Config.serialize): Sorts the configuration file
	content (it's just eye candy for Cherokee developers).

	* admin/config.py (Config.clone): Fixes an issue while cloning
	domains. Reported by Miguel Angel Ajo.

	* admin/Form.py (FormHelper.ApplyChangesDirectly): Adds a new
	method for accessing the configuration directly.

	* admin/PageVServer.py (PageVServer._op_handler): Fixes a
	bug. 'Final' checkboxes were deselected when submitting any other
	information from the Virtual Server configuration page.

	* admin/server.py (Handler.handle_request): Implements support for
	redirections coming from error pages.

	* cherokee/handler_redir.c, cherokee/rule_request.c,
	cherokee/rule_request.h, cherokee/connection-protected.h,
	cherokee/connection.c: Fixes a concurrency issue. There were a few
	values that were stored within a common structure. This may end up
	leading the server to build wrong redirection addresses.

2008-07-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cache.c (update_ghost_b1, update_ghost_b2): Takes care
	of the case when length of the list -that we are dividing by- is
	zero.

	* cherokee/handler_cgi_base.c (xsendfile_add_headers): Fixes an
	issue between the X-Sendfile handling code and the new I/O cache
	implementation.

	* cherokee/md5crypt.c: Fixed to be reentrant. Besides, it improves
	its internal memory management technique (that could have leaded
	to server to a segment fault).

2008-07-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/access.c (cherokee_access_ip_match): Fixes a out of
	memory problem (segment fault) when the tracing was activated.

2008-07-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/iocache.c, cherokee/iocache.h
	cherokee/connection-protected.h, cherokee/handler_cgi_base.c,
	cherokee/handler_common.c, cherokee/thread.c, cherokee/thread.h,
	cherokee/handler_file.c, cherokee/server-protected.h,
	cherokee/connection.c, cherokee/server.c: The I/O cache has been
	reimplemented. Now it uses the new cherokee_cache_t class. It
	should be faster than its predecessor.

	* cherokee/cache.c, cherokee/cache.h, cherokee/Makefile.am,
	cherokee/cherokee.h: Added new cherokee_cache_t class. It
	implements a generic cache policy class.

	* qa/run-tests.py (mainloop_iterator): Fixes a really nasty bug
	that was making the QA sets to report weird errors.

2008-07-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py (mainloop_iterator): Only the main thread should
	print the exiting message.

	* cherokee/version.c (cherokee_version_add_w_port): These strings
	were being generated with the "Port XX" before the server version
	number (which is obviously an error).

2008-07-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server-protected.h, cherokee/server.c: Removes some
	useless code. A web server listening to a Unix socket looks (now)
	like a dumb idea to me. (Looked like a good idea at that moment).

	* cherokee/Makefile.am, cherokee/connector.c,
	cherokee/connector.h, cherokee/avl_r.c, cherokee/source.c,
	cherokee/downloader.c, cherokee/server-protected.h,
	cherokee/server.c: Added a new cherokee_connector_t class. It
	takes care of the number of concurrent connect() calls. It may
	happen that all the threads try to connect() to unresponsive
	resources, so the server would block.

2008-07-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am, cherokee/init.c,
	cherokee/handler_server_info.c, cherokee/bogotime.c,
	cherokee/thread.c, cherokee/bogotime.h, cherokee/nonce.c,
	cherokee/server-protected.h, cherokee/iocache.c,
	cherokee/connection.c, cherokee/server.c: The 'bogonow'
	time (trick) has been moved to a separate file. It is no longer a
	cherokee_server_t property, so it can be accessed from within any
	class. This is mostly a clean up patch.

	* cherokee/main_guardian.c (main): Clean up.

2008-07-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* doc/Makefile.am: Removes unneeded clean.

	* configure.in: Removed Python docutils check.

2008-07-14  Taher Shihadeh <taher@unixwars.com>

        * doc/*: Changed documentation to Asciidoc.

2008-07-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_guardian.c (process_launch): This pice of code
	should have been updated when Cherokee started using getopt_long.
	The patch changes -b (the old parameter) by -d, and adds the long
	version of the same parameter.

2008-07-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_error.c (build_hardcoded_response_page): This
	handled has to take conn->web_directory into account. This patch
	fixes a regression that I introducced a few days ago when I was
	cleaning up the web_directory mess.

	* cherokee/handler_error.c (cherokee_handler_error_add_headers):
	Removed P3P header entry. It's useless.

	* admin/PageVServers.py (PageVServers._render_vserver_list): Added
	a new option for cloning virtual servers.

	* admin/PageVServer.py: Adds support for renaming virtual
	servers (its nickname, actually).

	* admin/config.py: Adds two new methods: clone() and rename() for
	handling tree pieces.

	* admin/PageMain.py, admin/Table.py: The couple of tables in the
	main page look a bit better now.

	* themes/default/theme.css, themes/default/header.html: Print the
	time and date with a fixed width font.

2008-07-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServers.py (domain_cmp): Improves the default sorting
	function. It takes the different domain parts into account so
	similar domains are near of each other.

	* cherokee/handler_dirlist.c (render_file): Print "link" instead
	of the size when listing a link.

	* cherokee/handler_file.c (cherokee_handler_file_custom_init):
	Fixes a small issue with IO cache and the encoders. The server was
	using IO cache objects even if it should not.

2008-07-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._render_logger): Show the
	"file" entry when a new logger is selected.

	* admin/consts.py: 'File' is usually the most common logger. It is
	handier if it's the first choice of the list.

	* admin/PageVServers.py (PageVServers._render_vserver_list): Table
	header should be bold.

	* admin/PageVServers.py (PageVServers._render_vserver_list): Sort
	the virtual server list before printing it.

	* cherokee/handler_redir.c (match_and_substitute): This changeset
	covers a corner case, when neither the connection cache nor the
	rule sub-entry have a regular expression to be evaluated. In this
	case, we assume it matches the request.

2008-07-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cherokee-panic: The call to type has been replaced with
	a call to 'which' which is not shell dependant. It makes the
	script stop depending on Bash. Fixes:
	http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489550

	* themes/default/header.html: The
	/cherokee_themes/default/cherokee-logo.png path should be
	/cherokee_themes/default/logo.png. Fixed.

	* admin/PageVServers.py (PageVServers._op_add_vserver): It would
	be handy if new virtual servers included the default /icons and
	the /cherokee_themes directories. This patch adds it to the default
	cherokee-admin behavior.

	* cherokee/connection.c (cherokee_connection_clean_for_respin):
	Patch to fix a problem that was making the server to fail the QA
	test number 169: Internal respins were not handled properly when
	the original request was using a special Directory Root.

	* qa/169-Pipermail.py, qa/Makefile.am (EXTRA_DIST): Added new
	QA. Covers a bug found in production.

	* cherokee/connection.c: Added cherokee_connection_print(). It is
	a function that is only called from the TRACE_CONN() macro. It
	prints the connection object property values within the TRACE log.

	* cherokee/thread.c: Moves phase_to_str() to cherokee/connection.c
	as cherokee_connection_get_phase_str().

	* cherokee/handler_cgi_base.c, cherokee/handler_file.c,
	cherokee/handler_phpcgi.c: Fixed to work with the previous
	cherokee_fix_dirpath() change. Now we are certain about whether a
	path ends with a slash (it does not).

	* cherokee/virtual_server.c: Added cherokee_fix_dirpath() calls
	where needed.

	* cherokee/virtual_server.c (cherokee_virtual_server_set_documentroot):
	removed.

	* cherokee/util.c, cherokee/util.h: Added cherokee_fix_dirpath().

	* cherokee/iocache.c (iocache_entry_maybe_update_mmap):
	Rewritten. It fixes an unusual bug.

2008-07-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py: Now it prints the number of tests that are
	skipped during the whole execution.

	* qa/util.py: Aesthetically improvement. The result value of each
	QA test is printed with a different color, whenever the terminal
	type is know to support ANSI escape codes.

2008-07-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c (check_request_finish_with_slash):
	Adapted to use the new method: use_webdir.

	* cherokee/connection.c (cherokee_connection_use_webdir),
	cherokee/connection-protected.h: New method. It points whether a
	connection can use its web_directory property (which should only
	be used when the 'conn_op_document_root' option is set and the
	web_directory is longer than a single character).

	* cherokee/connection-protected.h, cherokee/connection.c,
	cherokee/connection.h: Added TRACE_CONN() macro. It uses TRACE to
	print details about a specific connection.

	* cherokee/list.h, cherokee/list.c (cherokee_list_get_len): New
	method.

	* cherokee/connection-protected.h (struct cherokee_connection):
	The ->phase_return property was not needed any longer.

2008-07-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.h (cherokee_buffer_prepend_buf): New macro.

	* cherokee/connection.c, cherokee/handler_dirlist.c,
	cherokee/connection-protected.h: Clean. conn->uses_document_root
	is now a conn->option bit instead of a object property per-se.

	* qa/util.py (cherokee_has_plugin): Updated.

2008-07-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (manage_child_cgi_process): Added a
	couple of new TRACE lines.

	* cherokee/connection.c (cherokee_connection_create_handler):
	Clean up.

	* cherokee/connection.c (cherokee_connection_build_local_directory):
	Do not short the request string when the web directory is /. It
	means that the Default rule matched. In this way, web_directory
	will be / and the request will continue starting by slash.

	* cherokee/handler_cgi.c (manage_child_cgi_process): Adds SIGBUS
	for MacOS X.

2008-06-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/Module.py (modules_available): There might be entries with
	an empty name, in which case, they ought to be added to the
	resulting list.

2008-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/server.py: Print the python code version, so it is easier
	to detect broken installations.

2008-06-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/tracelor.py (main): Highlight the words provided in the
	script arguments.

	* contrib/tracelor.py, contrib/Makefile.am (EXTRA_DIST): Added a
	new script that colorizes the thread number when Cherokee-tracing
	is using the "thread" argument. Even it is not rocket science, it
	is definitely handy for tracing big tracing logs.

	* cherokee/common-internal.h (CHEROKEE_THREAD_SELF): New macro.

	* cherokee/trace.c: Added support for printing the thread IDs.

	* cherokee/buffer.c (cherokee_buffer_read_from_fd): Added EBADF
	case ('Bad file descriptor').

	* cherokee/cherokee-panic: Added support for the
	CHEROKEE_PANIC_OUTPUT environment variable. It also fixes the
	script to work on MacOS X.

	* cherokee/main.c (common_server_initialization): Panic handlers
	were not working on MacOS X.

	* qa/run-tests.py: Print cherokee-panic path as well.

	* cherokee/macros.h (PRINT_ERRNO): Fix: It was not printing the
	right 'file' and 'line number' values.

	* qa/run-tests.py: Tries to raise the initial file descriptor
	limit to 8k files. Under some circumstances it was as low as 256
	fds.

	* admin/PageAdvanced.py: Fixes bug. It was not applying changes.

	* cherokee/util.c (cherokee_getpwnam): Stabilizes the function on
	Linux and MacOS X.

	* cherokee/handler_cgi_base.c (xsendfile_add_headers): Fixes the
	case on which the I/O cache is full, so it cannot return a
	cacheable object - and therefore, it has to be stat()ed locally.

	* qa/run-tests.py: Try to handle when -d (pause for debug) and
	-t (pararell threads) are used together in the best possible way.

	* cherokee/buffer.c (cherokee_buffer_decode_base64): Fixes an
	issue on systems where "char" != "signed char". Patch by Muller
	Tiziano <t...@dev-zero.ch>.

2008-06-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/firefox3/theme.css: Tries to clarify how this file is
	re-distributed. It was originally distributed under MPL1.1 /
	GPL2.0 / LGPL 2.1 licenses. We have chosen to re-distribute it
	under any of the two GPL licenses because MPL 1.1 conflicts with
	the GPL 2.0 license under which Cherokee is distributed.

2008-06-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/encoder_deflate.c (cherokee_encoder_deflate_add_headers),
	cherokee/encoder_gzip.c (cherokee_encoder_gzip_add_headers): It
	should add the "Vary: Accept-Encoding" header to let proxies know
	which clients are suitable to receive the encoded content.

	* admin/CherokeeManagement.py (cherokee_has_polling_method),
	admin/PageAdvanced.py (PageAdvanced._render_content): It shows
	only the Polling methods that are available. It does not make
	sense to show "Solaris ports" or "Select Win32" on MacOS X, for
	instance.

	* cherokee/info.c (cherokee_info_build_print): Print the polling
	method like the built-in plug-ins so it is easier to parse.

	* cherokee/socket.c (cherokee_socket_sendfile): This patch fixes
	and simplfies the sendfile() support of MacOS X.

	* cherokee/Makefile.am (distclean-local): It has to clean the two
	files (loader.autoconf.h loader.autoconf.inc) that the configure
	script is generating.

	* admin/static/images/flags/Makefile.am (EXTRA_DIST): It was not
	including the flags in the source code package.

	* cherokee/util.h, cherokee/util.c, cherokee/info.h,
	cherokee/info.c, cherokee/Makefile.am: As long as the
	cherokee_server_print_build_info() depends on libcherokee-server
	functions it has to be relocated within the library.

	* cherokee/avl.c (cherokee_avl_get, cherokee_avl_add)
	(cherokee_avl_del): Added sanity check. The key must not be empty.

	* cherokee/Makefile.am (libcherokeeinclude_HEADERS),
	cherokee/cherokee.h: The avl.h header file will be included from
	<cherokee/cherokee.h>.

2008-06-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (stop_threads): It must stop all the threads
	before flushing the log files.

	* cherokee/common-internal.h (CHEROKEE_THREAD_JOIN): New macro.

	* cherokee/server.c (cherokee_server_print_build_info),
	cherokee/server.h, cherokee/main.c: Moved to utils.c as
	cherokee_info_print(). It makes more sense there.

	* cherokee/server.c (cherokee_server_print_build_info): Now it
	prints more information about how the compilation was performed.

	* cherokee/trace.c (cherokee_trace_do_trace): If "time" is added
	to CHEROKEE_TRACE it prints the time and date at the begining of
	each line of the log.

	* cherokee/thread.c (phase_to_str): It only needed to be compiled
	when TRACE was enabled. Fixes compilation warning.

	* cherokee/macros.h (IOCACHE_DEFAULT_CLEAN_ELAPSE): Changed from 2
	to 20. It should have been set to that value. We must have made a
	mistake during a test and the wrong value got into the repository.

	* admin/PageEntry.py, admin/Module.py, admin/ModuleScgi.py,
	admin/PageEncoders.py, admin/ModuleFcgi.py, admin/PageVServer.py,
	admin/ModuleMirror.py: Now it checks whether any plug-in is
	present before showing it as an option in the administration
	interface.

	* admin/consts.py: Adds Deflate.

	* admin/PageEncoders.py: It shows only the encoders that are
	available. Besides, fixes a little render issue.

	* qa/168-Deflate-Encoding.py, qa/Makefile.am (EXTRA_DIST): Added a
	new QA test to check the new Deflate encoder.

2008-06-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/encoder_deflate.c, cherokee/encoder_deflate.h,
	cherokee/Makefile.am, configure.in: Added new encoder for the
	deflate Content-Encoding.

	* cherokee/connection.c (get_encoding): Better encoder header
	management. There were some times when it was not encoding because
	it did not parse the header correctly.

	* cherokee/thread.c (process_polling_connections)
	(process_active_connections): Added a couple of new TRACE entries
	that will help to trace when connections time out.

2008-06-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee-guardian.1, Makefile.am (man_MANS): Adds a missing man
	page. Patch imported from Debian (by Gunnar Wolf).

	* contrib/05to06.py (Syntax._process_entry): Fixes conversion
	issue. Imported from Debian (by Gunnar Wolf).

	* Makefile.am (install-data-local): It does not need to create the
	mods-available, mods-enabled, sites-available, sites-enabled
	directories any longer. Patch imported from Debian (Gunnar Wolf).

	* cherokee/main_guardian.c: Improves PID file management. Now it
	cleans it up before exiting.

2008-06-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_guardian.c: Do not loop when the operation is
	meant to happen a single time. Reported by Gunnar Wolf.

	* cherokee/main_guardian.c (save_pid_file): Bug fix: Do not try to
	save the PID file if it couldn't be opened for writing.

	* qa/167-RuleGeoIP.py (Test.Prepare): Configuration is not added
	to the test server it the test won't be executed.

	* qa/run-tests.py: Do not "prepare" the QA test if it will be
	skipped. It speeds up starting and more importantly fixes a
	problem with the QA test 167 when the GeoIP module was not
	present.

2008-06-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c (common_server_initialization): Added a check to
	ensure that the TCP port is within the limits. It fixes:
	http://code.google.com/p/cherokee/issues/detail?id=43

	* configure.in: Fixes an issue with the license notice. Reported
	by Tim Post <echo@echoreply.us>.

2008-06-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/server.py (main): Catch the KeyboardInterrupt exception
	and print a nice exiting message instead of the default
	back-trace.  Patch by Gunnar Wolf <gwolf@gwolf.org>.

	* cherokee/main_admin.c (find_empty_port), admin/server.py (main):
	cherokee-admin is smarter: it finds an empty port for the
	connection with the SCGI instead of supposing that the port 4000
	would be empty.

	* admin/ModuleRequest.py (ModuleRequest._op_render): Bugfix. It
	was not handling the regular expression in the right way.

	* cherokee/handler_cgi_base.h, cherokee/handler_fcgi.c,
	cherokee/handler_fastcgi.c, cherokee/handler_scgi.c,
	cherokee/handler_cgi.c: The CGI based handled had to initialize
	the file plugin in case X-Sendfile is supported.

	* cherokee/plugin.h: Added new macros for an easier plug-in
	initialization. Actually, these macros are interesting only for
	exceptional (tricky) occasions.

	* cherokee/Makefile.am, cherokee/scgi.deps, cherokee/fcgi.deps,
	cherokee/fastcgi.deps, cherokee/cgi.deps: Added new dependency
	files. Now, the CGI based depend on 'file'. These files are needed
	is the handler are compiled as dynamic modules.

2008-06-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Use LT_INIT if it is available.

	* cherokee/init.h, cherokee/init.c: The cherokee_* global
	variables must be shared along all the modules. Fixed for Windows.

	* cherokee/Makefile.am: The cgi, scgi, fcgi, fastcgi and phpcgi
	handlers depend on handler_file (for X-Sendfile), so the have to
	be dynamically linked against the plug-in.

2008-06-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: It should not link against wsock and wsock2 at the
	same time: removing wsock32 detection.

	* cherokee/unix4win32.h: Increases the default descriptors limit
	from 64 to 1024. It's a little more realistic.

	* admin/server.py (main): Override SIGCHLD only if the system
	supports it. Fixes a Windows issue.

2008-06-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageFeedback.py (PageFeedback._op_apply_changes),
	admin/CherokeeManagement.py (cherokee_get_server_info): Added new
	section to the report. It includes some more server information
	now.

	* cherokee/handler_dirlist.c (render_file): Fixes Win32
	compilation issue. S_ISLNK is not defined on Win.

2008-06-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/static/css/cherokee.css: Fixes a couple of wrong
	properties.

	* admin/Form.py (FormHelper.InstanceTab): Fixes a warning in the
	JavaScript execution.

	* admin/flags.py: Added a protection for not adding the same
	country more than once to the list.

	* admin/configured.py.pre (DATADIR, CHEROKEE_PLUGINDIR),
	admin/Makefile.am: Added two new configuration constants.

	* admin/PageVServer.py (PageVServer._render_add_rule): Only show
	the available rule plug-ins. For instance, if GeoIP could not been
	compiled because libGeoIP was missing, do not the option in the
	new rule menu.

	* admin/CherokeeManagement.py (cherokee_has_plugin): Added new
	function (copied from the QA engine).

	* admin/ModuleGeoip.py, admin/flags.py: Now the GeoIP module shows
	a fancy flag icon besides the contry name.

	* admin/static/images/Makefile.am, admin/Makefile.am,
	configure.in: Added 245 flag images.

	* qa/base.py (TestBase.has_module),
	qa/util.py (cherokee_has_plugin): The base.has_module() is
	replaced with cherokee_has_plugin() helper function. It is now
	able to detect both dynamic and built-in plug-ins.

	* cherokee/main.c: Added a new -i, --print-server-info parameter.
	It prints information about the server build: compilation date,
	flags, built-in plugins, paths, etc.

	* cherokee/server.c (cherokee_server_print_build_info),
	cherokee/server.h: Added new method to print some server
	compilation details.

	* cherokee/util.h, cherokee/util.c (cherokee_print_wrapped): Added
	new helper function.

	* cherokee/plugin_loader.c (cherokee_plugin_loader_get_mods_info),
	cherokee/plugin_loader.h: Add new method for retrieving
	information about the loaded modules.

	* cherokee/buffer.h (cherokee_buffer_prepend_str): Added new
	macro: it prepends constant length strings in a buffer object.

	* configure.in (CHEROKEE_CONFIG_ARGS): Added a new macro to
	contain the configure script arguments. It is exported to the
	application definitions.

	* cherokee/virtual_server.c (cherokee_virtual_server_new_rule):
	Fixes a wrong sanity check.

2008-06-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am: Do not try to compile the Geoip rule
	module if either the library or the header file is not present.

	* admin/ModuleGeoip.py, admin/Makefile.am, admin/consts.py: Added
	new module to reflect the new GeoIP rule.

	* cherokee/rule_geoip.h, cherokee/rule_geoip.c,
	cherokee/Makefile.am, configure.in: Added a new GeoIP rule module.
	It checks the origin IP with the GeoIP library.

	* qa/167-RuleGeoIP.py, qa/Makefile.am: Added a new QA test to
	ensure that rule_geoip actually works.

	* qa/061-PAM1.py, qa/062-PAM2.py (Test.Precondition): Updated to
	use the ->has_module method.

	* qa/base.py (TestBase.has_module): Added new method to test
	whether a module has been compiled.

	* cherokee/rule_extensions.c (match): Better tracing messages.

	* autogen.sh: Removed --enable-more-warnings --enable-debug
	parameters. They were not been used.

2008-06-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cget/main.c (do_download__read_body): Fixed compilation. It
	broke on the cherokee_strfsize() to cherokee_buffer_add_fsize()
	transition.

	* cherokee/buffer.h, cherokee/buffer.c: Type fix.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_add_headers):
	It was not adding the Content-Length header in any of the CGI
	based handler.  This small change will improve performance
	significantly, because it will allow the server and the client to
	use keep-alive connections.

	* cherokee/handler_cgi_base.c (parse_header): Fixes an potential
	error when more than one response header were substituted at the
	same time.

2008-06-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c (parse_header): Optimizes the
	parsing of the Content-Length header. Now it uses a malloc() call
	less. It is not much, but it's something.

	* admin/ModuleCgi.py (ModuleCgiBase._op_render): Added X-Sendfile
	support to the administration interface.

	* admin/PageEntry.py: Added a new check. The Default match should
	not be changed. There ought to be a single 'default' rule.

	* admin/PageEntry.py: Updated. It was using the old 0.6
	configuration file format.

	* cherokee/rule_request.c (configure),
	cherokee/rule_directory.c (configure): PRINT_ERROR calls were
	missing the new line character.

	* cherokee/handler_cgi_base.c (xsendfile_add_headers): Replaces a
	stat() call by a check against the IO/cache.  It increases
	performance when using X-Sendfile.

2008-06-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c, cherokee/handler_cgi_base.h: Added
	X-Sendfile support. It applies to the CGI, SCGI, and FastCGI
	handlers.

	* qa/166-xsendfile1.py, qa/Makefile.am (EXTRA_DIST): Added new QA
	test to ensure that X-Sendfile works properly.

	* cherokee/handler_file.c: The handler internalls has been
	reworked.  It was supposing &conn->local_directory to be the
	buffer containing the local file to be send. Now the path to the
	local file can be passed as a parameter. In most common case, it
	will use &conn->local_directory as the buffer.

	* cherokee/handler_file.h (cherokee_handler_file_custom_init):
	Added new public method.

2008-05-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/macros.h (CHEROKEE_CRASH): Added new macro. It might be
	helpful under some circumstances.

	* admin/PageVServer.py, admin/Entry.py, admin/Form.py: Adds the
	"Enabled" string right after a CheckBox whenever the "quiet"
	option has not been set. It fixes an usability issue.

2008-05-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c, cherokee/handler_dirlist.c,
	cherokee/admin_server.c: Fixed to use the new add_fsize method.

	* cherokee/buffer.c (cherokee_buffer_add_fsize),
	cherokee/buffer.h: Added new method to print formated sizes.

	* cherokee/util.h, cherokee/util.c: cherokee_strfsize() remove.

2008-05-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.h,cherokee/handler_cgi_base.c: Do not
	use chuncked encoding when there is a content-length header. Do
	not use it either when there is no response body.

	* cherokee/buffer.c, cherokee/handler_cgi_base.h,
	cherokee/handler_cgi_base.c: Added "Transfer-Encoding: chunked"
	support for all the CGI based handlers: CGI, SCGI and FastCGI.

	* contrib/Makefile.am: Added an extra -I entry. It was failing to
	compile with VPATH on Linux.

2008-05-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (INCLUDES), cget/Makefile.am: Added a new
	-I entry for the C compiler. It was needed to allow to work in a
	VPATH environment.

	* doc/build_docs.py (main), doc/Makefile.am: A few path management
	issues have been fixed.  There were a couple of VPATH compiling
	issues because of this problem.

2008-05-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libplugin_server_info_la_LIBADD): This
	patch fixs a compiling dependency problem. It should fix the
	Gentoo bug 213981: http://bugs.gentoo.org/show_bug.cgi?id=213981

	* cherokee/icons.c, cherokee/icons.h: The file matching AVL
	structure has been replaced with a linked list. It is cleaner, and
	at the end of the day, the old code was using a AVL with O(n)
	complexity. It wasn't worth having a tree here and the list
	implementation is easier to maintain.

2008-05-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* doc/media/images/admin_behaviour.png,
	doc/media/images/admin_encoding.png,
	doc/media/images/admin_vserver_errors.png,
	doc/media/images/admin_validators_plain.png,
	doc/media/images/admin_vserver.png,
	doc/media/images/admin_icons1.png,
	doc/media/images/admin_icons2.png,
	doc/media/images/admin_handler_fastcgi1.png,
	doc/media/images/admin_icons3.png,
	doc/media/images/admin_handler_cgi.png,
	doc/media/images/admin_handler_fastcgi2.png,
	doc/media/images/admin_validators_pam.png,
	doc/media/images/admin_advanced.png,
	doc/media/images/admin_index.png,
	doc/media/images/admin_handler_dirlist.png,
	doc/media/images/admin_handler_onlylisting.png,
	doc/media/images/admin_launch.png,
	doc/media/images/admin_handler_file.png,
	doc/media/images/admin_general.png,
	doc/media/images/admin_vserver_loggers.png: All these images have
	been updated to reflect all the cherokee-admin changes since 0.6.

2008-05-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py: Added a new '-a' parameter. It randomizes the
	QA tests before being tested against.

	* qa/158-RuleHeader1.py, qa/159-RuleHeader2.py: Bug fix. These QA
	tests were detecting .com and .net extensions, which was causing
	random issues depending on how the QA test set was executed.

	* cherokee/rule_extensions.c (parse_value): This function was
	leaking ~100 bytes during the ->configure() invocation.

	* cherokee/server.c (cherokee_server_initialize): Tiny C&P mistake
	fixed. There was an uninitialized buffer.

	* cherokee/rule_not.c, cherokee/rule_and.c, cherokee/rule_or.c:
	->free() methods have been added.

	* cherokee/rule.c (cherokee_rule_free): Some memory was being lost
	here when the server was restarted. It is not an important fix.

	* cherokee/rule_extensions.c (_free): Bugfix: an incorrect memory
	free has been fixed.

	* cherokee/socket.c (cherokee_socket_sendfile),
	m4/sendfile_samba.m4: Implements sendfile() support for MacOS X.

2008-05-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator_ldap.c, cherokee/socket.c: Another couple of
	small compiling warning fixed.

	* rule_header.c, rule_directory.c, rule_default.c, rule_request.c,
	rule_extensions.c: Implements the ->free() methods.

	* cherokee/virtual_server.c (init_entry_property): Removed duped
	configuration entry.

	* cherokee/rule.c (cherokee_rule_init_base): Bug fix: It had to
	initialize its underling cherokee_module_t structure.

	* downloader-protected.h, downloader.c, buffer.c, buffer.h,
	header.c, util.c, util.h, connection.c: More compiling warnings
	have been fixed. In this case, most of them were signess issues.

	* cherokee/handler_redir.c, cherokee/handler_error_redir.c,
	cherokee/handler_server_info.c, cherokee/fdpoll.c,
	cherokee/handler_admin.c, cherokee/fdpoll.h,
	cherokee/handler_cgi_base.c, cherokee/rule_directory.c,
	cherokee/fdpoll-select.c, cherokee/handler_dirlist.c,
	cherokee/handler_mirror.c, cherokee/rule_default.c,
	cherokee/validator_ldap.c, cherokee/fdpoll-epoll.c,
	cherokee/macros.h, cherokee/validator_plain.c, cherokee/avl.c,
	cherokee/fdpoll-poll.c, cherokee/validator_htpasswd.c,
	cherokee/plugin.h, cherokee/buffer.c, cherokee/fdpoll-protected.h,
	cherokee/handler_file.c, cherokee/buffer.h, cherokee/main.c,
	cherokee/header.c, cherokee/balancer_round_robin.c,
	cherokee/rule.c, cherokee/encoder_gzip.c, cherokee/icons.c,
	cherokee/handler_fastcgi.c, cherokee/util.c,
	cherokee/fdpoll-win32.c, cherokee/main_guardian.c,
	cherokee/fdpoll-port.c, cherokee/handler_scgi.c, cherokee/post.c,
	cherokee/handler_error.c, cherokee/admin_client.c,
	cherokee/rule_extensions.c, cherokee/handler_cgi.c,
	cherokee/server-protected.h, cherokee/fdpoll-kqueue.c,
	cherokee/admin_server.c, cherokee/main_tweak.c,
	cherokee/validator_htdigest.c, cherokee/iocache.c,
	cherokee/connection.c, cherokee/iocache.h, cherokee/server.c,
	cherokee/socket.c: This patch fixes a bunch of minor compiling
	warnings, most of them related to unused variables.

2008-05-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/http.h, cherokee/http.c: Added "204 No Content" HTTP
	response.

2008-05-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/validations.py (is_local_file_exists)
	(is_local_dir_exists), PageEntry.py, ModuleHtdigest.py,
	PageAdvanced.py, ModulePlain.py, PageVServers.py, PageGeneral.py,
	PageVServer.py, Form.py, ModuleHtpasswd.py: Added chroot support
	to the local file/directory testing. This fix is kind of hacky: I
	needed to import the "cfg" global in order to check whether the
	server is jailed within a chroot. Anyway, even if it isn't clean,
	it's a fairly acceptable solution.

	* cherokee/main_tweak.c: Updated to use getopt_long(). The help
	text has been rewritten as well.

	* cherokee/Makefile.am (bin_PROGRAMS): "Cherokee tweak" binary
	executable has changed from cherokee_tweak to cherokee-tweak. It
	looked kind of weird with the underscore.

	* cherokee/admin_client.c: Cleaned out. The internal phase
	property was no needed. ->dowloader->status is enough to know in
	this case.

	* cherokee/downloader.c (cherokee_downloader_step): ->status set
	and unset code rewritten to use BIT_SET and BIT_UNSET macros. It
	is more readable now.

	* cherokee/handler_proxy.c (cherokee_handler_proxy_add_headers):
	It had to pass the downloader HTTP error code to the Cherokee
	client. Now, non-200 responses work properly.

	* downloader.c, downloader.h, handler.h, handler_proxy.c,
	handler_proxy.h, connection.c: Fixes a number of problems with the
	alpha proxy handler. After these changes I have been able to point
	my browser to Cherokee and browse the Internet successfully.

2008-05-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._render_rules_generic): Little
	fix for fixing list reorder. The last change broke the drag &
	drop.

	* admin/PageVServer.py, admin/RuleList.py: Rule list has been
	reversed. Not the highest priority stands first. It is basically
	an usability fix.

2008-05-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/config_entry.h, cherokee/Makefile.am, cherokee/rule.h,
	cherokee/cherokee.h: The public cherokee.h header has been fixes
	to include the new rule type.

2008-05-03  A.D.F  <adefacc@tin.it>

	* cherokee/fdpoll*.c,
	  - added error message to fdpoll _add() functions;
	  - fixed a few mispellings.

	* cherokee/util.c
	  - cherokee_print_errno(), add test on string pointer.

2008-05-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/ModuleBalancer.py (ModuleBalancerGeneric._op_apply_changes):
	Bugfix. It was not building the balancer type entry properly.

2008-05-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	(Another example of how long a MacBook Pro battery lasts: Flight
	from Madrid to San Francisco).

	* qa/164-RuleOr1.py, qa/165-RuleOr2.py, qa/Makefile.am: Added a
	couple of new QA tests in order to ensure that the new "or" rule
	works fine.

	* cherokee/rule_or.h, cherokee/rule_or.c, cherokee/Makefile.am,
	configure.in: Added a new "or" rule. It accesses two sub-matches
	rules and returns 'true' when the first one matches.

	* qa/162-RuleAnd1.py, qa/163-RuleAnd2.py, qa/Makefile.am: Added a
	couple of new QA tests in order to ensure that the new "and" rule
	works as expected.

	* cherokee/rule_and.h, cherokee/rule_and.c, cherokee/Makefile.am,
	configure.in: Added a new "and" rule. It accesses two sub-matches
	rules and returns 'true' only when both match the request.

	* qa/160-RuleNot1.py, qa/161-RuleNot2.py, qa/Makefile.am: Added a
	couple of new QA tests in order to ensure that the new "not" rule
	works properly.

	* cherokee/rule_not.h, cherokee/rule_not.c, cherokee/Makefile.am,
	configure.in: Added a new "not" rule. It inverts the return value
	of any rule.

	* qa/158-RuleHeader1.py, qa/159-RuleHeader2.py: CGI code fixed; it
	wasn't including a required header.

2008-04-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/06to07.py: Rewritten. now it supports the lastest 0.7
	configuration format.

2008-04-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/rule_header.c, qa/158-RuleHeader1.py,
	qa/159-RuleHeader2.py: It should only support matches. The
	'mismatch' behavior and configuration entries have been removed.

	* admin/PageVServer.py (PageVServer._get_auth_name): Fixes small
	issue with rule entries that has only a validator (without a
	handler).

	* admin/PageGeneral.py: Entry notes are shorter now. The previous
	note were to verbose.

2008-04-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageEntry.py, admin/ModuleAuth.py,
	admin/ModuleHtdigest.py, admin/ModuleLdap.py,
	admin/ModulePlain.py, admin/ModuleHtpasswd.py,
	admin/ModuleMysql.py: Updated to use the new style: Table to
	TableProp, and a few header related changes.

	* admin/ModuleMirror.py, admin/ModuleCgi.py: Updated to use the
	new TableProps widget.

	* performance.conf.sample.pre: Updated to the latest configuration
	file format change.

2008-04-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/ModuleDirlist.py (ModuleDirlist._op_render),
	admin/ModuleRedir.py (ModuleRedir._op_render): Updated to use the
	new TableProps class instead of the plain old Table.

	* cherokee/virtual_server.c (configure_rule_match), qa/*.py,
	cherokee.conf.sample.pre, cherokee/main_admin.c, cherokee/admin.c:
	Configuration format has changed again. The new entries weren't
	following the style of the rest of the configuration. The change
	is really small; however it impacts almost all of the QA cases.
	Now, rules are defined like: "rule!<num>!match = <TYPE>" instead
	of "rule!<num>!match!type = <TYPE>".

	* admin/ModuleHeader.py, admin/Makefile.am: Added support of
	header rules. This is a new module.

	* admin/static/css/cherokee.css: This couple of minor changes make
	the interface look much better. It basically improves the
	PropertyTable look.

	* qa/PageEntry.py, qa/config.py, qa/ModuleDefault.py,
	qa/ModuleRequest.py, qa/ModuleExtensions.py, qa/consts.py,
	qa/PageVServer.py, qa/static/js/common.js, qa/RuleList.py,
	qa/Form.py, qa/ModuleDirectory.py, qa/Makefile.am: Rule types are
	no longer hardcoded. They are independent modules, as they are
	in the server.

2008-04-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c (main): There was an unneeded Win32
	initialization.

2008-04-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/158-RuleHeader1.py, qa/159-RuleHeader2.py,
	qa/Makefile.am (EXTRA_DIST): Added new test to ensure that the new
	rule module works properly.

	* cherokee/rule_header.c, cherokee/rule_header.h: Implemented. It
	allows to configure rules that match the request headers.

2008-04-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageMime.py (PageMime._render_mime_list): Extension
	entries are shorter now. They should not overflow the frame
	limits.

	* admin/PageEntry.py, admin/ModuleServerInfo.py,
	admin/ModuleFile.py: Updated to use the new layout (it adds a nice
	comment right under the entry).

	* admin/CherokeeManagement.py: Fixes a error when the PID file
	cannot be read.

2008-04-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._op_handler): Fixes a
	regression. When user_dir is enabled it must add a rule for the
	default match.

	* admin/PageVServer.py: Fixes a bug managing !rule!x!match!final
	entries.

	* admin/Form.py (FormHelper.InstanceTab): Tab switching animation
	is dissabled now. Even it we are losing some eye-candy by
	disabling this effect, it improves the interface usability.

2008-04-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/ModuleRedir.py, admin/PageVServers.py,
	admin/ModuleBalancer.py, admin/PageMime.py, admin/PageVServer.py,
	admin/Entry.py, admin/ModuleErrorRedir.py: Fixed some text entry
	lengths.

2008-04-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageEncoders.py, admin/PageVServer.py, admin/Entry.py:
	Text entries are wider now (40 characters by default).

	* admin/PageEncoders.py (MatchingList._op_render): Updated to the
	the cherokee-admin layout.

2008-04-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre, admin/PageEntry.py, admin/config.py,
	admin/PageVServers.py, admin/VirtualServer.py,
	admin/PageVServer.py, admin/validations.py,admin/Makefile.am:
	Updated to the new configuration format.

	* admin/Makefile.am (adminpy_DATA), admin/VirtualServer.py,
	admin/RuleList.py: Replaced by RuleList.py.

	* cherokee.conf.sample.pre: Updated to the new format.

2008-04-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	(This is what a MacBook Pro battery lasts): flying from Austin to
	Madrid. After the Linux Foundation Collaboration Summit 2008.

	* cherokee/main.c, cherokee/main_admin.c, cherokee/module.h,
	cherokee/plugin_loader.h, cherokee/rule.c, cherokee/rule.h,
	cherokee/rule_default.c, cherokee/rule_default.h,
	cherokee/rule_directory.c, cherokee/rule_directory.h,
	cherokee/rule_extensions., cherokee/rule_extensions.h,
	cherokee/rule_list.c, cherokee/rule_request.c,
	cherokee/rule_request.h, cherokee/validator.c,
	cherokee/virtual_server.c, qa/001-basic.py, qa/015-CGI-simple.py,
	qa/016-CGI-pathinfo.py, qa/017-CGI-pathinfo2.py,
	qa/018-CGI-pathinfo3.py, qa/020-VirtualHost.py,
	qa/021-VirtualHost2.py, qa/029-Post+Without-lenght.py,
	qa/030-Post+urlencoded.py, qa/031-Post+urlencoded2.py,
	qa/033-DirIndex.py, qa/034-DirIndex2.py, qa/035-PHP-simple.py,
	qa/036-DocumentRoot-common.py, qa/039-Auth-Basic.py,
	qa/040-Auth-Basic2.py, qa/041-Auth-Basic3.py, qa/044-Home.py,
	qa/045-Home2.py, qa/046-Redir.py, qa/047-Redir2.py, qa/048-NN.py,
	qa/049-NN-broken.py, qa/050-HeadBody.py, qa/061-PAM.py,
	qa/062-PAM2.py, qa/063-DocumentRoot.py, qa/064-DirectoryIndex.py,
	qa/066-DirectoryIndex3.py, qa/067-PathInfo.py,
	qa/068-PathInfo2.py, qa/069-PathInfo3.py, qa/070-Inherit.py,
	qa/071-Inherit2.py, qa/072-Inherit3.py, qa/073-Access.py,
	qa/074-Access2.py, qa/075-AccessRange.py, qa/076-AccessRange2.py,
	qa/077-AccessRange3.py, qa/078-AccessAny.py, qa/079-Extension.py,
	qa/080-Extension2.py, qa/081-DocumentRoot-Common-index.py,
	qa/082-Auth-header., qa/083-RedirParam.py,
	qa/084-RedirParamShow.py, qa/085-AuthUsers.py,
	qa/086-AuthUsers2.py, qa/088-CGI-envs.py, qa/089-gzip-encoding.py,
	qa/090-Digest.py, qa/091-Digest2.py, qa/092-Digest3.py,
	qa/093-InvalidLinks.py, qa/094-URL-request.py,
	qa/095-htpasswd-apache-md5.py, qa/096-htpasswd-md5.py,
	qa/097-htpasswd-sha1.py, qa/098-htpasswd-crypt.py,
	qa/099-htpasswd-plain.py, qa/100-Digest-htdigest.py,
	qa/102-QueryString.py, qa/103-ScriptName.py,
	qa/104-ScriptAlias_PathInfo.py, qa/105-If-Range.py,
	qa/106-If-Range2.py, qa/107-Priority1.py, qa/108-Priority2.py,
	qa/109-Priority3.py, qa/110-Priority4.py, qa/112-NiceError-CGI.py,
	qa/113-HeaderFile.py, qa/114-HeaderFile2.py, qa/115-Respin.py,
	qa/116-RequestTiny.py, qa/117-DomainToDir.py,
	qa/118-Request-redir.py, qa/121-NoUserDir.py, qa/122-Methods.py,
	qa/123-ImplicitRedit.py, qa/124-DomainToDir2.py,
	qa/125-domain-redir1.py, qa/126-SCGI.py, qa/127-SCGI-Post.py,
	qa/128-ValidMethod-common.py, qa/129-Basic-EmptyPasswd.py,
	qa/130-Digest-EmptyPasswd.py, qa/131-ChangeUser-phpcgi.py,
	qa/135-RedirParams.py, qa/138-ChangeUser-cgi.py,
	qa/139-domain-wildcards1.py, qa/140-SCGI-EmptyVars.py,
	qa/141-FastCGI-EmptyVars.py, qa/142-SCGI-ExtraVars.py,
	qa/143-ContentRange-NoIO.py, qa/144-ContentRange2-NoIO.py,
	qa/145-ContentRange3-NoIO.py, qa/146-ContentRange4-NoIO.py,
	qa/147-ContentRange-Double-NoIO.py,
	qa/148-ContentRange-Double2-NoIO.py, qa/149-Common-PathInfo.py,
	qa/150-Common-No-PathInfo.py, qa/151-SCGI-vars.py,
	qa/152-SCGI-vars2.py, qa/153-SCGI-vars-root.py,
	qa/154-DirRedirection.py, qa/155-DirRedirection2.py,
	qa/157-Dirlist-symlinks.py, qa/run-tests.py: The configuration
	file format for 0.7 has changed again. The latest approach was
	fair enough, although it was not as flexible as it should have
	been. This mega-patch makes it work as the rest of the server;
	instead of receiving a buffer string, it receives a
	cherokee_config_node_t reference and it is reads its
	configuration from there. I ran into problems when I was writing
	the header based rule plug-in because of this previous
	implementation; not it is okay.

	* cherokee/rule_header.h, cherokee/rule_header.c: Added new rule
	type to allow to based decisions on certain header entries values.

	* cherokee/config_node.c, cherokee/config_node.h: Added a new
	convenience method for copying a key content.

	* cherokee/getopt/getopt.c, cherokee/getopt/getopt1.c: Test
	removed. There were completely useless.

	* cherokee/handler_fcgi.c, cherokee/socket.c: Added a few trace
	entries. I needed it to investigate a weird issue about the fcgi
	handler (work on progress here).

	* configure.in, cherokee/Makefile.am: Added entries for a new
	header base rule plug-in.

	* cherokee/rule_request.h (CHEROKEE_RULE_REQS_H): Fixed #if
 	protection against multiple inclusions.

	* cherokee/main_admin.c (process_parameters): Now it adminst a
	conditional parameter for the network interface to bind to:
  	  cherokee-admin           --> localhost
	  cherokee-admin --bind    --> all interfaces
	  cherokee-admin --bind=IP --> Only IP interface

	* cherokee/main.c, cherokee/main_admin.c: Ported to use
	getopt_long. Now it accepts -- parameters and includes a better
	version and help functions. (TODO: Update cherokee.1 and
	cherokee-admin.1 man pages).

2008-04-12  A.D.F  <adefacc@tin.it>

	* admin/*.help.html:
	  - fixed mispellings and rewritten a few sentences.

	* admin/PageAdvanced.py:
	  - replaced max_fds with fdlimit;
	  - micro fixes to help tooltips.

	* admin/PageVServer.py:
	  - micro fixes to help tooltips.

	* cherokee/connection.c:
	  - micro optimization in cherokee_connection_step(),
	    return early if there is no encoder configured
	    (common fast case).

2008-04-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py: (PageVServer._op_handler): Tiny
	bugfix. There was an insecure configuration check.

	* admin/PageVServer.py: Added a new button useful to disable
	logging.

2008-04-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageAdvanced.py (PageAdvanced._render_content): Fixed
	incorrect key.

2008-04-12  Taher Shihadeh  <taher@unixwars.com>

	* cherokee/main.c: fixed bug that prevented launching with -r.

2008-04-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._render_rules_generic): The
	'default' rule is always a final rule, so it should not show the
	checkbox.

2008-04-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._render_rules_generic): Added
	support for the new !final rule property.

	* admin/ModuleDirlist.py: Added support for the new "Allow
	Symbolic Links" property of the dirlist handler.

	* cherokee/handler_dirlist.c: Added a new property 'symlinks' to
	allow to disable the symbolic links inclusion.

	* qa/157-Dirlist-symlinks.py, qa/Makefile.am (EXTRA_DIST): Added a
	new QA to ensure that the new !symlinks property of handler_file
	works properly.

	* cherokee/util.h (cherokee_lstat): Added new macro to call
	lstat().

	* contrib/06to07.py: Added 0.6 to 0.7 configuration conversion
	script.

	* doc/locale/en/internal_configuration.txt: Updated to the new
	rule format.

	* doc/locale/en/internal_configuration.txt: Removes
	server!mime_files reference.

2008-04-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c, admin/VirtualServer.py,
	admin/PageVServer.py: Updated to the new configuration file
	syntax.

	* cherokee/main_admin.c (config_server): Update to the new
	configuration format.

	* cherokee.conf.sample.pre, performance.conf.sample.pre: Updated
	to the new configuration file format.

2008-04-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/156-Mime2.py, qa/Makefile.am (EXTRA_DIST): Added a new QA to
	ensure that the max-age cache control header works.

	* cherokee/rule_list.c, cherokee/rule_list.h, cherokee/rule.c,
	cherokee/rule.h, cherokee/rule_default.c, cherokee/rule_default.h,
	cherokee/rule_directory.c, cherokee/rule_directory.h,
	cherokee/rule_extensions.c, cherokee/rule_extensions.h,
	cherokee/rule_request.c, cherokee/rule_request.h: New files for
	the brand new rule list implementation.

	* cherokee/exts_table.c, cherokee/exts_table.h,
	cherokee/dirs_table.c, cherokee/dirs_table.h,
	cherokee/reqs_list.c, cherokee/reqs_list.h,
	cherokee/reqs_list_entry.c, cherokee/reqs_list_entry.h:
	Removed. This is the old implementation that I'm dropping.

	* cherokee/Makefile.am, configure.in, cherokee/avl.h,
	cherokee/config_entry.c, cherokee/config_entry.h,
	cherokee/config_node.c, cherokee/config_node.h,
	cherokee/connection-protected.h, cherokee/connection.c,
	cherokee/connection_info.c, cherokee/connection_info.h,
	cherokee/handler_cgi_base.c, cherokee/handler_dirlist.c,
	cherokee/handler_file.c, cherokee/handler_redir.c,
	cherokee/handler_server_info.c, cherokee/iocache.c,
	cherokee/mime.c, cherokee/mime_entry.c, cherokee/mime_entry.h,
	cherokee/plugin.h, cherokee/regex.h, cherokee/request.c,
	cherokee/request.h, cherokee/server-protected.h,
	cherokee/server.c, cherokee/thread.c, cherokee/validator_mysql.c,
	cherokee/virtual_entries.c, cherokee/virtual_entries.h,
	cherokee/virtual_server.c, cherokee/virtual_server.h: A number of
	changes have been performed to adapt the server to the new rule
	list mechanism.

	* qa/001-basic.py, qa/015-CGI-simple.py, qa/016-CGI-pathinfo.py,
	qa/017-CGI-pathinfo2.py, qa/018-CGI-pathinfo3.py,
	qa/020-VirtualHost.py, qa/021-VirtualHost2.py,
	qa/029-Post+Without-lenght.py, qa/030-Post+urlencoded.py,
	qa/031-Post+urlencoded2.py, qa/033-DirIndex.py,
	qa/034-DirIndex2.py, qa/035-PHP-simple.py,
	qa/036-DocumentRoot-common.py, qa/039-Auth-Basic.py,
	qa/040-Auth-Basic2.py, qa/041-Auth-Basic3.py, qa/044-Home.py,
	qa/045-Home2.py, qa/046-Redir.py, qa/047-Redir2.py, qa/048-NN.py,
	qa/049-NN-broken.py, qa/050-HeadBody.py, qa/061-PAM.py,
	qa/062-PAM2.py, qa/063-DocumentRoot.py, qa/064-DirectoryIndex.py,
	qa/066-DirectoryIndex3.py, qa/067-PathInfo.py,
	qa/068-PathInfo2.py, qa/069-PathInfo3.py, qa/070-Inherit.py,
	qa/071-Inherit2.py, qa/072-Inherit3.py, qa/073-Access.py,
	qa/074-Access2.py, qa/075-AccessRange.py, qa/076-AccessRange2.py,
	qa/077-AccessRange3.py, qa/078-AccessAny.py, qa/079-Extension.py,
	qa/080-Extension2.py, qa/081-DocumentRoot-Common-index.py,
	qa/082-Auth-header.py, qa/083-RedirParam.py,
	qa/084-RedirParamShow.py, qa/085-AuthUsers.py,
	qa/086-AuthUsers2.py, qa/088-CGI-envs., qa/089-gzip-encoding.py,
	qa/090-Digest.py, qa/091-Digest2.py, qa/092-Digest3.py,
	qa/093-InvalidLinks.py, qa/094-URL-request.py,
	qa/095-htpasswd-apache-md5.py, qa/096-htpasswd-md5.py,
	qa/097-htpasswd-sha1.py, qa/098-htpasswd-crypt.py,
	qa/099-htpasswd-plain.py, qa/100-Digest-htdigest.py,
	qa/102-QueryString.py, qa/103-ScriptName.py,
	qa/104-ScriptAlias_PathInfo.py, qa/105-If-Range.py,
	qa/106-If-Range2.py, qa/107-Priority1.py, qa/108-Priority2.py,
	qa/109-Priority3.py, qa/110-Priority4.py, qa/112-NiceError-CGI.py,
	qa/113-HeaderFile.py, qa/114-HeaderFile2.py, qa/115-Respin.py,
	qa/116-RequestTiny.py, qa/117-DomainToDir.py,
	qa/118-Request-redir.py, qa/121-NoUserDir.py, qa/122-Methods.py,
	qa/123-ImplicitRedit.py, qa/124-DomainToDir2.py,
	qa/125-domain-redir1.py, qa/126-SCGI.py, qa/127-SCGI-Post.py,
	qa/128-ValidMethod-common.py, qa/129-Basic-EmptyPasswd.py,
	qa/130-Digest-EmptyPasswd.py, qa/131-ChangeUser-phpcgi.py,
	qa/135-RedirParams.py, qa/137-Mime1.py, qa/138-ChangeUser-cgi.py,
	qa/139-domain-wildcards1.py, qa/140-SCGI-EmptyVars.py,
	qa/141-FastCGI-EmptyVars.py, qa/142-SCGI-ExtraVars.py,
	qa/143-ContentRange-NoIO.py, qa/144-ContentRange2-NoIO.py,
	qa/145-ContentRange3-NoIO.py, qa/146-ContentRange4-NoIO.py,
	qa/147-ContentRange-Double-NoIO.py,
	qa/148-ContentRange-Double2-NoIO.py, qa/149-Common-PathInfo.py,
	qa/150-Common-No-PathInfo.py, qa/151-SCGI-vars.py,
	qa/152-SCGI-vars2.py, qa/153-SCGI-vars-root.py,
	qa/154-DirRedirection.py, qa/155-DirRedirection2.py, qa/conf.py,
	qa/run-tests.py: Adapted to the new rule list implementation.

2008-04-05  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h, cherokee/buffer.c
	  - added new function cherokee_buffer_add_escape_html()
	    with new escape method to avoid too many data copies
	    and trash the CPU L1 cache;
	  - cherokee_buffer_unescape_uri(), added test on string
	    termination character;
	  - cherokee_buffer_add_fixed(),
	    cherokee_buffer_add_va_list(), fixed tests on buffer
	    boundaries in order to make them standard conformant.

	* cherokee/handler_error.c
	  - replaced cherokee_buffer_escape_html() with
	    cherokee_buffer_add_escape_html();
	  - removed usage of tmp buffer (thanks to previous changes).

2008-04-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server-protected.h, cherokee/server.c,
	cherokee/handler_dirlist.c, cherokee/handler_error.c: Clean
	up. The server string variables have been consolidated under a
	common prefix: srv->server_string*.

	* cherokee/init.c, cherokee/init.h, cherokee/fdpoll.c,
	cherokee/macros.h, cherokee/server-protected.h, cherokee/server.c:
	Clean up. The fdlimit variables have been consolidated under a
	common prefix fdlimit_. Besides, cherokee_init() gets the system
	file descriptor limit number.

	* admin/static/js/Makefile.am (THIRD_PARTY): Bug fix. It had to
	include jquery.dimensions.js and jquery.tablednd.js. The new
	sortable rules table was not working because these two files were
	missing.

	* cherokee/server.c, cherokee/server.h: cpu number information is
	now a global variable instead of a property of the server class.

2008-03-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/init.h, cherokee/init.c, cherokee/Makefile.am: Added a
	new global initialization function. It works at libcherokee_base
	level, so calling cherokee_init() is not mandatory is now
	mandatory for all the cherokee based applications.

	* cherokee/main_admin.c, cherokee/main.c, cherokee/main_tweak.c,
	cherokee/cherokee.h, cherokee/server.c, cget/main.c: Adapted to
	use cherokee_init().

	* configure.in, cherokee/cacheline.h, cherokee/cacheline.c: Added
	a check to guess what the L2 cache line size is. It is an initial
	implementation, some additional work is still required.

	* cget/Makefile.am (EXTRA_DIST): Bugfix: cget.1 needed to be in
	the EXTRA_DIST list.

	* admin/Makefile.am (EXTRA_DIST): Bugfix: server.py must be
	distributed.

	* cherokee/main.c: (test_configuration_file): Include the
	configuration file name in the reporting message.

	* cherokee/main.c: On SIGUSR1 the server reopen the log for all
	its virtual servers.

	* cherokee/server.c (cherokee_server_log_reopen): Added new method.

	* cherokee/main.c (main), cherokee.1: Added the -t parameter. It
	tests the configuration file.

2008-03-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am (man_MANS), cget/Makefile.am (man_MANS), cget.1: The
	cget man page has been relocated inside the cget directory.

	* Makefile.am (man_MANS), cherokee_logrotate.1: Man page removed.

	* admin/PageAdvanced.py: Added the server!thread_number
	configuration entry.

2008-03-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c: Added new parameter -p to specify the listening
	port. It can be used when cherokee is invoked with the -r
	parameter (servers static content from a local directory).

	* cherokee-admin.8, file cherokee_tweak.1, file spawn-fcgi.1:
	Added new man pages. Written by Gunnar Wolf <gwolf@gwolf.org>.

	* cherokee.1, cherokee-config.1, Makefile.am: Man pages have been
	updated. By Gunnar Wolf <gwolf@gwolf.org>.

	* admin/PageVServer.py: A few sections more have been converted to
	the new table layout.

	* admin/static/css/cherokee.css: Table headers are bold now.

	* admin/Makefile.am (adminpy_SCRIPTS): server.py had to be
	installed as an executable script.

2008-03-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am (install-data-local): It has to create /var/log and
	/var/run when installing, otherwise it would fail after the
	installation if DESTDIR wasn't /.

	* admin/Form.py, admin/PageVServer.py: The Virtual Server
	configuration page has been updated to use the new table format.
	Besides, a few changes in the table itself have been performed.

	* admin/Form.py, admin/Table.py, admin/static/css/cherokee.css:
	Added support for the new format table. The new table includes
	more information and a new layout.

	* admin/PageAdvanced.py, admin/PageGeneral.py: Migrated to the new
	table format.

	* admin/PageIcon.py: Extension entries are wider now.

2008-03-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre: "server!mime_files" configuration key
	is no longer a valid key. Removed from the default configuration
	file.

	* admin/PageMime.py (PageMime._render_mime_list),
	admin/static/css/cherokee.css: Added a scrollbar. The default mime
	type list is quite big. The scroll makes the page to look better.

	* admin/PageMime.py (PageMime._render_mime_list): Show the mime
	entries sorted.

	* admin/PageMime.py: Mime Type configuration page has been
	re-implemented.

	* admin/pyscgi.py: Updated to pyscgi 1.6. It fixes a writing issue
	on OS X.

	* Makefile.am, mime.types.sample, mime.compression.types.sample:
	Example mime type files have been removed. They are no longer
	needed.

	* cherokee.conf.sample.pre: Added a bunch of mime types. Most of
	the old mimes have been converted.

	* cherokee/mime.c, cherokee/server.c (configure_server): The mime
	class has been reworked. Mime types are not longer read from a
	text file; from now on, the general configuration system is used
	instead.

	* admin/PageVServer.py: Added a note explaining how rules are
	evaluated.

2008-03-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/PageVServer.py (PageVServer._op_add_new_entry): It does
	not require to enter a priority by hand any longer. Now it looks
	for the highest on the list and put the new entry right after it.

	* admin/PageVServer.py (PageVServer._render_rules_generic): The
	generic rule list has been rewritten. It does no longer use the
	Jquery sortable module.

	* admin/default.template.html, admin/PageVServer.py,
	admin/static/js/ui.mouse.js, admin/static/js/jquery.dimensions.js,
	admin/static/js/ui.sortable.js: Added a new fancy rule list. This
	version does not require to write the priority of the rules by
	hand; instead the rules are arranged by dragging and dropping
	them.

	* cherokee/buffer.c (cherokee_buffer_add_va_list): Error recovery
	improved. In the case cherokee_estimate_va_length() misses the
	right length it tries again with the length previously returned by
	vsnprintf().

	* configure.in, themes/Makefile.am, themes/default/*,
	themes/firefox3/*: Themes have been split in directories.

2008-03-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, cherokee/Makefile.am: crypt() and PAM detection
	improved.

	* qa/069-PathInfo3.py, qa/088-CGI-envs.py: /bin/bash has been
	replaced with /bin/sh.

	* cherokee/Makefile.am (cherokee_tweak_LDADD), configure.in: It
	had to include the pthread library (by adding the -pthread ld
	parameter). This made the compilation on FreeBSD to fail.

	* admin/server.py, cherokee/main_admin.c (config_server):
	cherokee-admin calls server.py directly (without calling
	python). server.py is now executable.

	* configure.in: Check for socklen_t has been reworked.

	* configure.in: Removed a few bashisms.

	* doc/Makefile.am: Removed unnecessary checks. Not concurrency is
	already provided by make, there is no longer need for the hack.

	* doc/locale/en/index.txt: Updated to point to the internal
	configuration page. There was no link to it.

	* cherokee/exts_table.c, cherokee/validator_htpasswd.c,
	cherokee/logger_writer.c, cherokee/mime.c, cherokee/connection.c,
	cherokee/dirs_table.c, cherokee/socket.c: This patch fixes a few
	harmless compilation warnings.

2008-03-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am (install-data-local): Ensure that the admin
	directory exists before trying to copy the configuration file
	example.

	* admin/ModuleRedir.py, admin/PageEncoders.py,
	admin/PageVServers.py, admin/ModuleBalancer.py,
	admin/PageVServer.py, admin/static/images/bin.png,
	admin/static/images/Makefile.am, admin/Form.py,
	admin/ModuleErrorRedir.py, admin/PageIcon.py: "Del" buttons have
	been replaced by little "bin" icons.

	* cherokee/trunk/admin/PageEntry.py,
	cherokee/trunk/admin/PageVServer.py,
	cherokee/trunk/admin/VirtualServer.py,
	cherokee/trunk/admin/validations.py: "Personal Web" support is now
	complete. It allows to configure "public_html" home
	directories. Internally speaking: "vserver!x!user_dir!".

2008-03-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre: The "ogg" extension was duplicated.

2008-03-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c (check_request_finish_with_slash),
	cherokee/connection.c, cherokee/connection-protected.h,
	qa/155-DirRedirection2.py, qa/Makefile.am (EXTRA_DIST): Added a
	new property to the connection class that indicates whether its
	using a custom document_root. It was needed by the dirlist to
	build the redirection URL in case the request do not end by /. A
	new QA test has been also written to cover this case.

	* TODO: Road Map updated

	* qa/154-DirRedirection.py, qa/Makefile.am (EXTRA_DIST): Added new
	QA case to cover the previous patch.

	* cherokee/handler_dirlist.c (check_request_finish_with_slash): It
	must use the web_directory when redirecting a directory request
	not ending by slash.

2008-03-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (INCLUDES), constants.h.pre,
	Makefile.am (SUBDIRS), cget/Makefile.am (INCLUDES),
	contrib/Makefile.am (INCLUDES): Most of the compilation
	definitions have been moved to a file that is built just before
	the main compilation.

	* doc/Makefile.am (.NOTPARALLEL): Documentation shouldn't be
	generated in parallel. At this moment a simple call to
	build_docs.py compiles it all. When it compiles in parallel, make
	calls many times to build_docs.py so the documentation is
	regenerated and overwritten many times.

2008-03-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.h: Removed configuration property list.

	* cherokee/handler_file.c (cherokee_handler_file_configure):
	Removed error reporting on invalid confguration key. It was the
	source of many minor issues.

2008-03-15  A.D.F  <adefacc@tin.it>

	* admin/*.help.html:
	  - fixed mispellings and added a few more details about
	    range values if setable fields.

	* admin/PageAdvanced.py:
	  - fixed a mispelled word in warning help.

2008-03-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_file.c (cherokee_handler_file_configure),
	cherokee/handler_dirlist.h (HDL_DIRLIST_PROP_LIST): Added special
	case: when it finds a handler dirlist key it should ignore it
	instead of reporting an error. The handler common shares the same
	configuration between both (file and dirlist) handlers. It was
	printing a confising error message about an invalid config key.

2008-03-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin/advanced.help.html: Written. The file was empty.

	* admin/CherokeeManagement.py (CherokeeManagement._restart):
	Updated to reflect the last change on cherokee-guardian. Now it
	sends SIGUSR1 instead of SIGHUP.

	* cherokee/main_guardian.: Signal management has changed. From now
	on: SIGTERM kills the child and make guardian to exit; and SIGUSR1
	restarts the child process.

	* cherokee/main_guardian.c (process_launch): It had to check
	whether -b was used, in which case it had to daemonize itself and
	remove the parameter for argv.

2008-03-12  Taher Shihadeh <taher@unixwars.com>

	* doc/: Some more documentation.

2008-03-11  Cesar Fernandez Gago  <cesar@pk2.org>

	* doc/: Added lots of new documentation for 0.6.

2008-03-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_extract_path):
	Added a couple of special cases to ensure that the server works
	properly when a RoR or a Django SCGI/FastCGI is used domain-wide.

	* qa/151-SCGI-vars.py, qa/152-SCGI-vars2.py,
	qa/153-SCGI-vars-root.py, qa/Makefile.am (EXTRA_DIST): Added a few
	new tests to ensure that SCGI/FastCGI behaves as expected with
	Django and RoR.

	* cherokee/server.c (cherokee_server_get_vserver): If no vserver
	names match the requested domain, try to match the domain alias.

	* qa/util.py (get_free_port): Added new function to assign the tcp
	ports dynamically.

	* qa/127-SCGI-Post.py, qa/140-SCGI-EmptyVars.py, qa/126-SCGI.py,
	qa/141-FastCGI-EmptyVars.py, qa/142-SCGI-ExtraVars.py: Adapted to
	use get_free_port().

2008-03-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre: Removed a couple of "include" entries.
	As long as cherokee-admin does not manage this kind of entries,
	the default configuration file should not use it.

2008-03-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/icons.c (cherokee_icons_get_icon): Fixed a call to
	cherokee_avl_while() that could end up generating a SEGFAULT.

2008-03-05  Taher Shihadeh <taher@unixwars.com>
	* admin/*: Several files needed corrections for consistency.

2008-03-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am, cherokee.conf.sample.pre, admin/Makefile.am,
	admin/configured.py.pre: Replaced /var by %localstatedir%.

	* contrib/spawn-fcgi.c: Added wait.h header. Fixes compilation on
	Solaris 10.

2008-02-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added checks for libgcrypt and libgpg-error. Both
	libraries are GNUTLS dependencies.

2008-02-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libcherokee_base_la_SOURCES):
	config_node.c, config_node.h, config_reader.h and config_reader.c
	are now part of libcherokee_client (instead of part of
	libcherokee_server).

	* cherokee/main.c (BASIC_CONFIG): Updated to the new icon set.

	* cherokee/matching_list.c (cherokee_matching_list_configure):
	Added code to parse the !type configuration property and check
	whether it is default_allow, default_deny, deny_allow or
	allow_deny.

2008-02-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/matching_list.c (cherokee_matching_list_configure):
	Implemented. Uses the code removed from server.c plus a few checks
	to set the default behaviour: allow/deny.

	* cherokee/server.c (add_encoder): There were a three functions
	that should have been in this location. Matching lists must be
	configured from its own class.

2008-02-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c (DEFAULT_CONFIG_FILE): It should use
	CHEROKEE_CONFDIR instead of supposing "/etc/cherokee". This fixes
	an issue running Cherokee without the "-C" parameter when it is
	not installed in the default location.

2008-02-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (cherokee_server_read_config_string): Added a
	new function to check whether the server is ready or not. By the
	moment it only checks if all the virtual server have a document
	root, but more checks must be added to this function in the near
	future.

2008-02-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre: Removed commented entries. This file
	is not meant to be read by humans, and those parameters can
	already be set via cherokee-admin.

	* mods-ssl.sample.pre, Makefile.am: mods-ssl.sample has been
	removed; cherokee-admin handles it.

	* doc/build_docs.py: Added support for a new -v parameter and
	verbose output.

	* doc/Makefile.am: Execute build_docs.py with verbose output by
	default.

	* doc/build_docs.py: It skips all the files that do not end with
	".txt". It was processing many unneeded files such as SVN property
	files and editor temporal files.

2008-02-05  A.D.F  <adefacc@tin.it>

	* macros.h, connection.c:
	  - fixed mispelling, renamed MSECONS_TO_LINGER to MSECONDS_TO_LINGER.

	* handler_file.c:
	  - added HTTP header "Expires: RFC1123 date" for HTTP/1.0 connections
	    in order to complete support for max-age cache control.

2008-02-04  A.D.F  <adefacc@tin.it>

	* mime.types.sample:
	  - added a few more comments about syntax of the file;
	  - included the content of mime.compression.types.sample
	    into mime.types.sample;
	    NOTE: workaround for Cherokee 0.6x.

	* cherokee.conf.sample.pre:
	  - removed mime.compression.types file from
	    mime_files = %sysconfdir%/cherokee/mime.types
	    assignment;
	    NOTE: mime_files variable can accept ONLY 1 file.

2008-02-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* advanced.conf.sample.pre:
	Removed file because it was not used anymore
	(it had the Cherokee 5.x configuration format).

2008-02-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.pre, mods-icons.conf.sample, Makefile.am:
	Icons definition have been moved to the default configuration
	file.

2008-01-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_tweak.c: PRINT_MSG() calls replaced by 
        PRINT_MSG_S(). It fixes a compilation problem on Solaris.

2008-01-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

        * cherokee/main_admin.c (main): Added win32 initialization. It
	also ignores SIGPIPE. Fixes Google#29.

	* cherokee/handler_server_info.c (PAGE_HEADER)
	(server_info_build_page): There was a potential problem here. I
	have changed a call to a long cherokee_buffer_add_va in which a %s
	was replaced with a call to cherokee_buffer_add_str() and a string
	replacement. It is much more stable (at least on OS X).

2008-01-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c (config_server): Do not try to use the
	SCGI for serving /favicon.ico, use the file handler instead.

2008-01-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_send_header): Do not
	try to send the header if there is no header to be sent.

	* cherokee/handler_mirror.c: Added a few new trace points.

2008-01-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* admin, admin/advanced.help.html, admin/config.py,
	admin/default.template.html, admin/entry.help.html,
	admin/Entry.py, admin/Form.py, admin/general.help.html,
	admin/icon.help.html, admin/main.help.html,
	admin/main.template.html, admin/Makefile.am, admin/mime.help.html,
	admin/Page.py, admin/PageAdvanced.py, admin/PageApply.py,
	admin/PageEntry.py, admin/PageGeneral.py, admin/PageIcon.py,
	admin/PageMain.py, admin/PageMime.py, admin/PageVServer.py,
	admin/PageVServers.py, admin/pyscgi.py, admin/server.py,
	admin/Table.py, admin/Theme.py, admin/validations.py,
	admin/VirtualServer.py, admin/vserver.help.html,
	admin/vservers.help.html, configure.in, Makefile.am: Merge of the
	new adminitration interface (early beta state).

	* cherokee/main_admin.c: Added new parameter -C. It allow to
	specify the configuration file that should be edited.

2007-12-31  A.D.F  <adefacc@tin.it>

	* mime.c
	  - changed cherokee_mime_load_mime_types()
	    to interpret a sequence of digits preceded by '.'
	    as a max-age value in seconds for that mime type
	    (instead of interpreting it as a file extension);
	    i.e. to set a max-age of 65 seconds in mime.types for html files:

	    # mime type       [ .number ]  extension1 [ extensions ... ]
	    text/html		.65	html htm shtml

2007-12-21  A.D.F  <adefacc@tin.it>

	* mods-icons.conf.sample
	  - added a few more extensions and moved default icon
	    from first to third position in order to make it work.

	* cherokee/human_strcmp.c
	  - replaced isnumber() with isdigit() (more portable and standard),
	    because isnumber() is not available everywhere.

	* cherokee/handler_dirlist.c
	  - cherokee_handler_dirlist_configure(),
	    fixed a memory leak on load_theme() failure;
	  - parse_if(), added a new formal parameter (len_entry)
	    to avoid a superfluous strlen() on strings
	    whose length is already known by caller;
	  - cmp_size_down(), cmp_date_down(), difference value between
	    two numeric values is no more assigned to an int,
	    instead the two values are compared directly in order to avoid
	    a possible numeric overflow (positive or negative);
	  - render_parent_directory(), now %icon% token is always substituted
	    with its value (including "") as it happens in render_file()
	    (in order to not leave the original token %icon%);
	* themes/* 
	  - changed indentation characters to always use tabs instead of
	    spaces.

2007-12-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c (cmp_name_down): Now, the dirlist
	handler uses cherokee_human_strcmp() instead of strcmp() for a
	better file listing.

	* cherokee/human_sort.h, cherokee/human_sort.c,
	cherokee/Makefile.am: Added new file with a more human friendly
	strcmp() function.

2007-12-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_get_request): On
	Windows it should replace the '\' characters in the request with /
	characters.

	* cherokee/buffer.c (cherokee_buffer_unescape_uri): Added a couple
	of TRACE entries.

2007-12-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am: Minor fix to make Cherokee to
	cross-compile to Win32.

	* themes/Makefile.am, themes/firefox3_header.html,
	themes/firefox3_footer.html, themes/firefox3_entry.html,
	themes/firefox3_theme.css: Added new handler dirlist theme based
	on the Firefox3 (ftp?) directory listing.

2007-11-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

       * configure.in: Added check for Python's docutils module. It warns
       if it is not installed.

2007-11-03  A.D.F  <adefacc@tin.it>

	* cherokee/server-protected.h, cherokee/server.c,
	  cherokee/thread.h, cherokee/thread.c,
	  cherokee/connection.c,
	  cherokee/logger_ncsa.c, cherokee/logger_w3c.c
	  - added RFC-1123 date-time format to try to fix issue 24
	    (http://code.google.com/p/cherokee/issues/detail?id=24);
	    now there are two distinct times: local and GMT time,
	    right now only RFC-1123 date-time string is generated and
	    stored into bogo_now_strgmt;  should a local time string
	    be useful, then it could be easily added; things changed:
	    - added new fields to cherokee_server struct:
		- bogo_now_tzloc_sign;
		- bogo_now_tzloc_offset;
		- bogo_now_tmloc;
		- bogo_now_tmgmt;
		- bogo_now_strgmt;
	    - removed a few fields from cherokee_server struct:
		- bogo_now_tm;
		- bogo_now_string;
	    - server.c -> update_bogo_now: changed;
	    - connection.c, use new date-time string in RFC-1123 format;
	    - logger*.c use the new localtime variable names
	      (no functional change).

2007-11-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/149-Common-PathInfo.py, qa/150-Common-No-PathInfo.py: Added
	two new QA tests to ensure that the latest change works.

	* cherokee/handler_common.c, cherokee/handler_common.h: Added new
	configuration key "allow_pathinfo".

2007-10-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_misc.h, cherokee/win32_misc.c,
	cherokee/Makefile.am: Path by Ross Smith II
	<cherokeespam@netebb.com>. Fixes Win32 compilation: move bool
	definition to the header files and inhibits cherokee-guardian
	compilation on Windows.

2007-10-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-kqueue.c (_watch): Micro clean up: removes two
	unused variables.

	* cherokee/handler_cgi.c (manage_child_cgi_process): The CGI
	process shouldn't use the server-wide signal handers. Now it
	resets SIGPIPE, SIGHUP, SIGSEGV and SIGTERM to their original value.
	This patch also moves the call to signal() right before calling
	execve().

2007-10-18  A.D.F  <adefacc@tin.it>

	* cherokee/server.h,
	  cherokee/server.c,
	  cherokee/main.c,
	  cherokee/main_admin.c
	  - changed cherokee_server_stop() to only stop the server
	    without destroying it;
	  - added cherokee_server_free() call after cherokee_server_stop()
	    function calls.

2007-10-17  A.D.F  <adefacc@tin.it>

	* cherokee/server.h,
	  cherokee/server.c
	  - cherokee_server_handle_TERM:
	    - removed flush_logs() call in order to prevent a possible
	      deadlock if a signal arise inside MUTEX_LOCK ... MUTEX_UNLOCK
	      section in logger.c;
	  - cherokee_server_step:
	    - added a few flush_logs() calls to be sure to always write
	      all the buffered content;
	    - optimized if jump: as wanna_reinit and wanna_exit conditions
	      are really unlikely to happen, they have been moved after
	      a simple likely test (wanna_reinit | wanna_exit) == 0;
	      NOTE the use of | instead of ||, we can do this because
	      cherokee_boolean_t is an int;
	  - added cherokee_server_stop() to close all connections before
	    freeing properly the server class;
	    NOTE: closing all the open connections and stopping the server
	          in a sane way, might require additional fixes
	          (because of locking issues).

	* cherokee/main.c,
	  cherokee/main_admin.c
	  - replaced cherokee_server_free() with cherokee_server_stop().

2007-10-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_add_env_pair)
	(manage_child_cgi_process): It tries to fix:
	http://code.google.com/p/cherokee/issues/detail?id=23

2007-10-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/default_entry.html: Icons directory is no longer
	hard-coded to /icons/

	* cherokee/handler_dirlist.c, cherokee/handler_dirlist.h: Added
	new property icon_web_dir. It specifies the web directory under
	which the icons will be located.

	* cherokee/main.c (BASIC_CONFIG): Added hardcoded entries for the
	most basic icons. In the case a more icons are defined it'll
	overwrite these entries.

	* cherokee/source_interpreter.c (cherokee_source_interpreter_spawn):
	Ensure that the forked process dies after the execve() call.

2007-10-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added libcrypto detection. It was not compiling
	with OpenSSL support on OS X because there were a few undefined
	symbols from this library.

	* configure.in: PAM detection fixed/improved. Depending on the
	case, it could fail to compile because of this check.

2007-10-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* autogen.sh: Added check for glibtool. Without this, it wasn't
	compiling on OS X without using a custom LIBTOOL environment
	variable.

2007-09-27  Stefan de Konink <stefan@konink.de>, A.D.F  <adefacc@tin.it>

	* cherokee/header.c
	  - parse_method(), fixed macro detect_method()
	    in order to avoid an automatic conversion from
	    a constant string to a char pointer which leads to a wrong
	    string comparison (sizeof(ptr)).

2007-09-26  A.D.F  <adefacc@tin.it>

	* cherokee/header.c
	  - parse_request_first_line(), refined comment about HTTP/0.9.

2007-09-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/header.c (detect_method): Fixed method detection on
	64bit machines. Issue explanation and patch from Stefan de Konink
	<stefan@konink.de>.

2007-09-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/request.c (cherokee_request_header_build_string): Moved
	to use cherokee_http_* methods instead of local switches for
	converting the http method into a string.

	* cget/proxy.h, cget/proxy.c, cherokee/request.h, , cget/main.c,
	cherokee/request.c (cherokee_request_header_build_string),
	cherokee/downloader.h, cherokee/downloader.c: Added proxy
	support. Cget inherits this feature of the cherokee-client
	library.

	* cget/main.c: Quite a few small fixes and micro-improvements.

2007-09-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cherokee-panic: It should use sendfile rather than mail
	or mailx. It is a more standard application.

	* cherokee/Makefile.am (-DCHEROKEE_PANIC_PATH),
	cherokee/server.c (cherokee_server_new): Added panic_action to the
	default configuration. From now on, if the server crashes it will
	call cherokee-panic by default.

	* cherokee/cherokee-panic: Fixed typo. It also slightly improves
	the error reporting on case of an incorrect action.

2007-09-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/common-internal.h cherokee/buffer.h cherokee/util.h:
	Couple of minor changes related to the buffer class.

2007-09-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/common-internal.h: As long as this header file defines
	the PRINT_ERRNO it ought to include <errno.h>.

	* cherokee/buffer.c, cherokee/buffer.h: Restored to method that
	used to exist a few versions ago: cherokee_buffer_cmp() and
	cherokee_buffer_case_cmp().

	* cherokee/trace.h, cherokee/trace.c, cherokee/macros.h,
	cherokee/Makefile.am, cherokee/util.c, cherokee/util.h,
	cherokee/cherokee.h, cherokee/server.c, configure.in: Tracing
	facility moved to an independent file. The code has been slightly
	reworked in order to allow the modification of the modules
	that are traced dynamically.

2007-09-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_guardian.c, cherokee/Makefile.am: The Cherokee
	guardian is a new binary that takes care of launching the server
	and looking after it. If the server dies, the guardian will launch
	a new instance of the server.

	* cherokee/connection.c (cherokee_connection_build_header),
	cherokee/handler_proxy.c (cherokee_handler_proxy_new),
	cherokee/handler_mirror.c (cherokee_handler_mirror_new),
	cherokee/handler.h,: Constant hsupport_dont_add_headers renamed to
	hsupport_skip_headers.

2007-09-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c cherokee/handler.h cherokee/connection.c:
	Handler support macros cleaned up.

	* cherokee/connection.c (cherokee_connection_build_header): If the
	handler doesn't support "add headers" method, don't even call the
	handler method.  It shouldn't add the server headers either.
	It fixes: http://code.google.com/p/cherokee/issues/detail?id=17

	* cherokee/handler.h (HANDLER_SUPPORTS): Added new macro. There is
	some clean up around the handler class macros that we need to
	accomplish soon.

2007-08-04  Juan Badia  <jubapa@gmail.com>

	* cherokee/pcre/pcre_compile.c: This solves the error when I try
	to compile cherokee-trunk with -DDEBUG. However it doesn't create
	the file pcre_printint.src, neither declares the fucntion
	pcre_printint.

2007-09-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c: There wasn't a reason not to use the
	common-internal.h header file here.

	* cherokee/macros.h, cherokee/ncpus.c, cherokee/fdpoll-port.c,
	cherokee/server.c, cherokee/socket.c: PRINT_ERRNO related fixes. A
	new macro PRINT_ERRNO_S is now in place to fix compilation with
	non-gcc compilers.

2007-09-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* pcre/*, cherokee/Makefile.am: Added a new subset of PCRE library
	dated on Aug 2007.

	* pcre/*: Removed. This code was dated on Dec. 2003.

	* configure.in: Added new --enable-internal-pcre parameter to the
	configure script. It forces the use of the internal PCRE copy
	rather than the system-wide one.

2007-08-02  Juan Badia  <jubapa@gmail.com>

	* cherokee/pcre/pcre.c: It was not compiling with the DEBUG
	building flag becase it was missing the print_internals() from the
	printint.c (which is not included in Cherokee). Fixed.

2007-08-31  Juan Badia  <jubapa@gmail.com>

	* doc/Makefile.am, doc/cherokee/server.txt: Updated.

	* doc/cherokee/compiling_and_installing_unix: Added new
	documentation file covering compiling and installation.

2007-08-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_tls_init): Set the GNUTLS property
	GCRYCTL_ENABLE_QUICK_RANDOM in order to speed up initialization.
	On Linux, it was taking ages to launch the server because of that
	kernel bug (I can not believe it's a feature)

2007-08-30  Juan Badia  <jubapa@gmail.com>

	* cherokee/server.c (cherokee_server_new): Removed double
	initialization of the ->icons object property.

2007-08-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libplugin_server_info_la_LDFLAGS): The
	server_info handler needs to be linked against cherokee-config.
	Bug reported by Juan Badia <jubapa@gmail.com>

2007-08-22  A.D.F  <adefacc@tin.it>

	* cherokee/connection.c,
	  cherokee/request.c
	  - removed a few remaining statements involved in HTTP/0.9 support
	    (which has just been removed).

2007-08-21  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h
	  - added LBS macro (HTTP linear blank space);

	* cherokee/header.h
	  - parse_request_first_line() + parse_response_first_line() +
	    cherokee_header_parse():
	    - added formal parameter "error_code" (HTTP error code);

	* cherokee/header.c
	  - parse_request_first_line() + parse_response_first_line() +
	    cherokee_header_parse():
	    - added formal parameter "error_code" (HTTP error code);
	  - parse_request_first_line():
	    - added support for:
	      - HTTP 505 version not supported;
	      - HTTP 501 (method) not implemented;
	    - partially rewritten the HTTP request parser in order
	      to be more standard conformant;
	  - cherokee_header_has_header(), lowered minimum HTTP request length
	    in order to handle properly HTTP/0.9 requests too
	    (which are refused with error: HTTP 505 Version Not Implemented);

	* cherokee/connection.c,
	  cherokee/downloader.c
	  - added formal parameter (HTTP) error_code.

	* qa/003-UnknownMethod.py,
	  qa/004-UnknownMethod+MissingProtocol.py,
	  qa/006-WrongProtocol.py
	  - changed expected HTTP response codes (400 -> 501, 400 -> 505).

2007-08-13  A.D.F  <adefacc@tin.it>

	* cherokee/server.c
	  - added srv->bogo_now to cherokee_win32_shutdown_signalled()
	    call;

	* cherokee/win32_misc.h,
	  cherokee/win32_misc.c
	  - added a formal parameter (time) to
	    cherokee_win32_shutdown_signalled(), in order to execute
	    shutdown test only once a second;

	* cherokee/connection.c
	  - build_response_header(), don't add headers with this version;
	  - moved a cherokee_buffer_ensure_size(header_buffer)
	    near to the other call to cherokee_buffer_ensure_size(buffer);
	  - build_response_header__authenticate(), removed a couple
	    of calls to cherokee_buffer_ensure_addlen() because
	    they are no more needed in that place (buffer is large enough
	    and buffer reallocations already take care to use increments
	    with predefined chunk size).

	* cherokee/http.h,
	  cherokee/http.c
	  - added two new HTTP errors:
	    - 501 Not Implemented;
	    - 505 HTTP Version Not Supported;
	    NOTE: this is in preparation of their future use.

2007-08-10  A.D.F  <adefacc@tin.it>

	* cherokee/handler_server_info.c,
	  cherokee/handler_admin.c,
	  cherokee/handler_cgi_base.c,
	  cherokee/handler_file.c,
	  cherokee/handler_error.c,
	  cherokee/downloader.c,
	  cherokee/connection.c
	  - cosmetic change,
	    use "Content-Length:" instead of "Content-length:";

	* cherokee/buffer.c
	  - cherokee_buffer_ensure_addlen(), add 1 to required size,
	    because it is more correct to consider "addlen" as
	    "additional length" instead of "additional size"
	    (this is really required because now we have
	     cherokee_buffer_ensure_size() so the old semantic of
	     cherokee_buffer_ensure_addlen() had to go anyway);

	  - cherokee_buffer_read_from_fd(), now we can read full size
	    instead of size - 1, so it fixes the case of a read size
	    of 1 byte, because now the function can return ret_ok
	    instead of (wrong) ret_eof (theoretical case because
	    in practice there is only one caller that passes 4096
	    as read size).

	* cherokee/connection.c
	  - cherokee_connection_build_header(), micro-optimizations:
		- don't search for Content-Length: unless it is really
		  necessary;
		- removed unneeded if condition (it should be always true).

	* cherokee/thread.c
	  - process_active_connections(), micro cleanups.

2007-08-10  A.D.F  <adefacc@tin.it>

	* cherokee/handler_server_info.c
	  - build_connection_details_content(), use strtoll()
	    instead of atoi() because those counters come from an off_t
	    data type which can be 64 bit (long long).

2007-08-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection_info.c (cherokee_connection_info_list_thread):
	Now, it includes polling connections as well.

	* cherokee/connection_info.c (cherokee_connection_info_fill_up):
	Bug fixed. It was failing to generate the IP property; the buffer
	had length after the IP was added.

	* cherokee/handler_server_info.c, cherokee/handler_server_info.h:
	Added an additional configuration parameter "connection_details"
	that, when activated, display data about all the connections that
	the server is currently handling.

	* cherokee/server.c (cherokee_server_del_connection): Integrated
	with thread->ownership. Now it's safe (but slower) to use this
	method.

	* cherokee/socket.c (cherokee_socket_init_tls): Fail if the
	internal initialization function fails. So far, it wasn't checking
	the returning value.

	* cherokee/virtual_server.h, cherokee/virtual_server.c,
	cherokee/socket.c: Switched to use the new cherokee_avl_r_t. It
	was using a avl_t plus a mutex; now it's slightly cleaner (and
	should be faster as well).

	* cherokee/avl_r.h, cherokee/avl_r.c: Added new class: Thread-safe
	AVL. It uses cherokee_avl_t underneath.

2007-08-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c: This little tiny patch fixes the GNUTLS
	support. It needed a macro that wasn't being included.

	* cherokee/resolv_cache.c, cherokee/resolv_cache.h,
	cherokee/Makefile.am: <cherokee/cherokee.h> was broken. It
	couldn't be used by third party programs. This patch fixes the
	inclusion for the main header file.

	* cherokee/cherokee/validator_ldap.c, cherokee/fdpoll-epoll.c,
	cherokee/macros.h, cherokee/buffer.c, cherokee/logger_writer.c,
	cherokee/ncpus.c, cherokee/util.c, cherokee/fdpoll-port.c,
	cherokee/handler_cgi.c, cherokee/cherokee_logrotate.c,
	cherokee/fdpoll-kqueue.c, cherokee/server.c, cherokee/socket.c:
	errno related error reports cleaned up. They now use
	PRINT_ERRNO and cherokee_print_errno() underneath.

	* cherokee/macros.h (PRINT_ERRNO): Added new macro.

	* cherokee/virtual_server.h, cherokee/virtual_server.c,
	cherokee/socket.c: GNUTLS support reworked. Session AVL is now
	protected by a semaphore.

2007-08-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c (server_info_build_page): Fixes a
	bug when no icons are configured. It also convers a buffer pointer
	into a local buffer.

	* cherokee/handler_dirlist.c (render_file): Bug fix. It was
	crashing when there was no icon configuration.

2007-08-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/avl, cherokee/dict: Removed. They are no longer used in
	the server and hence it doesn't make sense to keep them in the
	code base. Reported by A.D.F

2007-08-01  A.D.F  <adefacc@tin.it>

	* cherokee/connection.c
	  - cherokee_connection_set_cork(), set or unset conn->options
	    cork bit properly;

	* cherokee/handler_file.c
	  - pass true not 1 to "enable" parameter of
	    cherokee_connection_set_cork(),
	    because that formal parameter is a boolean type
	    (only a formal issue, no change in practice).

2007-07-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (library_soname): Added the -version-info
	parameter to the libraries' LDFLAGS in order specify the soname.
	Patch by Marcus Rueckert <darix@web.de>.

	* configure.in: Added three exported variables defining the
	libraries soname.

	* cherokee/handler_dirlist.h, cherokee/handler_dirlist.c: Blank
	icon hack reverted. It has ended up being a bad idea.

	* cherokee/icons.c (cherokee_icons_get_icon): Little bug it. It
	was supposing an element of the AVL matched when it might not.

	* cherokee/matching_list.c (cherokee_matching_list_new): Fixed
	default behaviour. It shouldn't use the encoder unless the
	extension is explicitly specified.

	* cherokee.conf.sample.pre: Added css and js as extension as
	should be gzip encoded by default (if the client supports it).

2007-07-31  A.D.F  <adefacc@tin.it>

	* cherokee/handler_*.c
	  - space / indentation / code style cleanups.

2007-07-30  A.D.F  <adefacc@tin.it>

	* cherokee/admin_server.c,
	  cherokee/handler_remote_control.c,
	  cherokee/handler_server_info.c
	  - micro-optimization, enlarged tmp buffer passed to
	    cherokee_strfsize() from 5 to 8 characters.

	* cherokee/util.c
	  - cherokee_strfsize(),
	    added a cast to (long long) in order to do a proper comparison;
	  - removed a few blank lines.

2007-07-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fastcgi.c (cherokee_handler_fastcgi_configure):
	Configuration parsing fix. Reported by Brian Kerrick Nickel
	<brian.nickel@gmail.com>.

2007-07-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.6.0 Beta 2 released: based on r863

2007-07-28  A.D.F  <adefacc@tin.it>

	* cherokee/source_interpreter.c,
	  cherokee/sha1.c,
	  cherokee/regex.c,
	  cherokee/post.c,
	  cherokee/ncpus.c,
	  cherokee/md5crypt.c,
	  cherokee/md5.c,
	  cherokee/matching_list.c,
	  cherokee/match.c,
	  cherokee/icons.c,
	  cherokee/header.c
	  - space / indentation / code style cleanups.

2007-07-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_mkstemp): Added new function. It wraps
	mkstemp() and cherokee_win32_mkstemp().

2007-07-23  Ross Smith II <cherokeespam at netebb.com>

	* cherokee/post.c, cherokee/win32_misc.c, cherokee/win32_misc.h:
	Add mkstemp() functionality missing in MinGW.

2007-07-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py: Added new option for showing how much memory is
	the server using during the QA test execution.

2007-07-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py, qa/help.py (HELP_PRINT_PARAMETERS): -m was
	duplicated. The "delay between tests" parameter is now -j.

2007-07-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_redir.c, cherokee/read_config_embedded.c,
	cherokee/read_config_embedded.h, cherokee/plugin_loader.c,
	cherokee/handler_dirlist.c, cherokee/virtual_server.c,
	cherokee/win32_misc.c, cherokee/handler_common.c,
	cherokee/thread.c, cherokee/buffer.c, cherokee/handler_file.c,
	cherokee/main.c, cherokee/unix4win32.h,
	cherokee/Makefile.embedded, cherokee/connection.c,
	cherokee/server.c, cherokee/virtual_entries.c,
	cherokee/reqs_list_entry.c: CHEROKEE_EMBEDDED removed. Nobody was
	using it; it didn't make sense to continue maintaining
	it. Besides, embedded devices are much more powerful nowadays.

	* cherokee/handler.c (cherokee_handler_free): Free the handler
	even if something goes wrong with the ->free method.

	* cherokee/handler_error.c (build_hardcoded_response_page),
	cherokee/connection-protected.h, cherokee/connection.c: Adapted to
	the new cherokee_buffer_escape_html() interface and the
	buffer_escape removal.

	* cherokee/buffer_escape.h, cherokee/buffer_escape.c,
	cherokee/Makefile.am: Removed.  This class was a mistake and
	should no longer exist.

	* cherokee/buffer.c (cherokee_buffer_escape_html),
	cherokee/buffer.h: Reworked: instead of allocating a new buffer
	it generates the escaped version inside the second buffer provided
	as argument.

2007-07-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.h, cherokee/util.c (cherokee_print_errno): Added
	new printing error function.

	* cherokee/regex.c (cherokee_regex_table_free): Again, another
	little tiny memory leak. The server leaked 41 bytes on each
	reload. Fixed.

	* cherokee/plugin_loader.c (cherokee_plugin_loader_mrproper):
	Fixed nano memory leak - no more than 30 or 40 bytes.

	* cherokee/avl.c, cherokee/avl.h, cherokee/dirs_table.c,
	cherokee/encoder_table.c, cherokee/handler_fastcgi.c,
	cherokee/iocache.c, cherokee/thread.h: Converted to use
	cherokee_func_free()

	* cherokee/common.h: Added new function type: cherokee_func_free.

	* cherokee/source_interpreter.c, cherokee/source_interpreter.h,
	cherokee/source.h, cherokee/source.c: Another little tiny memory
	leak has been fixed here. The fred object wasn't calling its
	predecessor destructor.

	* cherokee/balancer.c (cherokee_balancer_mrproper): Memory leak
	fixed. It wasn't freeing the source objects.

	* cherokee/validator_plain.c (cherokee_validator_plain_check):
	Rewritten from scratch. Now, it uses temporary buffers instead of a
	fixed size temporary array - among other improvements.

	* cherokee/validator.c (cherokee_validator_digest_check),
	cherokee/validator_plain.c (cherokee_validator_plain_check),
	cherokee/validator_mysql.c (cherokee_validator_mysql_check),
	cherokee/validator.h: The battle against char * continues! Another
	parameter char * converted to our sweet cherokee_buffer_t *.

	* cherokee/validator.c (digest_HA2,
	cherokee_validator_digest_check): Slightly optimized, a call to
	cherokee_buffer_add_va() has been replaced.

	* cherokee/validator.c (cherokee_validator_digest_response): Fixed
	a 32 bytes memory leak.

	* cherokee/iocache.c (cherokee_iocache_free): Now it uses
	cherokee_avl_mrproper() instead of cherokee_avl_while() plus
	free(). Besides the correctness, it fixed a memory leak.

	* cherokee/avl.c: Clean up: avl_node_* static methods renamed.
	Rewritten as _new/_free instead of _init/_mrproper.
	(cherokee_avl_mrproper): Rewritten to use node_free().

	* cherokee/thread.c (process_active_connections),
	cheroke/server.c, cherokee/server-protected.h: Reworked in order
	to remove the call to cherokee_server_get_conns_num(). A thread
	should never query or access other threads (and that's exactly
	what that method was doing).

	* cherokee/thread.c (cherokee_thread_free): It wasn't freeing the
	reusable connections. Fixed.

	* qa/util.py (count_down): Refactored. There were two places in
	which it needed count-downs. This is the common function.

	* qa/run-tests.py (clean_up): Added a little pause. We should give
	the server some time to die gracefully between the SIGTERM and
	SIGKILL signals.

	* qa/Makefile.am, qa/143-ContentRange-NoIO.py,
	qa/144-ContentRange2-NoIO.py, qa/145-ContentRange3-NoIO.py,
	qa/146-ContentRange4-NoIO.py, qa/147-ContentRange-Double-NoIO.py,
	qa/148-ContentRange-Double2-NoIO.py: Added 6 new test to check
	partial file management without IOcache.

	* cherokee/icons.c (cherokee_icons_free),
	cherokee/avl.c (node_first): Protected against NULL pointers.

	* cherokee/server.c (cherokee_server_handle_panic): PRINT_ERROR_S
	to PRINT_MSG_S. Source file and line number don't help in this
	case.

2007-07-19  A.D.F  <adefacc@tin.it>

	* cherokee/fcgi_manager.c
	  - removed double call to cherokee_fd_set_nonblocking().

2007-07-19  A.D.F  <adefacc@tin.it>

	* cherokee/thread.c
	  - __accept_from_server(), fixed a very uncommon memory leak
	    on a new connection object;
	  - enlarged MUTEX_LOCK / MUTEX_UNLOCK section.

2007-07-19  A.D.F  <adefacc@tin.it>

	* cherokee/socket.c
	  - cherokee_socket_close(), use cherokee_close_fd()
	    instead of socketclose(fd) / close(fd);
	  - space cleanup.

2007-07-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* doc/Makefile.am: Inhibit concurrent compilation.

2007-07-17  A.D.F  <adefacc@tin.it>

	* cherokee/util.c
	  - cherokee_parse_query_string(), skip empty tokens.

2007-07-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/142-SCGI-ExtraVars.py (PORT): It was duplicated with QA test
	#141. It's fixed now.

	* cherokee/virtual_server.c, cherokee/virtual_server.h,
	cherokee/module.h, cherokee/validator.c, cherokee/encoder_table.c,
	cherokee/validator.h, cherokee/regex.c, cherokee/thread.h,
	cherokee/handler.h, cherokee/header.h, cherokee/handler_fastcgi.c,
	cherokee/handler_proxy.h, cherokee/mime.h, cherokee/logger.h,
	cherokee/cherokee.h, cherokee/dirs_table.c, cherokee/mime_entry.h,
	cherokee/socket.c: Removed all the cherokee_table_t references.

	* cherokee/table.h, cherokee/table.c, cherokee/Makefile.am:
	cherokee_table_t does no longer exist.

	* cherokee/plugin_loader.h, cherokee/plugin_loader.c,
	cherokee/handler_fastcgi.c, cherokee/thread.h, cherokee/thread.c:
	cherokee_table_t to cherokee_avl_t conversion.

	* cherokee/avl.h, cherokee/avl.c (cherokee_avl_del_ptr): Added
	missing method.

	* cherokee/resolv_cache.c (cherokee_resolv_cache_clean):
	cherokee_table_t to cherokee_avl_t conversion.

	* cherokee/avl.c (cherokee_avl_mrproper): Implemented.

	* qa/run-tests.py: Count down fixed.

	* cherokee/util.h, cherokee/util.c, cherokee/connection.c,
	cherokee/connection-protected.h, cherokee/validator.c,
	cherokee/nonce.c, cherokee/nonce.h: cherokee_table replaced by
	cherokee_avl.

	* cherokee/handler_dirlist.c (render_file): Adapted to the last
	icons.c change.

	* cherokee/icons.h, cherokee/icons.c: Added a new property
	blank_icon that is returned when nothing else matches.

2007-07-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/icons.c: Converted to use cherokee_buffer_t * instead
	of char *.

	* cherokee/avl.c (cherokee_avl_mrproper2): Added new method.

	* cherokee/exts_table.c, cherokee/regex.c, cherokee/mime.c,
	cherokee/encoder_table.c: cherokee_table_t replaced by a
	cherokee_avl_t.

	* cherokee/avl.c (cherokee_avl_get_ptr): Added new method.
	(cherokee_avl_add_ptr): Added new method.

	* cherokee/table.c (cherokee_table_add, cherokee_table_get)
	(cherokee_table_del): Optimized to use cherokee_buffer_fake
	instead of allocating and freeing memory. It should improve the
	performance a little bit.

	* cherokee/buffer.h (cherokee_buffer_fake): Added new method.

	* cherokee/handler_common.c (stat_file): Fixed to handle
	ret_no_sys. It's returned when the iocache reaches its limit.

	* cherokee/table.c (cherokee_table_get_val): Removed. It was a
	mistake to add that method; we should rather use
	cherokee_table_get().

	* cherokee/exts_table.c (cherokee_exts_table_has),
	cherokee/regex.c (cherokee_regex_table_get, _add): We shouldn't
	use cherokee_table_get_val(). Moved to use cherokee_table_get().
 
	* cherokee/dirs_table.c, cherokee/dirs_table.h: This class used to
	be based on cherokee_table. Switch to cherokee_avl in order to
	improve the performance.

	* cherokee/iocache.c: Added a new TRACE entries.

	* cherokee/handler_file.c (cherokee_handler_file_init): There was
	an invalid call to cherokee_iocache_mmap_release() that was the
	cause of the infamous 'iocache bug' that has been bothering us for
	a couple of weeks. As soon as I have removed it, everything began
	to work just fine.

2007-07-16  Brian Rosner  <brosner@gmail.com>

	* www/doc/django: updated django to r5717 and added VERSION file
	  to keep track of what version is being used.

	* www/index.html: made the default index.html pass w3c validation
	  defined by the DOCTYPE.

2007-07-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/iocache.c: Cleaned up and added a few TRACE entries.

	* qa/run-tests.py, qa/help.py: Depending on the machine and
	environment, ten additional seconds to start the server might not
	be enough. This change adds a new parameter -r that allows to
	specify how long the test runner should wait before running the
	first one. Eg: CHEROKEE_TRACE="all" ./run-tests.py -v -c -r50

	* qa/run-tests.py: If the server runs with Valgrind, wait 10 more
	seconds to start the tests. There were many occasions in which the
	servers wasn't ready when the first test was executed.

	* cherokee/handler_common.c: Updated. Now it uses the new iocache
	interface (buffers instead of char pointers).

	* cherokee/avl.c (cherokee_avl_del): Bugfix. Recursion array base
	is 0, not 1.

	* cherokee/avl.c (cherokee_avl_del): Return the value in the third
	parameter (double pointer).

	* cherokee/iocache.c: Now it uses an AVL tree instead of a
	table. It also accepts cherokee_buffer_t* paths instead of char*

2007-07-13  Brian Rosner  <brosner@gmail.com>

	* doc/Makefile.am: forgot to include new documentation into
	  the makefile.

2007-07-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* doc/Makefile.am: It shouldn't delete the css on clean-up (it
	isn't autogenerated). Fixed.

2007-07-13  Brian Rosner  <brosner@gmail.com>

	* doc/: added some more documentation pages.

	* doc/build_docs.py: removed code to delete output_dir and moving
	the media folder to output_dir.

2007-07-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* doc/build_docs.py, doc/Makefile.am: Default building directory
	is no longer "./build". Changed to ./

	* doc/Makefile.am (CLEANFILES): Added new cleaning rule

	* cherokee/server.c (cherokee_server_get_reusable_conns): Clean
	up: Removed unused variable.

	* cherokee/avl.c: Many changes. It should be working much better
	now, i.e.: it's no longer recursive, etc.

2007-07-12  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h
	  - added get_buf_str(b) macro to get the string member
	    of a buffer_t.

	* cherokee/fdpoll.h
	  - added cherokee_fdpoll_str_to_method() prototype.

	* cherokee/fdpoll.c
	  - added cherokee_fdpoll_str_to_method() function.

	* cherokee/fdpoll-select.c,
	  cherokee/fdpoll-win32.c
	  - renamed maxfd_changed to maxfd_recompute.

	* cherokee/server.c
	  - configure_server_property():
	    - replaced sequence of equal_buf_str() calls with a call to
	      cherokee_fdpoll_str_to_method();
	    - added a call to cherokee_fdpoll_get_fdlimits()
	      to verify whether the chosen poll method is supported by
	      current environment / OS.

	* cherokee/*.c
	  - added a few comments;
	  - minor space cleanups.

2007-07-11  A.D.F  <adefacc@tin.it>

	* cherokee/fdpoll.h
	  - added cherokee_fdpoll_get_fdlimits() prototype.

	* cherokee/fdpoll.c
	  - added cherokee_fdpoll_get_fdlimits() in order to get
	    max. system and poll-set fd limits.

	* cherokee/fdpoll-protected.h
	  - added fdpoll_*_get_fdlimits() function prototypes.

	* cherokee/fdpoll-epoll.c,
	  cherokee/fdpoll-kqueue.c,
	  cherokee/fdpoll-port.c,
	  cherokee/fdpoll-poll.c,
	  cherokee/fdpoll-select.c,
	  cherokee/fdpoll-win32.c
	  - added fdpoll_*_get_fdlimits() to get specific
	    fd limits.

	* cherokee/server.c
	  - added test and auto-tune code for fdpoll system and per poll-set
	    fd limits before cherokee_fdpoll_new();
	    NOTE: new tests and auto-tune code are performed only
	          if a poller name (epoll, poll, etc.) is specified
		  among configuration parameters (righ now,
	          these tests are meaningful only for select based pollers).

2007-07-11  Brian Rosner  <brosner@gmail.com>

	* doc/build_docs.py
	  - ignores hidden files
	  - various clean-ups for 80 char consoles.

2007-07-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/avl.h, cherokee/avl.c (cherokee_avl_check): Added new
	check() method to the AVL class. It ensures that the order and
	balance is correct.

2007-07-11  Brian Rosner  <brosner@gmail.com>

       * doc/locale/en/handlers/common.txt,
         doc/locale/en/handlers/dirlist.txt,
         doc/locale/en/handlers/file.txt,
         doc/locale/en/server.txt,
         doc/locale/en/configuration.txt,
         doc/locale/en/index.txt,
         doc/locale/en/validators/mysql.txt,
         doc/locale/en/authentication.txt
         - fixed line wrapping to work better on consoles of 80 chars.

      * doc/build_docs.py
        - fixed the docutils requirement;  even if it is still
          required, it just doesn't fail now.

2007-07-11  Brian Rosner  <brosner@gmail.com>

	* doc/*,
	  configure.in,
	  Makefile.am
	  - Rewrote the entire documentation system. Everything is done
	    inside Python using the Django template classes and ReST for
	    the documentation.

2007-07-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/table.c: Adapted to use the new AVL class. There are a
	few temporary methods that need to be improved. I'll work on it in
	the next days.

	* cherokee/avl.c, cherokee/avl.h: Rewritten from scratch. It uses
	cherokee_buffer_t's as the index of the nodes, so it should be
	slightly faster than the previous implementation.

	* cherokee/connection.c (cherokee_connection_setup_error_handler):
	It is safer to return ret_ok instead of ret in this case. Fixed.

2007-07-10  A.D.F  <adefacc@tin.it>

	* cherokee/fdpoll.c
	  - cherokee_fdpoll_new():
	    - added error test on max. sys_fd_limit and fd_limit.

	* cherokee/fdpoll.h,
	  cherokee/fdpoll-protected.h
	  - updated function prototypes.

	* cherokee/fdpoll-epoll.c,
	  cherokee/fdpoll-kqueue.c
	  - renamed sys_limit to sys_fd_limit and limit to fd_limit
	    in order to be consistent with other fdpoll-*.c modules;
	  - space cleanups.

	* cherokee/fdpoll-select.c
	  - _watch():
	    - use proper type as return value;
	  - fdpoll_select_new():
	    - added error test on max. sys_fd_limit.

	* cherokee/fdpoll-win32.c
	  - _set_mode():
	    - added missing return value;
	  - fdpoll_win32_new():
	    - added error test on max. fd_limit.

2007-07-10  Brian Rosner  <brosner@gmail.com>

	* themes/default_header.html, themes/default_entry.html:
	  - fixed an issue where User and Group did not display correctly
	    when they were configured to display.

2007-07-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll.h: It was missing cherokee_fdpoll_is_empty()
	prototype declaration.

	* cherokee/fdpoll-select.c (_set_mode): Return the error code on
	error.

2007-07-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/142-SCGI-ExtraVars.py, qa/Makefile.am (EXTRA_DIST): New QA
	test. It checks the new 'pass_req_headers' parameter.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_envp,
	foreach_header_add_unknown_variable): Added new configuration
	token 'pass_req_headers' (boolean). It allows to enable the
	transparent copy of all the unknown headers of a CGI-based handler,
	whether it's SCGI, FastCGI or CGI.

	* cherokee/header.h,
	cherokee/header.c (cherokee_header_foreach_unknown): Added new
	method.

2007-07-07  A.D.F  <adefacc@tin.it>

	* cherokee/cherokee-panic
	  - added a second call to mktemp that is called
	    whenever the first call with -t option fails
	    (old versions of mktemp(1) don't have -t option).

2007-07-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py, qa/help.py: Added new parameter -m to allow
	adding delays between tests.

	* qa/run-tests.py, qa/help.py (help_print_parameters): Added a
	help message and a new parameter -h.

2007-07-07  A.D.F  <adefacc@tin.it>

	* cherokee/connection.c
	  - cherokee_connection_send_header_and mmaped():
	    - always decrement conn->mmaped_len;
	    - avoid ptr. math with pointers to void
	      by using a cast to (char *) and then back to (void *).

	* qa/run-tests.py
	  - Corrected mispelled word (Sucess -> Success).

2007-07-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/post.c (cherokee_post_mrproper): Checks if unlink() has
	returned an error, and warn if so.

	* cherokee/post.c, cherokee/cherokee/post.h: It does no longer use
	a FILE * for read/write the temporary files.  The call to mktemp()
	has been changed by a call to mkstemp() (safer).

2007-07-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_cservice.h, cherokee/win32_cservice.c,
	cherokee/win32_cherokeeserv.c, windows/cherokee.reg: Added a Win32
	service. Code by Ross Smith II <cherokeespam at netebb.com>

	* cherokee/Makefile.am (win32_cherokeeserv), windows/cherokee.reg:
	Created new binary target, and added win32_cservice.h,
	win32_cservice.c and win32_cherokeeserv.c

	* cherokee/win32_misc.c: Fixed Emacs indentation mark.
	(win_dlerror): Fixed compilation problem around win_dlerror_buf.

	* cherokee/win32_misc.h, cherokee/win32_misc.c: Added new func
	cherokee_win32_shutdown_signaled(). Patch by Ross Smith II
	<cherokeespam at netebb.com>

	* cherokee/server.c (cherokee_server_step): Call
	cherokee_win32_shutdown_signaled() before checking if the server
	wants to stop iterating. (srv->wanna_exit)

	* windows/cherokee.nsi.in: MUI_ICON and MUI_ICON needed to be
	undefined.

2007-07-03  A.D.F  <adefacc@tin.it>

	* cherokee/fdpoll-epoll.c,
	  cherokee/fdpoll-kqueue.c,
	  cherokee/fdpoll-port.c
	  - added include file util.h (compilation fix).

2007-07-02  A.D.F  <adefacc@tin.it>

	* cherokee/win32_misc.c
	  - win_strerror(): moved a string termination;
	  - win_dlerror(): added missing ';' (my bad).

2007-07-02  A.D.F  <adefacc@tin.it>

	* cherokee/plugin_loader.c
	  - removed redundant call to cherokee_buffer_mrproper (my bad);
	  - removed a goto;
	  - space / indentation cleanups.

2007-07-02  A.D.F  <adefacc@tin.it>

	* cherokee/win32_misc.c
	  - added comments about MUTEX_LOCK protection to win_dlerror();

	* cherokee/plugin_loader.c
	  - added MUTEX_LOCK protection to dlerror() calls;
	  - added a few missing cherokee_buffer_mrproper() calls.

2007-07-02  A.D.F  <adefacc@tin.it>

	* cherokee/util.h
	  - added new cherokee_strerror_r() prototype;

	* cherokee/util.c
	  - added new cherokee_strerror_r() function
	    in order to ensure thread safety;

	* cherokee/win32_misc.h
	  - changed win_strerror() prototype;

	* cherokee/win32_misc.c
	  - changed win_strerror() function to accept
	    a buffer in formal parameters;

	* cherokee/buffer.c,
	  cherokee/cherokee_logrotate.c,
	  cherokee/fdpoll_epoll.c,
	  cherokee/fdpoll_kqueue.c,
	  cherokee/fdpoll_port.c,
	  cherokee/handler_cgi.c,
	  cherokee/logger_writer.c,
	  cherokee/ncpus.c,
	  cherokee/server.c,
	  cherokee/socket.c,
	  cherokee/validator_ldap.c
	  - replaced strerror() with cherokee_strerror_r() calls.

2007-06-29  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h
	  - added new macros: CHEROKEE_MK_TYPE, CHEROKEE_MK_NEW,
	    CHEROKEE_DCL_STRUCT;
	  - modified other CHEROKEE_* macros in order to avoid
	    macro duplication.

2007-06-29  A.D.F  <adefacc@tin.it>

	* cherokee/validator_plain.c,
	  cherokee/validator_pam.c,
	  cherokee/validator_mysql.c,
	  cherokee/validator_ldap.c,
	  cherokee/validator_htpasswd.c,
	  cherokee/validator_htdigest.c,
	  cherokee/validator.c
	  - space / indentation / style cleanups.

2007-06-27  A.D.F  <adefacc@tin.it>

	* cherokee/levenshtein_distance.c,
	  cherokee/virtual_server_names.c,
	  cherokee/virtual_server.c,
	  cherokee/virtual_entries.c
	  - space / indentation / style cleanups;
	  - changed #ifdef HAVE_TLS ... #endif
	    scope in order to not compile unreacheable code.

2007-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_misc.c: Shouldn't return a pointer to a local
	buffer; that memory is already being used by another
	function when the string is needed.

2007-06-27  A.D.F  <adefacc@tin.it>

	* cherokee/win32_misc.c
	  - added a few TODO comments on non-thread safe
	    functions;
	  - micro style cleanups.

2007-06-27  A.D.F  <adefacc@tin.it>

	* cherokee/url.c:
	  - replaced cherokee_buffer_add_va() with equivalent
	    but faster cherokee_buffer_add_xxx() functions.

2007-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_misc.c (win_strerror): Fixed infinite
	recursion. Patch by Ross Smith II, and Gisle Vanem.

2007-06-25  A.D.F  <adefacc@tin.it>

	* cherokee/server.c:
        - removed multiple calls to cherokee_iocache_cleanup();
        - space cleanups;

	* cherokee/win32_misc.c:
        - space / indentation cleanup.

2007-06-21  A.D.F  <adefacc@tin.it>

	* cherokee/connection_info.c:
        - fix, added MUTEX_UNLOCK where required;
        - space cleanups;

	* cherokee/thread:
        - space cleanup;

	* cherokee/util.c:
	- fix, test return value of gmtime(), getpwnam(), etc.
	  calls because they may fail and we don't want
	  to crash the server because of a NULL pointer
	  dereference;
	- improvement, if thread safe functions (i.e. gmtime_r())
	  are available then always use them
	  because they are a bit faster and avoid code duplication
	  for #ifndef HAVE_PTHREAD case;
        - fix, added MUTEX_UNLOCK where required;
        - space cleanups.

2007-06-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/virtual_server.h: Included unistd.h. Fixes a FreeBSD
	compilation problem. Reported by Brian Rosner.

2007-06-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_common.c, cherokee/macros.h,
	cherokee/handler_file.c, cherokee/Makefile.am, cherokee/table.h,
	cherokee//cherokee.h, cherokee/iocache.c, cherokee/connection.c,
	cherokee/iocache.h, cherokee/server.c: Many changes that aim to
	fix the IOcache class. It is still failing though, this is the
	first approach to solve the problem, so there is still work to be
	done.

2007-06-11  A.D.F  <adefacc@tin.it>

	* cherokee/handler_common.c:
        - always test for ret == ret_ok before assigning
	  result to boolean variables;
        - sparse space cleanups;

2007-06-01  A.D.F  <adefacc@tin.it>

	* cherokee/connection.c:
	  - sparse cleanups;
	  - cherokee_connection_linger_read(),
	    retry read only if tmp_buf has been completely filled
	    so that we spare one read during linger phase
	    (cherokee_connection_linger_read() is called
	    in thread.c -> purge_connection() too, so it should
	    try to read EOF if EOF has not been read yet);

	* cherokee/fcgi_manager.c:
	  - cherokee_fcgi_manager_send_remove(),
	    removed redundant break (replaced by a return).

2007-05-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (process_active_connections): It was not
	checking for the ret_eagain after calling to the
	cherokee_connection_send() function. It was causing some
	handlers (like the fcgi one) to truncate the output.

2007-05-30  A.D.F  <adefacc@tin.it>

	* cherokee/connection.c:
        - added a few return(s) after RET_UNKNOWN()
	  because it is only a debug print (it does no return);
	- cherokee_connection_send*():
	  - reworked code after cherokee_socket_writev()
	    in order to speedup things for small writes;
	  - added a couple of FIXME (to avoid ptr. void math).

	* cherokee/thread.c:
        - cherokee_thread_new:
	  - added a comment to replace hardcoded numbers
	    with a formula;

	- process_active_connections(),
	  - added a few decrements of private connection counter
	    before each purge_closed_connection().

2007-05-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_send): It wasn't
	returning ret_eagain when there was remaining information in the
	connection buffer. This bug showed up because both IE7 and FF2 had
	problems loading some files on Windows.

	* cherokee/server.c (cherokee_server_initialize): Not being able
	to jail the server inside the chroot is important enough to abort
	execution. Previously to this change, it was only warning about
	the problem.

2007-05-22  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h:
        - use saner values in defines;

	* cherokee/thread.h:
        - added new fields to struct cherokee_thread_t
          in order to keep exact numbers of connections per thread;
        - added new parameter to cherokee_thread_new();
        - added new functions (for SINGLE THREAD):
                cherokee_thread_accept_on();
                cherokee_thread_accept_off();

	* cherokee/thread.c:
	- cherokee_thread_new():
	  - added new test conditions, calculation
	    of conns_accept limit, etc.;

        -cherokee_thread_step_SINGLE_THREAD() and
	  cherokee_thread_step_MULTI_THREAD():
          - added code to disable accepting new connections
            when there are no more free slots (100% full)
            and to reenable accepting new connections
            when the number of connections is below 95% - 99%;
	  - removed calls to cherokee_fdpoll_is_full()
	    (by using #ifdef 0 ... #endif) because now
	    we test the number of open connections and
	    because cherokee_fdpoll_add() tests upper limit
	    and returns error if it is reached;
          - now cherokee_fdpoll_watch() is always called
            in order to avoid a busy wait loop when
            there are no more free connection slots.

        - process_active_connections():
          - added tests on total server number of open connections,
	    if the number is > max_keepalive limit
	    then keepalive is disabled until that number
	    goes down (high water principle);
	    this is done because if the server reaches the max number
	    of connections and open connections are kept alive,
	    then the server is no more able to accept new connections
	    (for minutes or even for hours);

	- other minor space cleanups.

	* cherokee/server.c:
        - removed local define MIN_SPARE_FDS;
        - added local define MIN_LISTEN_FDS;
        - better distribution of spare fds for each thread;
	- forced a minimum number of fds per thread by
	  lowering the number of requested threads to reach
	  a minimum number as set in macros.h;
	- now if srv->thread_num == 1 then
	  cherokee_thread_step_SINGLE_THREAD() is called
	  even if the server has been compiled with HAVE_PTHREAD 1
	  (this speedup connection handling by 2% - 3%);
	- set max_keepalive limit to 93% of max. number of connections
	  so that server tries to close connections before
	  it reaches 100% of opened connections (this should prevent
	  the scenario where server is not able to accept new connections
	  for minutes or even hours);
	- print_banner(),
	  added new information about max. server connections, etc.;
	- minor space cleanups;

	* cherokee/handler_server_info.c:
	- added new info about current number of server connections
	  (which is different from the number of active connections);

	* cherokee/socket.c:
	- cherokee_socket_accept_fd(),
	  now ECONNABORTED returns ret_deny,
	  so callers should call this function again (retry loop)
	  instead of giving up and execute the process phase
	  (this should speed up a lot the server when clients
	   try to connect and abort connections before they
	   are accepted by server).

2007-05-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/avl.c (avl_insert_by_key): Micro-optimization: Move the
	less probable case to the last position.

	* cherokee/table.c (cherokee_table_add),
	cherokee/avl.c (avl_insert_by_key): Return ret_deny if it tries to
	insert an element that was already on the table. Until now, it was
	just ignoring the operation while it was returning
	ret_ok. Obviously it was wrong. This change may have some unwanted
	side effects, stay tuned.

2007-04-30  A.D.F  <adefacc@tin.it>

	* cherokee/thread.c:
        - substitute 0 for FDPOLL_MODE_READ in remaining
	  cherokee_fdpoll_check() calls;
	- spaces / indentation cleanup.

	* cherokee/fdpoll.h:
	- added new macros FDPOLL_MODE_*.

	* cherokee/macros.h:
        - added new macro MIN_THR_FDS and related tests.

	* cherokee/server.c:
	- adjusted minimum number of fds (file descriptors)
	  per thread;
        - substituted numeric constants 0 / 1 with
	  equivalent defines FDPOLL_MODE_*.

	* cherokee/thread.c, cherokee/fdpoll-*.c:
        - substituted numeric constants 0 / 1 with
	  equivalent defines FDPOLL_MODE_*.

2007-04-22  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h:
        - new macros to handle the minimum number of system fds,
	  spare fds (used by standard I/O streams, i.e. stdin, etc.)
	  and minimum number of file descriptors really available
	  to Cherokee.

	* cherokee/source.c:
        - fixed a socket fd leak in cherokee_source_connect(),
	  that function does both the open and the connect,
	  if it fails, caller may retry it, but of course
	  if socket is open then it must be closed before the retry.

	* cherokee/server.c:
	- fix the max number of threads againts max. number of
	  max_fds.

	* cherokee/fdpoll.c:
	- now that we leave half of fds free to be used to open files, etc.
	  we can raise the max_fds limit to its real value

2007-04-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c (process_parameters): Added -h parameter. Patch
	by Diego Escalante <dieguito@gmail.com>

2007-04-17  A.D.F  <adefacc@tin.it>

	* cherokee/socket.c:
        - cleanup HTTPS session only if it is not NULL;

	* cherokee/server.c:
	- force good limits for max. number of fds;

	* cherokee/thread.c:
        - __accept_from_server(),
	  fix locking and always close new accepted fd
	  on error (fixes a socket leak which lead
	  to many idle connections left open).

2007-04-14  A.D.F  <adefacc@tin.it>

	* cherokee/socket.h:
        - be explicit in initializing socket_reading to 0,
	  because fdpoll* code requires this value;

	* cherokee/thread.c:
	- fix comment mispelling;
	- always close connection on send error.

2007-04-11  A.D.F  <adefacc@tin.it>

	* cherokee/fdpoll-kqueue.c, cherokee/fdpoll-port.c,
	cherokee/fdpoll-win32.c, cherokee/fdpoll-select.c:
        - sparse space fixes (indentation, etc.);
        - ANSI C _free(ptr);
        - cherokee_fdpoll_xxx_new():
		- use CHEROKEE_CNEW_STRUCT() to allocate a zeroed struct;
		- use calloc() instead of malloc() so that all arrays
		  are pre-initialized to zero (in some files this is not
		  useful / required, but it is better to be consistent with
		  the majority of the other fdpoll-*.c files);
		- added missing tests on ptr == NULL and _free() calls.

2007-04-10  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h:
        - correct a mispelling in SHOULDNT_HAPPEN macro;
	- added new macro CHEROKEE_CNEW_STRUCT
	  to allocate 1 - n zeroed structures (just like calloc);
	  well given the name we could default (nmemb)
	  parameter to 1 and hardcode it inside the macro;

	* cherokee/fdpoll-protected.h:
	- fdpoll_func_set_mode_t, changed return type
	  from void to ret_t because (in theory) it can fail
	  (at least in some implementations);

	* cherokee/fdpoll.h:
	- changed prototype of cherokee_fdpoll_set_mode()
	  in order to return a ret_t instead of void;

	* cherokee/fdpoll.c:
	- sparse space fixes (indentation, etc.);
	- added function: cherokee_fdpoll_is_empty();
	- cherokee_fdpoll_set_mode(), changed, now it returns ret_t;

	* cherokee/fdpoll-epoll.c:
	- sparse space fixes (indentation, etc.);
	- cherokee_fdpoll_epoll_t: removed epoll_idx2rs (it was unused)
	  and renamed epoll_rs2idx in epoll_fd2idx;
	- added robustness checks to _free() (against NULL pointers, etc.)
	  and removed "if (ptr != NULL)" branches because they are not required
	  by ANSI free (and an ANSI C compiler is required by Cherokee,
	  besides this I remember that also pre or not fully compliant ANSI C
	  compilers / libraries often implemented test against NULL in free(),
	  at least since 1988-1992);
	- now _set_mode() returns a ret_t;
	- added other tests to the remaining functions to improve robustness;
	- moved the positions of a few functions in order
	  to keep it consistent with other files;

	* cherokee/fdpoll-poll.c:
	- sparse space fixes (indentation, etc.);
	- added robustness checks to _free() (against NULL pointers, etc.);
	- added other tests to the remaining functions to improve robustness;
	- now _set_mode() returns a ret_t;

	* cherokee/fdpoll-select.c:
	- now _set_mode() returns a ret_t;

	* cherokee/fdpoll-port.c:
	- now _set_mode() returns a ret_t;

	* cherokee/fdpoll-kqueue.c:
	- now _set_mode() returns a ret_t;

	* cherokee/fdpoll-win32.c:
	- now _set_mode() returns a ret_t;

	* cherokee/server.c:
	- sparse space fixes (indentation, etc.);
	- fixed a few comments;
	- added robustness tests to force a few values
	  (number of threads, number of file descriptors per thread,
	   minimum number of file descriptors, etc.)
	  within reasonable limits which allow Cherokee to work well.

	* cherokee/thread.c:
	- sparse space fixes (indentation, etc.);
	- added a few SHOULDNT_HAPPEN and some more tests
	  (they should be useful to find out some issues
	   under heavy loads).

2007-04-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cget/Makefile.am (cget_LDADD): Use pthread libs only for
	linking. Do not pass them to the compiler.

	* cherokee/util.c (cherokee_get_shell): s/rindex/strrchr/

	* cherokee/socket.c: Prevent to include uio.h is the header
	doesn't exist. Win32 cross compiling was failing because of this.

2007-04-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-port.c (fdpoll_port_new, _watch): Same problem
	as in fdpoll_epoll_new(). A memset() wasn't initializing all the
	integers it was meant to.

	* cherokee/fdpoll-epoll.c (_free): Free the memory only if it was
	allocated previously. It is called from _new(), it might happen
	that a few memory chunks were not allocated yet.

	* cherokee/fdpoll-epoll.c (fdpoll_epoll_new): It was a quite
	important bug.  File descriptor tables were not propely
	initializated. It was using memset(len) initializing "len" bytes
	rather than "len" ints. It's fixed now ... and the stability problem
	I detected looks like to be gone.

	* themes/default_theme.css: There were two table entries. Mixed
	them.

2007-04-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, Makefile.am (SUBDIRS): Removed doc directory.
	Documentation is in bad shape. It is not worth distributing it
	until we don't get it properly fixed.

2007-03-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/default_theme.css: Fixes default theme. File entries
	should be left hand aligned, instead they were centered.

2007-03-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source.c, cherokee/source.h, cherokee/header.c,
	cherokee/buffer.c, cherokee/config_entry.c,
	cherokee/config_node.c: Clean up: all these classes now use the
	new CHEROKEE_ADD_FUNC_NEW and CHEROKEE_ADD_FUNC_FREE macros.

	* cherokee/macros.h (CHEROKEE_ADD_FUNC_NEW,
	CHEROKEE_ADD_FUNC_FREE): Added two new macros to implement
	_new/_free methods by using _init/_mrproper. It's a pretty
	mechanic thing, so I think it is worth adding a macro.

	* cherokee/dirs_table.h,
	cherokee/dirs_table.c (cherokee_dirs_table_free,
	cherokee_dirs_table_new): Methods removed. They are not longer
	needed.

	* cherokee/socket.h, cherokee/socket.c (cherokee_socket_new,
	cherokee_socket_free): These methods have been removed, they are
	no longer needed.

	* cherokee/main.c, cherokee/main_admin.c,
	cherokee/server.c (cherokee_server_init): Reanamed to
	cherokee_server_initialize. _init/_mrproper are method names that
	already have a meaning it should respect.

2007-03-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/resolv_cache.c (cherokee_resolv_cache_get_host,
	cherokee_resolv_cache_get_ipstr): A call to CHEROKEE_RWLOCK_READER
	was enough. CHEROKEE_RWLOCK_WRITER was too much. Reported by Cesar
	Fernandez Gago.

2007-03-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_scgi.c (cherokee_handler_scgi_init): Return
	ret_error rather than ret. Under some weird circumstances thread.c
	was receiving a ret_deny from this funcion. It's safer to return
	ret_error in these functions and be sure the connection is handled
	properly.

2007-03-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: MacOS X doesn't support
	PTHREAD_RWLOCK_INITIALIZER, changed by pthread_rwlock_init().

2007-03-15  A.D.F  <adefacc@tin.it>

	* cherokee/socket.c:
        - set socket->status = socket_closed only when
	  connection has been interrupted without any doubt
	  (EPIPE, ECONNRESET, ENOTCONN).

2007-03-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/util.py (check_php_interpreter): Added a test to check
	whether the PHP interpreter supports fastcgi or not.

	* configure.in (CRYPT_LIBS): Tries to fix crypt() on MacOS X.

	* qa/run-tests.py: Adds a new "Deps" line.

	* cherokee/server.c, cherokee/plugin_loader.c,
	cherokee/plugin_loader.h, qa/run-tests.py, qa/conf.py: Added a new
	configuration key "module_deps" to allow setting the plug-in
	dependency files.

	* cherokee/plugin_loader.c (dylib_open): SO_SUFFIX replaced by
	MOD_SUFFIX.  Modules were not working on MacOS X if Cherokee was
	dynamically compiled.

2007-03-13  A.D.F  <adefacc@tin.it>

	* cherokee/socket.c:
        - cherokee_socket_read(), cherokee_socket_write*():
          - GNUTLS_E_INTERRUPTED is used only if its value
	    is not equal to GNUTLS_E_AGAIN;
	- cherokee_socket_writev():
          - don't increment "vector" because we use vector[i].*
	    not vector->*;
          - micro-fix to not return ret_again if at least 1 bytes
	    has been sent.

2007-03-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (process_active_connections): Try to report
	the handler name when a ret code is found after calling the
	handler init method.

2007-03-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_writev): Fixed. It wasn't
	compiling.

	* cherokee/socket.c (cherokee_socket_read): removed the
	GNUTLS_E_INTERRUPTED case.  It seems to have the same value than
	GNUTLS_E_AGAIN.

	* cherokee/common-internal.h: Added a macro to define INT_MAX if
	necessary.

	* Makefile.am (SUBDIRS): Moved doc to the last place, in order to
	ensure that if something happens processing that directory, all
	the rest of the directories were already processed.

2007-03-10  A.D.F  <adefacc@tin.it>

	* cherokee/socket.c:
	- cherokee_socket_read(),
	  - added new assertion to prevent a read of 0 bytes
	    (which could lead to an undefined behaviour);
	  - GNUTLS_E_INTERRUPTED is now properly handled (EINTR);
	  - both SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE
	    have to be handled as well;

	- cherokee_socket_write(),
	  - added new assertion to prevent a write of 0 bytes
	    (which could lead to an undefined behaviour);
	  - GNUTLS_E_INTERRUPTED is now properly handled (EINTR);
	  - both SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE
	    have to be handled as well;

	- cherokee_socket_writev(),
	  - added support for TLS connections.

2007-03-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator.c (cherokee_validator_parse_digest):
	Authentication header parsing fixed. It was failing under some
	weird circumstances (Firefox with proxy using Digest with qpop).

2007-02-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_common.c: Replace manual buffer management by a
	call to cherokee_buffer_end_char(). It's safer, and as far as I
	have seen, under some weird circumstances there was an invalid
	memory access from this code line.

	* cherokee/buffer.c (cherokee_buffer_read_from_fd): It was reading
	too much data. This function adds an EOS character at the end of the
	buffer, so the read() call can use all the buffer but the last
	character. That is reserved for the \0. Fixed.

	* cherokee/connection.c (cherokee_connection_get_dir_entry): I
	have detected an out of memory (by 1 byte) in this function.
	Added a new conditions to the block check entry that tries to
	inhibit the wrong read.

	* cherokee/socket.c (cherokee_socket_write): There was a small
	typo in the latest commit that leaded to a compilation problem.
	Fixed.

2007-02-26  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h:
	- increase DEFAULT_RECV_SIZE from 1024 to 2048;

	* cherokee/socket.h:
	- renamed cherokee_socket_read()  to cherokee_socket_bufread();
	- renamed cherokee_socket_write() to cherokee_socket_bufwrite();
	- renamed cherokee_read()         to cherokee_socket_read();
	- renamed cherokee_write()        to cherokee_socket_write();
	- renamed cherokee_writev()       to cherokee_socket_writev();

	* cherokee/socket.c:
	- HAVE_GNUTLS and HAVE_OPENSSL defines are mutually
	  exclusive, so apply #if ... #elif sections consistently;
	- micro speed-up of cherokee_socket_*read() and
	  cherokee_socket_*write*() by adding likely / unlikely
	  and by shortening fast path;
	- now cherokee_socket_read() and cherokee_socket_write*()
	  don't accept NULL pointers anymore;  it was a waste
	  to handle those cases only for lingering reads;
	- cherokee_socket_writev(),
	  fixed calculation of data sent to socket.

	* cherokee/connection.c:
	- cherokee_connection_linger_read(),
	  removed static buffer shared by all threads,
	  now linger data is read into thread->tmp_buf1;
	- renamed a few cherokee_socket_*() functions;

	* cherokee/downloader.c, cherokee/fcgi_manager.c,
	cherokee/handler_fcgi.c, cherokee/handler_mirror.c,
	cherokee/handler_scgi.c, - renamed a few cherokee_socket_*()
	functions.

2007-02-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c: Now it shows balancers
	information in the Modules table as well.

	* cherokee/handler_server_info.c (build_server_table_content):
	Threads number was wrong. Fixed.

	* cherokee/header.c: Included ctype.h. isspace() was undefined.

	* cherokee/handler_server_info.c (server_info_build_page): Now it
	uses cherokee_version_add instead of the old check.

2007-02-22  A.D.F  <adefacc@tin.it>

	* cherokee/header.c:
        - trim heading and trailing spaces from
	  HTTP header value so that the following headers:

		If-None-Match: 4d74db1=32f
		If-None-Match:   4d74db1=32f
		If-None-Match:4d74db1=32f

	  are considered as having the same value.

2007-02-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/logger_writer.c (O_LARGEFILE): Defines it if it wasn't
	defined previously by the operating system. Fixes bug #135.

2007-02-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c (config_server): Added new -a parameter to
	allow to run cherokee-admin listening all the network interfaces.
	By default it only listens to the local loopback.

2007-02-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* m4/pkg.m4: Added new macro definition file. Even if it isn't the
	right thing to do I think we have to keep this file in the
	repository for the moment.  Even with the change from GNUTLS' m4 to
	the pkg-config call there was no way to compile Cherokee trunk in
	MacOS X without installing additional software. This should fix it.

2007-02-18  A.D.F  <adefacc@tin.it>

	* cherokee/post.h, cherokee/post.c cherokee/connection.c,
	cherokee/handler_admin.c:
        - use off_t instead of offset_t in order
	  to compile cherokee when off_t has a size of 4 bytes
	  instead of 8 (i.e. on embedded systems or when
	  --disable-largefile is given on configure command line).

	* cherokee/connection-protected.h:
        - don't use "enum" for bit flags because more than
	  one option can be set, so its better to explicitely use
	  an unsigned int as data type.

2007-02-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: GNUTLS detection is now based on PKG_CHECK_MODULES
	instead of on its own m4 file. There were many people reporting
	problems because of this. 

2007-02-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/http.h, cherokee/http.c (cherokee_http_code_to_string)
	(cherokee_http_code_copy): Added http_gateway_timeout.

2007-02-03  A.D.F  <adefacc@tin.it>
	* cherokee/macros.h:
        - micro-fix to BIT_UNSET() macro in order
	  to work properly even with arguments like these:
		BIT_UNSET(var, opt1|opt2);

	* cherokee/connection-protected:
	- small "cosmetic" cleanups, move field "options"
	  near field upgrade;
	- etc.

	* cherokee/connection.c:
	- fix, "log_at_end" must be set to true in init / cleanup code,
	  otherwise logging does not work.

2007-02-03  A.D.F  <adefacc@tin.it>

	* cherokee/logger_writer.h:
        - added new #define LOGGER_BUF_PAGESIZE 4096
          to round down write count to a multiple of above value
	  if the data size to write is > LOGGER_BUF_PAGESIZE;
	  this preserves the write speed-up and
	  allows to write as much data as possible without limiting
	  the chunk size to logger_writer->max_bufsize;
	  this fixes the cases when max_bufsize is set
	  to a low value (0 - 16KB or < max request size).

	* cherokee/logger_writer.c:
        - avoided duplicated code by using new local function
	  logger_writer_close_file();
	- configuration, added saner tests on max_bufsize values;
	- do not use write_fd if the log stream is stderr;
	- do not close log file if it is stderr;
	- cherokee_logger_writer_flush(),
	  fixed error handling in order to always flush internal buffer
	  on fatal write errors, because we don't want it
	  to grow up too much (that data is lost anyway).

2007-02-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py: Fixed to work just with "-v" (without
	specifying with valgrind tool it should use).

	* cherokee/handler_file.c (cherokee_handler_file_step): Updated to
	the latest conn->option and tcp_cork changes.

	* cherokee/connection.h,
	cherokee/connection.c (cherokee_connection_set_cork): Now the
	"enable" parameter is cherokee_boolean_t rather than int.

	* cherokee/connection-protected.h: Added new enum type
	cherokee_connection_options_t and a new property "options" to the
	connection class.


	* cherokee/handler_common.c (cherokee_handler_common_new): If the
	connection needs to be redirected/reprocessed, it copies the
	request to the request_original and sets a flag if it's a
	redirection to an index file starting by / (fullpath index file).

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Checks the connection options. If it has been redirected from a
	"common" handler and targets a fullpath index, it seems to need to
	use the original request as the REQUEST_URI.

	* cherokee/macros.h (BIT_SET, BIT_UNSET): Added new macros to ease
	bit masks manipulation.

	* cherokee/connection-protected.h: log_at_end and tcp_cork
	properties have been removed. Now they're bits in the options
	entry.

	* cherokee/connection.c (cherokee_connection_log_or_delay,
	cherokee_connection_log_delayed): Rewritten using the option
	property.

2007-01-30  A.D.F  <adefacc@tin.it>

	* cherokee/macros.h:
        - added LOGGER_MIN_BUFSIZE and LOGGER_MAX_BUFSIZE
	  to limit value read from configuration file;

	* cherokee/logger.h:
        - removed max_bufsize (it was unused);

	* cherokee/logger.c:
        - removed max_bufsize (it was unused);

 	* cherokee/logger_w3c.c:
	- removed redundant if (unlikely(ret != ret_ok));

 	* cherokee/logger_ncsa.c:
	- removed redundant if (unlikely(ret != ret_ok));

 	* cherokee/logger_writer.h:
	- added LOGGER_OVF_BUFSIZE whose value has to be
	  added to max_bufsize to size the log buffer;

 	* cherokee/logger_writer.c:
	- added parameter "bufsize" to the parameters
	  read from configuration file.

2007-01-22  A.D.F  <adefacc@tin.it>

	* cherokee/connection-protected.h:
        - rename cherokee_connection_pre_lingering_close()
	      to cherokee_connection_shutdown_wr();

	* cherokee/connection.c:
        - rename cherokee_connection_pre_lingering_close()
	      to cherokee_connection_shutdown_wr();
	- fix cherokee_connection_mrproper()
	  in order to always execute cleanup even if
	  one function fails.

	* cherokee/thread.c:
        - rename cherokee_connection_pre_lingering_close()
	      to cherokee_connection_shutdown_wr();

	* cherokee/socket.c:
	- added ENOTCONN to the error codes which are not logged
	  (because they can happen under certain conditions);
	- cherokee_socket_read(), cherokee_socket_write(),
	  cherokee_socket_writev(), now errors which are not
	  logged lead to ret_error instead of ret_eof.

	* cherokee/logger_writer.c:
	- added a loop around write() in order to retry write()
	  in case of EINTR error (signal interrupt).

2007-01-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c (BASIC_CONFIG): iocache should be off in the
	default config.

	* cherokee/server.c (cherokee_server_read_config_string):
	Bugfix. It was trying to parse a string if it was a filename.

2007-01-21  A.D.F  <adefacc@tin.it>

	* cherokee/logger_w3c.c:
        - cherokee_logger_w3c_write_error(),
	  added header if needed;
	- cherokee_logger_w3c_writer_error()
          cherokee_logger_w3c_writer_access():
          - fixed format string for date header.

	* cherokee/logger_w3c.h:
        - added new fields to cherokee_logger_ncsa_t:
          - now_time;
          - now_buf.

	* cherokee/logger_w3c.c:
        - cherokee_logger_w3c_write_access(),
          cherokee_logger_w3c_writer_error():
	  - sped up execution by formatting time only
	    once a second and by not using
	    cherokee_buffer_add_va() in the fast path;
	  - added buffer flush.

	* cherokee/logger_ncsa.c:
        - cherokee_logger_ncsa_write_string(),
	  added buffer flush.

2007-01-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/http.h (http_see_other_string),
	cherokee/http.c (cherokee_http_code_copy,
	cherokee_http_code_to_string): Added http_see_other HTTP code
	entries: HTTP 303, "See Other".

	* cherokee/http.c (cherokee_http_code_copy)
	(cherokee_http_code_to_string): request_entity_too_large wasn't
	supported.

	* contrib/05to06.py (Syntax): Added a 'ScriptAlias' to
	script_alias rule.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_envp):
	Removed TRACE.  It was printing it inside the response header.

2007-01-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_setup_error_handler):
	Trace block relocated.

2007-01-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/05to06.py: Add a blank like after each virtual host.
	It makes easier to edit the generated file later on.

	* contrib/05to06.py: Add a faked DocumentRoot if the virtual
	server doesn't contain one.  0.5 wasn't checking for a
	document_root but 0.6 does. It is no more than a work around.
	This script isn't meant to be perfect, just useful.

	* contrib/05to06.py: Now, it adds the "priority" entry to all the
	directory, extension and request entries it processes.

	* contrib/05to06.py (Syntax._process_entry_guts): Added an
	exception for handling the "Show" property of dirlist.

	* contrib/05to06.py (Syntax._process_entry_guts): Handler "Env"
	property management has been fixed.  It needs three parameters
	rather than only two as the rest of the properties.

2007-01-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/bin2buffer.py (print_block): Do not print the casting to
	(char *).

	* cherokee/connection_info.c (cherokee_connection_info_fill_up),
	cherokee/dirs_table.c (relink_func), cherokee/logo.inc,
	cherokee/encoder_gzip.c (do_encode),
	cherokee/virtual_server.c (cherokee_virtual_server_set_documentroot),
	cherokee/logger_ncsa.c (cherokee_logger_ncsa_write_string),
	cherokee/logger_w3c.c (cherokee_logger_w3c_write_string),
	cherokee/header.c (cherokee_header_copy_version,
	cherokee_header_copy_method),
	cherokee/handler_redir.c (substitute_groups),
	cherokee/handler_fastcgi.c (send_post): Removed (char *) casting
	in the calls to cherokee_buffer_add()

	* cherokee/config_node.c: Added config_reader.h inclusion. It also
	removes casting to char pointer in the cherokee_buffer_add()
	calls.

2007-01-18  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h:
        - cherokee_buffer_add(),
	  added const qualifier to 2nd parameter;

	* cherokee/buffer.c:
        - cherokee_buffer_add(),
	  added const qualifier to 2nd parameter;

	* cherokee/logger_writer.c:
        - now log buffer has a bigger size (1 page or 4096 bytes)
	  so that now max_bufsize can be used as a threshold
	  to flush buffer contents.

	* cherokee/logger_ncsa.h:
        - added new fields to cherokee_logger_ncsa_t:
	  - tz;
	  - now_time;
	  - now_dtm.

	* cherokee/logger_ncsa.c:
        - build_log_string():
          - speed-uo of around +12% - 14% by:
	    - creating datetime string only when now_time changes;
	    - using faster cherokee_buffer_add*() calls
	      instead of cherokee_buffer_add_va();
	  - fixed log format (a space was missing, etc.).

2007-01-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/config_reader.h, cherokee/config_reader.c,
	cherokee/config_node.h, cherokee/config_node.c,
	cherokee/server.c (cherokee_server_read_config_string),
	cherokee/Makefile.am: Configuration reading methods have been
	splitted from the config_node class. They didn't make sense over
	there.

	* cherokee.conf.sample.pre: Error log fixed.

	* cherokee/logger.h, cherokee/logger.c: "buffer" property removed.
	It wasn't needed any longer.

2007-01-17  A.D.F  <adefacc@tin.it>

	* cherokee/downloader.c:
        - downloader_downloader_step,
          fixed a mismatch in variable name.

	* cherokee/logger_writer.h:
        - added new field: max_bufsize;

	* cherokee/logger_writer.c:
        - pre-allocate internal buffer to logger->max_bufsize;
	- logger_writer_flush(),
	  added close-on-exec of log file;
	- write at most max_bufsize bytes (+7% - 8% speedup)
	  which is assumed to be a power of two;
	- fixed partial write(), after a partial write()
	  the ending unwritten bytes have to be moved to
	  the beginning of the buffer

	* cherokee/logger_ncsa.h:
	- added two new field as temporary buffers:
	  - referer;
	  - useragent.

	* cherokee/logger_ncsa.c:
        - removed the usage of temporary local buffers,
          (costly), now we use only preallocated buffers;
	- minor cleanups.

2007-01-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/05to06.py (Syntax._process_entry_guts): Rewrites
	management fixed. It wasn't support short entries (entries without
	regex and substring).

	* contrib/05to06.py (Lexer._get_token_guts): Allow '-' inside str
	tokens.

	* contrib/05to06.py (Syntax._process_virtual_server_content):
	error_handler fixed. It wasn't adding the handler.

	* contrib/05to06.py (Syntax._process_entry_guts): Handler /
	Balancer conversion fixed. It was using the right notation.

	* contrib/05to06.py (Syntax): It must translate DirectoryIndex
	into directory_index. Fixed.

	* contrib/05to06.py (Syntax._process_entry_guts): Allow from
	should accept str and list. Fixed.

	* contrib/05to06.py: Upodated to work with the latest logger
	related changes.

2007-01-16  A.D.F  <adefacc@tin.it>

	* cherokee/downloader.c (downloader_header_read): use a permanent
	  temporary buffer instead of a local one.

2007-01-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/downloader.c, cherokee/downloader.h: Added two temporary
	buffers. It will use them if no other buffers are provided.

	* cherokee/logger_ncsa.c, cherokee/logger_w3c.c: Removed all calls
	to cherokee_logger_writer_{lock,unlock}().

	* cherokee/logger_writer.h, cherokee/logger_writer.c: Removed all
	the references to the mutex. A logger writer is an object that
	lives inside a logger, and the logger is already a thread safe
	object, and hence, there is no need to have a semaphore here. The
	cherokee_logger_writter_lock() and
	cherokee_logger_writter_unlock() have been removed.

	* cherokee.conf.sample.pre, qa/run-tests.py: Updated for the new
	logger configuration.

	* cherokee/logger_w3c.h, cherokee/logger_w3c.c: Idem. Now it uses
	a logger writer object.

	* cherokee/logger_ncsa.h, cherokee/logger_ncsa.c: Adapted to use a
	couple of logger writer objets. Besides the functionality it has
	won, it should also be slightly faster.

	* cherokee/logger_writer.h, cherokee/logger_writer.c,
	cherokee/Makefile.am: Added new classs. It implements the logic of
	where a logger writes the information. The current implementation
	supports: files, syslog, stderr, and pipes to logging programs.

2007-01-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/05to06.py (Lexer._get_word): It wasn't processing quoted
	strings if they contained \" characters. Fixed.

2007-01-14  A.D.F  <adefacc@tin.it>

	* cget/main.c: Updated for the latest cherokee_downloader_step()
	modifications.

	* cherokee/buffer.h:
        - changed prototypes of:
          - cherokee_buffer_encode_base64();
          - cherokee_buffer_encode_sha1_base64();
          - cherokee_buffer_encode_hex();
	  to add a second destination buffer in order
	  to avoid unneeded allocations / reallocations.

	* cherokee/buffer.c:
        - added a second parameter to:
          - cherokee_buffer_encode_base64();
          - cherokee_buffer_encode_sha1_base64();
          - cherokee_buffer_encode_hex().

	* cherokee/downloader.h:
        - changed prototype of cherokee_downloader_step()
	  in order to pass two temporary buffers;

	* cherokee/downloader.c:
	- changed cherokee_downloader_step() in order
	  to use two temporary buffers to avoid
	  allocations / reallocations when handling buffers
	  in called functions
	  (i.e. cherokee_request_header_build_string());

	* cherokee/handler_proxy.h:
	- added new macros;

	* cherokee/handler_proxy.c:
	- passed two temporary buffers to cherokee_downloader_step();

	* cherokee/request.h:
	- changed prototype of cherokee_request_header_build_string();

	* cherokee/request.c:
	- cherokee_request_header_build_string().
	  now it uses two permanent temporary buffers in order
	  to avoid reallocations.

	* cherokee/admin_client.c:
	- sparse fixes to improve readability and performances
	  (new two temporary buffers for cherokee_downloader_step());

	* cherokee/handler_common.c:
	- use THREAD_TMP_BUF[12]() to avoid reallocations;

	* cherokee/handler_nn.c:
	- get_nearest() renamed to get_nearest_name();
	- get_nearest(), use THREAD_TMP_BUF[12]() to avoid
	  reallocations;

	* cherokee/nonce.c:
	- add a missing cherokee_buffer_clean();

	* cherokee/validator_htpasswd.c:
	- use THREAD_TMP_BUF[12]() to avoid reallocations.

2007-01-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/05to06.py (Syntax._process_server): Updated to the
	lastest domain management changes. (commited in 2007-01-07 by me)

2007-01-13  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h:
	- added prototype for new function
	  cherokee_buffer_add_char().

	* cherokee/buffer.c:
	- added new function
	  cherokee_buffer_add_char() to add a single char
	  to buffer.

	* cherokee/connection.c:
	- small formatting cleanups;
	- fixed capitalization of header keywords
	  (Keep-alive -> Keep-Alive and Close -> close)
	  in order to make them to look exactly as written
	  in RFC specifications
	  (even if header keywords must be read
	   in a case insensitive way);
        - substituted a couple of cherokee_buffer_add_str(s)
	  with equivalent cherokee_buffer_add_char() calls.

	* cherokee/nonce.c:
	- substituted a few cherokee_buffer_add_va()
	  with equivalent cherokee_buffer_add_*() calls
	  (micro speedup).

	* cherokee/request.c:
	- small cleanups;
	- substituted cherokee_buffer_add(buf, constant_string, len)
	  with equivalent cherokee_buffer_add_str() calls;
	- substituted a few cherokee_buffer_add_va()
	  with equivalent cherokee_buffer_add_*() calls
	  (micro speedup);
	- removed the allocation / deallocation
	  of a local new_once buffer in favour of the standard
	  THREAD_TMP_BUF1() temporary buffer
	  (micro speedup).

2007-01-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/config_node.c (cherokee_config_node_parse_string):
	Whites after the value must be skipped. This fixes bug #128.

	* cherokee/handler_fcgi.c (send_no_post,
	cherokee_handler_fcgi_init): It wasn't sending the STDIN empty
	package to notify it is closed. Reported by bil.

	* qa/141-FastCGI-EmptyVars.py: Added new QA test to ensure that
	PATH_INFO and QUERY_STRING are sent to the FastCGI servers even if
	there are empty strings.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Added SERVER_NAME variable. WSGI was complaining because of this.

	* qa/fcgi.py: Added new python module.

	* qa/Makefile.am (EXTRA_DIST): Added pyscgi.py and fcgi.py

2007-01-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fcgi.c, cherokee/handler_fcgi.h,
	cherokee/handler_file.c, cherokee/handler_file.h,
	cherokee/handler_mirror.c, cherokee/handler_mirror.h,
	cherokee/handler_nn.c, cherokee/handler_nn.h,
	cherokee/handler_phpcgi.c, cherokee/handler_phpcgi.h,
	cherokee/handler_proxy.c, cherokee/handler_proxy.h,
	cherokee/handler_redir.c, cherokee/handler_redir.h,
	cherokee/handler_remote_control.c,
	cherokee/handler_remote_control.h, cherokee/handler_scgi.c,
	cherokee/handler_scgi.h, cherokee/handler_server_info.c,
	cherokee/handler_server_info.h, cherokee/handler_webcam.c,
	cherokee/handler_webcam.h, cherokee/header-protected.h,
	cherokee/header.c, cherokee/header.h, cherokee/http.c,
	cherokee/http.h, cherokee/icons.c, cherokee/icons.h,
	cherokee/iocache.c, cherokee/iocache.h, cherokee/list.c,
	cherokee/list.h, cherokee/logger-protected.h, cherokee/logger.c,
	cherokee/logger.h, cherokee/logger_combined.,
	cherokee/logger_combined.h, cherokee/logger_ncsa.c,
	cherokee/logger_ncsa.h, cherokee/logger_w3c.c, cherokee/macros.h,
	cherokee/main.c, cherokee/main_admin.c, cherokee/match.c,
	cherokee/match.h, cherokee/matching_list.c,
	cherokee/matching_list.h, cherokee/md5crypt.c,
	cherokee/mime-protected.h, cherokee/mime.c, cherokee/mime.h,
	cherokee/mime_entry.c, cherokee/mime_entry.h, cherokee/module.c,
	cherokee/module.h, cherokee/ncpus.h, cherokee/nonce.c,
	cherokee/nonce.h, cherokee/plugin.h, cherokee/plugin_loader.c,
	cherokee/plugin_loader.h, cherokee/post.c, cherokee/post.h,
	cherokee/read_config_embedded.c, cherokee/read_config_embedded.h,
	cherokee/regex.c, cherokee/regex.h, cherokee/reqs_list.c,
	cherokee/reqs_list.h, cherokee/reqs_list_entry.c,
	cherokee/reqs_list_entry.h, cherokee/request.c,
	cherokee/request.h, cherokee/resolv_cache.c,
	cherokee/resolv_cache.h, cherokee/server-protected.h,
	cherokee/server.c, cherokee/server.h, cherokee/socket.c,
	cherokee/socket.h, cherokee/source.c, cherokee/source.h,
	cherokee/source_interpreter.c, cherokee/source_interpreter.h,
	cherokee/table.c, cherokee/table.h, cherokee/thread.c,
	cherokee/thread.h, cherokee/unix4win32.c, cherokee/unix4win32.h,
	cherokee/url.c, cherokee/url.h, cherokee/util.c, cherokee/util.h,
	cherokee/validator.c, cherokee/validator.h,
	cherokee/validator_htdigest.c, cherokee/validator_htdigest.h,
	cherokee/validator_htpasswd.c, cherokee/validator_htpasswd.h,
	cherokee/validator_ldap.c, cherokee/validator_ldap.h,
	cherokee/validator_mysql.c, cherokee/validator_mysql.h,
	cherokee/validator_pam.c, cherokee/validator_pam.h,
	cherokee/validator_plain.c, cherokee/validator_plain.h,
	cherokee/version.c, cherokee/version.h,
	cherokee/virtual_entries.c, cherokee/virtual_entries.h,
	cherokee/virtual_server.c, cherokee/virtual_server.h,
	cherokee/virtual_server_names.c, cherokee/virtual_server_names.h,
	cherokee/win32_misc.c, cherokee/win32_misc.h, configure.in,
	http-cherokee.xml, cherokee/logger_w3c.h: Copyright updated.

2007-01-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/140-SCGI-EmptyVars.py, qa/Makefile.am (EXTRA_DIST): Added new
	QA test to ensure that the PATH_INFO and QUERY_STRING environment
	variables are set even if they are empty.

	* cherokee/handler_scgi.c (add_env_pair): It should be able to add
	environment variables with empty value. Thus, I've removed the
	check for the val_len equal to zero.

	* qa/126-SCGI.py, qa/127-SCGI-Post.py: Adapted to use 'pyscgi'
	instead of old 'scgi' python module.

	* qa/pyscgi.py: Added a local copy of the pyscgi module.

	* qa/base.py (TestBase.CopyFile): Added new method

2007-01-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c (CONFIG_FILE_HELP): Fixes help string.

	* cherokee/nonce.c (cherokee_nonce_table_generate): Removed
	unnecessary call to cherokee_buffer_crc32(). Reported by A.D.F.

	* cherokee/virtual_server_names.c (cherokee_vserver_name_entry_match),
	cherokee/icons.c (match_file): Adapted to the new
	cherokee_wildcard API.

	* cherokee/server.c (cherokee_server_get_vserver): Added new TRACE
	entry.

	* cherokee/match.c (cherokee_wildcard_match): match() has been
	replaced by this new function. It is faster, non-recursive and
	fixes a bug in the previous version.

	* cherokee/match.h: Promoted as public API.

2007-01-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/139-domain-wildcards1.py: Added new QA test to test wildcard
	domain names.

	* qa/020-VirtualHost.py, qa/021-VirtualHost2.py, qa/044-Home.py,
	qa/045-Home2.py, qa/066-DirectoryIndex3.py, qa/094-URL-request.py,
	qa/116-RequestTiny.py, qa/117-DomainToDir.py, qa/121-NoUserDir.py,
	qa/124-DomainToDir2.py, qa/125-domain-redir1.py,
	qa/135-RedirParams.py: Examples modified to work with the little
	syntax modification that this change set introduces. I've also
	done some clean up (there were way too many '%s')

	* cherokee/virtual_server.c: Added new domains property. It's a
	new virtual server names class object (a list in which it stores
	its domain names).

	The domain name configuration has been moved to this class.
	Previously we were configuring it inside the server.c file, right
	before adding the virtual server to the old virtual server table.
	Now, all that stuff has changed. There is no such table, and the
	configuration is performed in the right place.

	* cherokee/server.c: All the virtual server related code has been
	modified to work with the last improvements: TLS detection,
	instance, configuration, log flushing, and free.

	A new method, names cherokee_server_get_vserver() has been added
	as well.

	* cherokee/connection.c: Modified to work with the latest changes
	related to virtual server names.

	* cherokee/virtual_server_names.h,
	cherokee/virtual_server_names.c: New class. It handles the virtual
	server domain names.

2007-01-05  A.D.F  <adefacc@tin.it>

	* cherokee/connection.c:
        - small formatting cleanups;
        - substitute cherokee_buffer_add_va(s) with equivalent
          cherokee_buffer_add_*() calls (micro speedups).

	* cherokee/handler_error.c (cherokee_handler_error_add_headers):
        - replace switch(conn->error_code) with an if comparison;
	- substitute cherokee_buffer_add_va() with equivalent
	  cherokee_buffer_add_*() calls like in handler_file.c.

	* cherokee/crc32.c:
        - cleanup formatting (tabs, spaces, etc.);
	- correct mispellings;
	- crc32_partial_sz(),
	  remove unused variable len.

	* cherokee/buffer.c:
        - cleanups, one instruction per line,
	  put each "return xxx;" on its own line;

	- cleanups, remove unneeded braces { } when
	  there is only one instruction after an if;

	- cherokee_buffer_read_from_fd(),
	  remove the usage of the temporary local buffer,
	  declared as char tmp[size+1];  this has the following
	  advantages:
	  - as "size+1" is not a constant the change restores
	    pure C language rules (i.e. no gcc / C++ extensions);
	  - data is read directly into destination buf,
	    avoiding a data copy;
	    NOTE: for best performances caller should pass an
		  empty buffer (where buf->buf address
		  is aligned on a page boundary or
		  at least on a sizeof(int));

	- cherokee_buffer_read_from_fd(),
	  add EWOULDBLOCK for those rare OS where it is different
	  from EAGAIN;

	- cherokee_buffer_add_chunked(),
	  substitute slow cherokee_buffer_add_va() with
	  equivalent fast cherokee_buffer_add_*() calls;
	  NOTE: this is a win because chunks can be
		as small as 1 - 8 KB and
		so at Gigabits speed this improvement matters;
	
2007-01-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/icons.c (match_file): Updated for the new interface of
	the match() function.

	* cherokee/match.c (match): Now it returns ret_t rather than int.

2007-01-04  A.D.F  <adefacc@tin.it>

	* cherokee/handler_file.c (cherokee_handler_file_step): 
        - align read size on a 4 byte limit,
	  right now read buffer has a size of DEFAULT_READ_SIZE (8192)
	  + 1 for '\0', so with this patch we end up
	  reading ((8192 + 1) & ~3) which is 8192;

	* cherokee/post.c (cherokee_post_walk_to_fd): 
	- read DEFAULT_READ_SIZE chunks of data,
	  faster than DEFAULT_READ_SIZE - 1;

	* cherokee/socket.c (cherokee_socket_sendfile):
        - add new errno codes:
	  - EINVAL (Linux), in Linux 2.4,
	    if a FS (file system) does not support mmap operations
	    then it cannot support sendfile too
	    and in this case errno is set to EINVAL
	    (see Linux 2.4 man page);
	  - ENOSYS (all OS), it could be useful in other OS too
	    (i.e. BSD, etc.);
	  - EWOULDBLOCK, if it is != EAGAIN then handle it
	    as EAGAIN.
	
2007-01-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_sendfile): Added a static
	boolean variable to store whether the system doesn't support the
	sendfile() function, in that way, this wrapper function will
	return faster since the systems reports ENOSYS once.

	* cherokee/handler_file.c (cherokee_handler_file_init): Removed
	check for HAVE_SENDFILE_BROKEN.

	* configure.in: Removed sendfile() test. It was declaring a
	superfluous macro called HAVE_SENDFILE_BROKEN if the system had a
	buggy sendfile implementation (like in some Linux 2.2 versions).

2007-01-03  A.D.F  <adefacc@tin.it>

	* cherokee/socket.c (cherokee_socket_sendfile): 
	- remove || defined(HAVE_SENDFILE64) because it is generic
	  and here we must compile code by using specific
	  OS api (HPUX sendfile64() is not like Linux sendfile64());

        - if HAVE_BROKEN_LINUX_SENDFILE or HAVE_SENDFILE_BROKEN
	  is defined then return "ret_no_sys" instead
	  of triggering a SHOULDNT_HAPPEN at the end of the function.

	  NOTE: this case happens in Linux 2.2.x and some 2.4.x
	        when large file support is enabled but
	        native sendfile does not support loff_t,
	        see also: config.h (#define _FILE_OFFSET_BITS 64).

	  NOTE: maybe it would not be a bad idea to set
	        --disable-largefile as default setting in Linux 2.2.x.

	* cherokee/buffer.c:
        - added a few comments to cherokee_buffer_substitute_string().

	* cherokee/handler_dirlist.c:
        - removed unused define DEFAULT_NAME_LEN 40;
	- renamed substitute_token_guts() -> substitute_vbuf_token()
	  and changed it:
	  - added an array of two temporary buffers;
	  - added a parameter pidx_buf to update the index
	    of last content buffer to be used in next calls
	    as source buffer;
        - added a few macros _VTMP_* to hide details about
	  declaration of substitution variables and repeated code.

	* A few changes by Alvaro over these ones.
	
2007-01-02  A.D.F  <adefacc@tin.it>

	* cherokee/handler_error.c (build_hardcoded_response_page):
	- added a cherokee_buffer_ensure_addlen(buffer, 1000)
	  to avoid too many reallocations;
        - replaced cherokee_buffer_add_va() for equivalent
	  cherokee_buffer_add_*() calls;

	* cherokee/buffer.c:
        - added cherokee_buffer_substitute_string()
	  which takes an additional parameter (destination buffer)
	  and so does not need to reallocate memory unless
	  this is really needed (cherokee_buffer_replace_string())
	  has not been touched);

	* cherokee/thread.h, cherokee/thread.c:
	- added a second temporary buffer to cherokee_thread_t
	  because the need for two temporary buffers is not uncommon;

	* cherokee/handler_file.c:
	- changed macro from THREAD_TMP_BUF() to THREAD_TMP_BUF1();

	* cherokee/handler_dirlist.c:
	- changed code to use cherokee_buffer_substitute_string()
	  by using two temporary buffers (coming from the current thread)
	  and alternating the substitutions from one temporary
	  buffer to the other (stuff is copied from source to destination
	  if cherokee_buffer_substitute_string() returns ret_ok;
	- changed name to the token macro,
	  from: replace_token();
	    to: substitute_token().

2007-01-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c (config_server): Added getopt support and
	two parameters: port (-r) and document_root (-d). The
	configuration has been updated as well: switched from PHP to SCGI.

2006-12-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/virtual_server.c (cherokee_virtual_server_configure):
	Ensure that, after configuring a virtual server, its document root
	property has been properly configured. A misconfiguration at this
	point could make the server crash.

	* cherokee/main.c (common_server_initialization): The error
	reporting has been improved. It wasn't printing the path of the
	configuration file, neither the path of the directory that it
	could be serving.

	* cherokee/handler_cgi.c (manage_child_cgi_process): Now it logs
	an error when something nasty happens trying to execute a CGI.

	* qa/138-ChangeUser-cgi.py: Added new QA test to ensure we don't
	break it again.

	* cherokee/handler_cgi.c (manage_child_cgi_process): "Change user"
	feature fixed. It wasn't working properly for CGI files. It fixes
	bug #126

	* cherokee/handler_error.c: Do not use cherokee_buffer_add_va in
	the most used cases. It's kind of slow.

	* cherokee/mime_entry.c: mime_name property is now an static
	entry.

	* cherokee/handler_error.h, cherokee/handler_error.c: The content
	should be a static entry. It saves one malloc+free calls.

2006-12-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py: Now the -v parameter (to use valgrind) reads a
	string in order to determine what valgrind utility it should use,
	so it becomes: -vcall, -vcache, -vhel or -vmem

	* qa/run-tests.py: Panic script path fixed. Now it accepts both
	global and relative paths.

	* qa/run-tests.py, qa/conf.py: cherokee-panic path is now relative
	to the source package rather than to system one.

	* cherokee/cherokee-panic: Check for the mail command, if it isn't
	found use cat instead.

	* cherokee/server.h, cherokee/server.c (cherokee_server_step):
	Prototype modified. Now it returns a ret_t that indicates whether
	or not the server should keep iterating.

	* cherokee/server.h: Added a new property wanna_reinit.  There was
	one called wanna_exit, but we were misusing it.

	* cherokee/virtual_server.c (add_logger): Bug fix: Loggers were
	not initialized.

	* qa/run-tests.py: Added a new -l parameter lo enable logging.

	* cherokee/main.c (prepare_to_die), cherokee/server.h,
	cherokee/server.c (cherokee_server_handle_TERM): Added new signal
	TERM handle function. It flushes the log files before dying.

2006-12-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* README: Added a reference on how to cross compile it server.

2006-12-28  A.D.F  <adefacc@tin.it>

	*cherokee/thread.h:
        - added new field cherokee_buffer_t tmp_buf
	  that now can be used to handle temporary contents
	  by cherokee_buffer_*() (fast) functions;

	* cherokee/thread.c:
        - added allocation (4096 bytes) and free of tmp_buf
	  on creation and on death of each thread;

	* cherokee/handler_file.c:
        - check_cached(),
          replaced one snprintf() call
	  for the equivalent cherokee_buffer_*() calls
	  (same code as in cherokee_handler_file_add_headers();

	Above modifications speed up cherokee HTTP 304 Not Modified for
	static files by around 8% (+-2%): 9300 -> 10000 requests / sec.

2006-12-28  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h:
	- added cherokee_buffer_add_llong10();

	* cherokee/buffer.c:
        - added cherokee_buffer_add_llong10();
	- added unlikely in the test condition for a malloc() failure;

	* cherokee/handler_file.c:
	- cherokee_handler_file_add_headers(),
	  replaced cherokee_buffer_add_va() calls
	  for cherokee_buffer_add_str|*long1x() calls.

	Above listed modifications speed up cherokee by around 10% (+-2%)
	when retrieving a small file (index.html) whose size is 810 bytes,
	i.e.: 8550 -> 9500 requests / sec.

2006-12-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* m4/libwww.m4: Fixed.

	* cherokee/cherokee_logrotate.c (main): Rename ERROR to
	EXIT_ERROR, there was a conflict with some Win32 headers.

	* cherokee/socket.c: A few Win32 compilation fixes. Patch by Brian
	Rosner <brosner@gmail.com>

	* cherokee/virtual_server.h: rx, tx should be off_t rather than
	size_t.

	* cherokee/virtual_server.h, cherokee/regex.c,
	cherokee/balancer_round_robin.h, cherokee/nonce.c,
	cherokee/fcgi_dispatcher.h, cherokee/server-protected.h,
	cherokee/logger.c, cherokee/iocache.c: Replaced #ifdef
	HAVE_PTHREAD with the new CHEROKEE_{RWLOCK,MUTEX}_T macros.

2006-12-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee_replace.c, Makefile.am (.sample.pre.sample):
	cherokee_replace is obsolete. Now we simply use sed to replace a
	few string in the example configuration file.  Fixes #124. Patch
	by Diego "Flameeyes" Petten <flameeyes@gentoo.org>.

	* cherokee/access.c (cherokee_access_add_domain): Updated to fit
	the latest resolv cache changes.

	* cherokee/source.c (cherokee_source_connect): Now it uses the
	resolv cache rather that a plain call to
	cherokee_socket_gethostbyname(). It speeds up *cgi connections
	about a 15-20%.

	* cherokee/resolv_cache.h, cherokee/resolv_cache.c: Many changes
	along the code: fixes and improvements. Added a new method as
	well.

	* cherokee/common-internal.h (CHEROKEE_RWLOCK_T,
	CHEROKEE_MUTEX_T): Added new macros.

2006-12-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (init_server_strings, build_server_string):
	Reworked. Added a few new static entries to store all the server
	strings used along the server.

	* cherokee/version.c (cherokee_version_add_w_port)
	(cherokee_version_add): Added patch string to the
	cherokee_version_full case.

	* cherokee/version.h,
	cherokee/version.c (cherokee_version_add_simple): Added new
	method.

	* cherokee/handler_dirlist.h,
	cherokee/handler_dirlist.c (cherokee_handler_dirlist_init): Now it
	uses the new static server entries for reading the server string.

	* cherokee/handler_error.c (build_hardcoded_response_page):
	Adapted to the last changes.
	
2006-12-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/plugin.h (PLUGIN_EMPTY_INIT_FUNCTION,
	PLUGIN_INFO_INIT): Compilation warning fixed.

2006-12-23  Alberto Ruiz  <aruiz@synaptia.net> 

	* windows/cherokee.nsi.in: Added package icon.

	* windows/cherokee.ico: Updated.

	* windows/cherokee_pkg.ico: Added ew icon.	
	
2006-12-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/post.h: Fixes MacOS X compilation. Fixes #120.

	* configure.in: Added test for the _pam_dispatch() function in the
	libpam library. It defines the HAVE_PAM_DISPATCH macro.

	* cherokee/validator_pam.c (cherokee_validator_pam_check): Now it
	uses pam_fail_delay() and pam_authenticate() rather than
	_pam_dispatch() if available. Patch by Marcus Rueckert
	<darix@web.de>

2006-12-21  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.c: cherokee_buffer_add_long10(), use cuint_t
	  instead of uint (uint typedef is not ubiquitous).

2006-12-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/access.c (parse_netmask): Fixed a non-sense check. It
	also fixes a compilation warning.

	* cherokee/virtual_server.c (init_entry_property): Fixes
	compilation warning.

	* cherokee/handler_cgi.c (manage_child_cgi_process): Added chdir()
	error check. Fixes a compilation warning.

	* cherokee_replace.c (main): Fixes a couple for compilations
	warnings.

	* cherokee/balancer.c (cherokee_balancer_configure): Added a new
	"host" type.  It allows to add pure host nodes to a balancer (so
	far, it only supported "interpreter" entries).

	* configure.in, cherokee/Makefile.am: Added support for the new
	mirror module.

	* cherokee/source.c (cherokee_source_new): Added new function. 

	* cherokee/handler_mirror.h, cherokee/handler_mirror.c: Added new
	handler.  It implements a redirector based on the balancer
	modules.  Basically, it relays the request on a host port pair and
	then forwards the response to the client.

2006-12-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_admin.c (cherokee_handler_admin_init): Fixed
	post length type.

	* cherokee/post.h, cherokee/post.c (cherokee_post_get_len,
	cherokee_post_set_len): size_t -> off_t

	* cherokee/handler_fastcgi.h, cherokee/handler_fcgi.h,
	cherokee/handler_scgi.h, cherokee/handler_scgi.c (build_header):
	post_len property should be off_t. Fixed and set the right
	formatting string parameter.

	* cherokee/post.h: size, received and walk_offset type are now
	off_t rather than size_t.

	* cherokee/macros.h (FMT_SIZE, FMT_SIZE_HEX, CST_SIZE): Added new
	macros to defize the format string of a size_t value.

	* configure.in: Added check for the size of size_t, int and
	unsigned int.

2006-12-19  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h:
        - new function prototypes cherokee_buffer_add_*long*().

	* cherokee/buffer.c:
	- changed value of REALLOC_EXTRA_SIZE
	  from 0 to 16;
        - added new fast formatting function prototypes for numbers
	  (nice to have as a counterpart of string copies):
	  - cherokee_buffer_add_long10();
	  - cherokee_buffer_add_ulong10();
	  - cherokee_buffer_add_ullong10();
	  - cherokee_buffer_add_ulong16();
	  - cherokee_buffer_add_ullong16();
	- reverted your last change in
	  cherokee_buffer_read_from_fd() PRINT_ERROR(...FMT_OFFSET...)
	  because size_t is not an off_t
	  (in most systems size_t is always an unsigned int
	   or even an uint32_t);

  	      NOTE: I guess that, sooner or later,
	      we will have to change the type of len and size
	      fields of cherokee_buffer_t, from int to size_t
	      (lot of code to review, maybe it's a 0.7 thing).

	* cherokee/util.h:
	- removed references to cherokee_weekdays[] and
	  cherokee_months[];

	* cherokee/util.c:
	- removed arrays cherokee_weekdays[] and
	  cherokee_months[] (see dtm.c);
	- minor space reformatting;

	* cherokee/server.c:
	- replaced cherokee_weekdays[] and cherokee_months[]
	  with the equivalent cherokee_dtm_wday_name()
	  and cherokee_dtm_month_name();

	* cherokee/connection.c:
	- added a call to cherokee_buffer_ensure_size(header_buffer, 384)
	  before the call to "add_headers" function callback;
	- added a few other cherokee_buffer_ensure_size() and
	  cherokee_buffer_ensure_addlen();

	* cherokee/handler_file.c:
	- replaced Etag: with ETag:;
	- added a call to cherokee_dtm_gmttm2str();
	- replaced a few simple cherokee_buffer_add_va()
	  with single calls to cherokee_buffer_add*().

2006-12-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator_htpasswd.c (cherokee_validator_htpasswd_check):
	Better initialization.  It makes the validator safer
	if the password file is empty.

	* cherokee/handler_common.c (stat_file): Better initialization.

	* cherokee/handler_fcgi.h: post_len property is now size_t instead
	of cuint_t.

	* cherokee/handler_scgi.c (build_header): Changed %d by FMT_OFFSET
	for printing to post length.

	* cherokee/server.c (cherokee_server_init): Check chdir() returned
	value.

	* cherokee/server.c (cherokee_server_write_pidfile): Check
	fwrite() returned code.

	* cherokee/connection.c (cherokee_connection_log_delayed): It
	could return an uninitialized value under some circumstances.
	Fixed.

	* cherokee/socket.h (OPENSSL_LAST_ERROR): Better initialization.
	Now it's a bit safer.

	* cherokee/buffer.c (cherokee_buffer_read_from_fd): Changed "%u"
	by FMT_OFFSET to print a size_t.
	(cherokee_buffer_print_debug): variables hex_text, and ascii_text
	weren't initilizated.

	* cherokee/version.c (cherokee_version_add)
	(cherokee_version_add_w_port): Compilation warning fixd: 'ret' may
	be used uninitialized in this function

	* cherokee/util.c (cherokee_estimate_va_length): Compilation
	warning fixed. util.c:611: warning: value computed is not used.

2006-12-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* README: Updated.

	* configure.in: The initial CFLAGS was missing after testing for
	the pthread_rwlock_t structure. Fixed.  Reported by Marcus
	Rueckert <darix@web.de>

2006-12-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/default_header.html, themes/default_theme.css: Couple of
	minor changes in order to make it "Valid XHTML 1.0 Strict".

2006-12-11  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h: 
	- new function prototype:
		cherokee_buffer_ensure_addlen();
	
	* cherokee/buffer.c: 
        - added new function cherokee_buffer_ensure_addlen()
	  in order to ensure that there is enough space
	  to add n characters to the buffer, useful to lower
	  the number of reallocations when it is known
	  how much space is needed (more or less);

	- added constant REALLOC_EXTRA_SIZE to each realloc()
	  call; it is useful to lower the number of realloc()
	  calls, especially when using functions like
	  cherokee_buffer_add*() with small chunks;

	- added 1 to a few calls to cherokee_buffer_ensure_size
	  in order to always allow space for a final '\0',
	  which is included in "size" counting.

2006-12-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/default_header.html: Replaced border="0" entry by a
	class="logo" one.

	* themes/default_theme.css: Added to new entries: .logo and .icon

	* m4/mysql.m4: It mysql_config wasn't found, it was printing "no"
	twice. Fixed.

	* cherokee/handler_cgi_base.c (add_systemroot_env)
	(cherokee_handler_cgi_base_build_basic_env): It adds a new
	SYSTEMROOT environment variable when running in Win32. I should
	fix #115.

	* cherokee/handler_phpcgi.c: Added Win32 path and name. Now, it
	shouldn't be necessary to define the interpreter if it's installed
	on c:\php\php.exe

	* cherokee/fcgi_manager.c (reconnect): Compilation problem. Fixes
	#116. Reported by bervik@citromail.hu.

	* themes/default_header.html: Fixes typo. There was a not valid
	<meta /> entry.

	* cherokee/virtual_server.c (add_request): The error management
	has been slightly improved.  It was leaking when an error occurred.

2006-12-10  A.D.F  <adefacc@tin.it>

	* cherokee/dtm.h:
	- added constant DTM_TIME_EVAL;
        - new function prototypes:
		cherokee_dtm_wday_name();
		cherokee_dtm_month_name();
                cherokee_dtm_gmttm2str();

	* cherokee/dtm.c:
	- general cleanup;
	- added new internal arrays;
	- added new functions to convert a weekday index (0-6)
	  or a month index (0-11) to the corresponding short name
	  (3 characters long);
        - added new function cherokee_dtm_gmttm2str() in order
	  to allow fast conversion from a gmt struct tm
	  to a string (40 mlsec. for 100000 calls on my PC).

2006-12-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source_interpreter.c (cherokee_source_interpreter_spawn):
	Added little check.  The interpreter may not be defined.

	* cherokee/handler_scgi.c (connect_to_server),
	cherokee/handler_fcgi.c (connect_to_server),
	cherokee/fcgi_manager.c (reconnect): Error handling has been
	slightly improved.

2006-12-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/source.c (cherokee_source_connect), cherokee/socket.c
	(cherokee_socket_connect): FastCGI was failing on IPv6 enabled
	Solaris boxes because of a bug in these functions. Fixed.

	* cherokee/server.c (set_server_fd_socket_opts): It was failing to
	set TCP_MAXSEG on Solaris. It's acceptable if that call to the
	setsockopt() function fails. Fixed.

2006-12-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/util.py (look_for_php, look_for_python): minor bug fix.

2006-12-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/iocache.c (cherokee_iocache_stat_get): Memory leak
	fixed.

2006-12-05  A.D.F  <adefacc@tin.it>

	* cherokee/tdate_parse.h, cherokee/tdate_parse.c, cherokee/dtm.h,
	cherokee/dtm.c, cherokee/Makefile.am
	(libcherokee_base_la_SOURCES): Date parsing functions have been
	rewritten from scratch. These ones are between 12 and 16 times
	faster than the previous ones.

2006-12-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* mods-ssl.sample.pre: Typo fixed.

	* cherokee/version.h, cherokee/version.c: New files. Implements
	cherokee_version_add_w_port() and cherokee_version_add().

	* cherokee/handler_error.c (build_hardcoded_response_page): Now,
	it uses the new cherokee_version_add_w_port() function.

	* cherokee/buffer.c (cherokee_buffer_add_version): Removed.

	* cherokee/buffer.h: cherokee_version_t Removed.

	* cherokee/config_node.c (cherokee_config_node_read_list): Now it
	skips whites before each list entry.  "a, b, c" should be "a", "b"
	and "c" instead of "a", " b" and " c" like previously. 

	* cherokee/server.c (configure_server_property): Configuration key
	"mime_file" has been renamed to "mime_files". Now it accepts a
	list of files rather than a single file name.

	* qa/031-Post+urlencoded2.py, qa/101-HugePost.py,
	qa/083-RedirParam.py, qa/080-Extension2.py, qa/060-BigPost.py,
	qa/029-Post+Without-lenght.py, qa/127-SCGI-Post.py,
	qa/087-Location.py, qa/134-HTTP_headers.py, qa/037-PHP-post.py,
	qa/072-Inherit3.py, qa/run-tests.py, qa/135-RedirParams.py,
	qa/081-DocumentRoot-Common-index.py, qa/066-DirectoryIndex3.py,
	qa/126-SCGI.py, qa/128-ValidMethod-common.py,
	qa/116-RequestTiny.py, qa/038-PHP-get.py, qa/035-PHP-simple.py,
	qa/065-DirectoryIndex2.py, qa/131-ChangeUser-phpcgi.py,
	qa/079-Extension.py, qa/133-If-None-Match.py,
	qa/064-DirectoryIndex.py, qa/068-PathInfo2.py, qa/067-PathInfo.py,
	qa/115-Respin.py: Now it uses the look_for_python() function
	instead of PYTHON_PATH.

	* qa/util.py (look_for_python): Added new function to look for the
	Python interpreter. Now it works in the same way the PHP
	interpreter detection does.

	* qa/137-Mime1.py, qa/Makefile.am (EXTRA_DIST): Added new QA test
	to ensure that Content-type header is properly sent to the client.

	* cherokee/macros.h (__GNUC_VERSION, must_check): Added new
	macros.

2006-12-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py, qa/conf.py (PHP_DIRS, PHP_NAMES), qa/util.py
	(look_for_php): Added PHP autodetection. If PHPCGI_PATH is set to
	"auto" it will look for the interpreter.

	* cherokee/plugin_loader.c (execute_init_func): Fixes plugin's
	init function look up. (load_common): Better error management.
	(get_sym_from_dlopen_handler): it was calling dlerror() too many
	times, and hence it wasn't displaying the right error message.
	Fixes bug #112.

	* cherokee/socket.c: There were a couple of includes missing. It
	was generating a compilation error on Solaris. Fixes bug #111.

	* Makefile.am (uninstall-local): It wasn't removing one of the
	symbolic links.

2006-11-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libcherokeeinclude_HEADERS): Replace
	"module_loader.h" by "plugin_loader.h".  Added "plugin.h" as well.
	It fixes bug #110.
	
	* cherokee/handler_dirlist.h, cherokee/handler_dirlist.c
	(render_parent_directory, cherokee_handler_dirlist_step),
	themes/default_entry.html: It wasn't adding the "Parent Directory"
	link to the generated pages. It fixes bug #106.

	* cherokee.conf.sample.pre: After installing Cherokee, the default
	website is server. Later on, if the index.html is removed, the
	iocache object will still keep its data, so if the server receives
	some request for the index, it will reply with a 404 error instead
	of displaying directory index (it was using the common). It fixes
	bug #109.

	* cherokee/server.c (print_banner): Print the right banner when
	it's listening a unix socket.

	* cherokee/socket.c (cherokee_bind_local): Now it removes the
	socket if it was already there (checking that it's certainly a
	socket).

	* configure.in (PACKAGE_PATCH_VERSION): It must be defined even if
	it isn't a Beta release.  It fixes bug #105.

	* cherokee/handler_redir.c (cherokee_handler_redir_new): Fixes
	a tiny memory leak.

        * cherokee/handler_redir.c, cherokee/handler_redir.h,
	cherokee/handler_error_redir.c, cherokee/module_loader.c,
	cherokee/handler_server_info.c, cherokee/module_loader.h,
	cherokee/handler_error_redir.h, cherokee/handler_server_info.h,
	cherokee/plugin_loader.c, cherokee/handler_admin.c,
	cherokee/handler_cgi_base.c, cherokee/plugin_loader.h,
	cherokee/handler_admin.h, cherokee/handler_cgi_base.h,
	cherokee/handler_dirlist.c, cherokee/handler_nn.c,
	cherokee/handler_dirlist.h, cherokee/virtual_server.c,
	cherokee/handler_nn.h, cherokee/handler_common.c,
	cherokee/module.c, cherokee/validator_ldap.c,
	cherokee/config_entry.c, cherokee/handler_common.h,
	cherokee/module.h, cherokee/validator_ldap.h,
	cherokee/config_entry.h, cherokee/validator_plain.c,
	cherokee/validator_plain.h, cherokee/validator.c,
	cherokee/encoder_table.c, cherokee/validator.h,
	cherokee/encoder_table.h, cherokee/validator_htpasswd.c,
	cherokee/plugin.h, cherokee/validator_htpasswd.h,
	cherokee/handler_file., cherokee/handler., cherokee/encoder.c,
	cherokee/handler_file.h, cherokee/handler.h, cherokee/encoder.h,
	cherokee/Makefile.am, cherokee/handler_fcgi.c,
	cherokee/balancer_round_robin.c, cherokee/encoder_gzip.c,
	cherokee/handler_fcgi.h, cherokee/handler_fastcgi.c,
	cherokee/encoder_gzip.h, cherokee/handler_fastcgi.h,
	cherokee/balancer.c, cherokee/balancer.h,
	cherokee/handler_proxy.c, cherokee/handler_scgi.c,
	cherokee/logger_ncsa.c, cherokee/handler_proxy.h,
	cherokee/handler_error.c, cherokee/handler_scgi.h,
	cherokee/logger_ncsa.h, cherokee/handler_error.h,
	cherokee/handler_cgi.c, cherokee/server-protected.h,
	cherokee/handler_cgi.h, cherokee/validator_mysql.c,
	cherokee/logger.c, cherokee/validator_mysql.h,
	cherokee/validator_htdigest.c, cherokee/logger.h,
	cherokee/validator_htdigest.h, cherokee/cherokee.h,
	cherokee/server.c, cherokee/handler_phpcgi.c,
	cherokee/handler_phpcgi.h, cherokee/logger_combined.c,
	cherokee/validator_pam.c, cherokee/validator_pam.h,
	cherokee/socket.c, cherokee/logger_w3c.c: "module" has been
	splitted into module and plug-in.

	* cherokee/handler_fcgi.c (do_send): Do not move the connection to
	polling if it receives a ret_eagain when it tries to write the
	post content.

	* cherokee/socket.c (cherokee_socket_write): Better
	initialization.  Fixes a potential memory corruption problem.
	
2006-11-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fcgi.c (do_send): Post handling was
	broken. Actually, I broke it with another commit a couple of days
	ago. It's working again. This problem showed up using Gallery 2,
	there were people who couldn't upload pictures.

	* cherokee/config_node.c (cherokee_config_node_add): Fixes bug
	#104. It was messing up the configuration tree if the entries were
	not sorted.

	* configure.in: Added new --enable-beta parameter. It allows to
	build beta versions based on the subversion revision number. 

2006-11-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_scgi.c (connect_to_server),
	cherokee/fcgi_manager.c (reconnect), cherokee/handler_fcgi.c
	(connect_to_server): Socket connecting the server with the
	application server must be marked as non-blocking soon after having
	been accepted. Fixed.

2006-11-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.h: Inclusion of arpa/inet.h has been moved after
	the inclusion of netinet/in.h.

	* cherokee/fdpoll-kqueue.c: Included sys/types.h. Needed by
	FreeBSD.

	* cherokee/macros.h: Added stdlib.h inclusion.

	* cherokee/handler_cgi_base.c (parse_header),
	cherokee/connection.c (get_range): atoll() calls have been
	replaced by strtoll() calls. It was failing on FreeBSD because of
	this.

2006-11-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/default_header.html: Added "generator" meta entry.

	* cherokee/server.c (print_banner): Added compilation date.
	(initialize_server_socket): Little clean up.

	* qa/113-HeaderFile.py, qa/114-HeaderFile2.py: Fixed. There were a
	couple of TODO flags here.

	* cherokee/handler_common.c (cherokee_handler_common_configure):
	Handle ret_deny.  The key may be managed by dirlist rather than by
	file.

	* cherokee/handler_file.c (cherokee_handler_file_configure):
	Return ret_deny if it finds an unknown configuration entry.

2006-11-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/078-AccessAny.py (CONF): Added priority entry.

	* cherokee/access.c (parse_netmask): Added exception for 0 bits
	long masks. Added a few traces as well.

	* cherokee/virtual_server.c (cherokee_virtual_server_have_tls):
	Bug fixed. It was returning a wrong value here.

	* cherokee/socket.c (cherokee_bind_local): Fixed.

	* cherokee/socket.c (cherokee_socket_sendfile): Added initial
	Solaris implementation.

	* cherokee/server.c (print_banner): Not it uses a buffer rather
	than a *buffer.

2006-11-13  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.c:
        - remove redundant spaces in blank lines;

	- add a couple of unlikely(pbuf == NULL)
	  for failed allocations;

	- fix realloc() handling in order to avoid a memory leak;
	  if realloc returns NULL then the original pointer
	  to memory content is not touched and it is still valid
	  (no free happens);
	  NOTE: I don't think this is a real issue because
	  usually it never happens on PCs, anyway as in theory
	  it _may_ happen (maybe only on some micro-embedded-system),
	  it's better to handle it properly;

        - remove cherokee_buffer_replace(),
	  it looks like a stub function and it is not used by anybody;

        - optimize cherokee_buffer_replace_string(),
	  if substring is not found in "buf" or if resulting length is 0
	  then there is no need to do something (copy / alloc memory).	

	* cherokee/sendfile.c:
        - add a new constant MAX_SF_BLK_SIZE
	  (max. sendfile block size)
	  to limit size of data sent by each sendfile call
	  because this can improve a lot things on small
	  or old systems (FreeBSD 4.x, Linux 2.2, etc.);
	  NOTE: right now default is set to 4 MB
	        which should be good even for monster systems
	        (i.e. up to 10-100 GB / sec. of disk I/O).
	  NOTE: maybe in the near future we will add a new parameter
	        in configuration file to set the value
	        at runtime / startup;

        - cherokee_socket_sendfile():
	  - if size of data to be sent is 0 then return
	    without calling sendfile;

	  - limit size of data to MAX_SF_BLK_SIZE;

	  - fix FreeBSD return error handling,
	    only (re) variable has to be tested for error value,
	    return ret_eagain only if errno == EAGAIN && *sent == 0.
	
2006-11-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (cherokee_thread_step_SINGLE_THREAD)
	(cherokee_thread_step_MULTI_THREAD): A few changes to adapt the
	code to latest changes.

	* cherokee/server-protected.h: the sockets are no longer
	int(s). Now, they are cherokee_socket_t objects, which makes much
	more sense and will allow us to make the server easily portable
	even on non Unix OS.

	* cherokee/socket.h,
	cherokee/socket.c (cherokee_socket_set_nodelay): Added new method.
	(cherokee_socket_listen): Added new method.
	(cherokee_socket_bind): Addned new method.
	(cherokee_socket_set_client): Almost rewritten.

	* cherokee/socket.h (cherokee_socket_is_connected,
	cherokee_socket_is_connected): Added two new macros, and did a bit
	of clean up.

	* configure.in: Added a new --disable-epoll parameter. By default,
	when it's cross compiling, it'll assume that epoll() works without
	testing it (it cannot execute a test program to check it out), so
	if your system doesn't support it, use the new --disable-epoll
	flag.
	
	* configure.in: A few changes to make it work in cross compiling
	environments. 

2006-11-03  A.D.F  <adefacc@tin.it>

	* cherokee/handler_error.c: corrects mispellings in comments;
	  indent fixed string only one tab beyond function names so that
	  they are more readable; micro changes to http error strings.

2006-11-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/126-SCGI.py (Test.Precondition),
	qa/127-SCGI-Post.py (Test.Precondition): If the SCGI wasn't
	installed an ugly error message was shown. Fixed.

	* cherokee/virtual_server.c (add_extensions): Bug fix. It was
	clearing the extension table right before adding a new extension
	and therefore it was keepling only the last one. QA tests showed
	it up.

	* cherokee/validator_ldap.c (LDAP_OPT_SUCCESS): Define it if it
	wasn't defined previously (like in Solaris).

	* cherokee/validator_ldap.c (validate_dn): Takes care of
	ldap_start_tls_s(), if the system doesn't support it, it won't use
	it.

	* configure.in: Added check for ldap_start_tls_s()

	* cherokee/thread.c (process_active_connections):
	conn->header.method was meant to be conn->header.version.  It was
	using the wrong property.

	* cherokee/util.c (cherokee_getpwnam, cherokee_getgrnam): Added a
	new case inside the HAVE_GETPWNAM_R_4 in order to support the
	_POSIX_PTHREAD_SEMANTICS prototype.

	* cherokee/server.c (update_bogo_now): It have to use "timezone"
	if the system doesn't support the gmtoff property.

	* cherokee/main.c (BASIC_CONFIG): Now, it uses the new try_include
	keyword. The -r parameter should work even if /etc/cherokee is not
	in place.

	* cherokee/config_node.c (cherokee_config_node_add): Added new
	"try_include" clause.  If inclusion fails it'll okay.

	* configure.in (HAVE_GNUTLS, HAVE_OPENSSL): There is no reason to
	show such a fancy warning message whenever gnutls or openssl are not
	found. Removed.

	* configure.in: Added check for struct tm.tm_gmtoff

2006-11-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_server_info.c, cherokee/encoder_table.c: A few
	minor warnings have been fixed.

	* cherokee/logger_table.h, cherokee/logger_table.c,
	cherokee/Makefile.embedded, cherokee/server-protected.h,
	cherokee/Makefile.am (libcherokee_server_la_SOURCES),
	cherokee/server.c: Logger table class is no longer
	needed. Removed.

2006-11-01  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h:
	- move function prototype of
	  cherokee_buffer_unescape_uri() near
	  cherokee_buffer_escape_html.	

	* cherokee/buffer.c: 
        - move cherokee_buffer_unescape_uri()
	  near cherokee_buffer_escape_html();
	- move cherokee_buffer_cmp(), etc. up,
	  before more general / helper functions;
	- cherokee_buffer_escape_uri():
	  - avoid a couple of jumps inside for loop
	    for the most common cases.

2006-10-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* README, cherokee/handler_server_info.c (PAGE_HEADER),
	http-cherokee.xml, SUNWcherokee.spec (Source), cget.1, cherokee.1,
	cherokee_logrotate.1, configure.in, cherokee.spec.in (URL),
	cherokee/cherokee-panic (action), qa/023-Host.py, qa/046-Redir.py,
	qa/047-Redir2.py, qa/128-ValidMethod-common.py,
	qa/134-HTTP_headers.py, windows/cherokee.nsi.in, www/index.html:
	Domian changed. 0x50.org is no longer the project's domain, from
	now on it's cherokee-project.com.

2006-10-26  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.h, cherokee/buffer.c: sparse blanks to tab
	conversions; cherokee_buffer_dup(), add a free() to fix a possible
	memory leak; rename cherokee_buffer_decode() to
	cherokee_buffer_unescape_uri() (unescape escape sequences) in
	order to make it consistent with cherokee_buffer_escape_html() and
	future cherokee_buffer_escape_uri();

	* cherokee/buffer.c (cherokee_buffer_escape_html): - improve speed
	by using strpbrk() (fast function) to look for special characters;
	add '"' to the escaped characters; make sure there are no embedded
	'\0' in input string.

	* cherokee/handler_error.c: fixes a memor leak.

2006-10-24  A.D.F  <adefacc@tin.it>

	* cherokee/buffer.c (cherokee_buffer_decode): change
	  cherokee_buffer_decode() in order to speed up it and to avoid to
	  use original BSD (Jeff Poskanzer) source code.

2006-10-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.h, cherokee/util.c (cherokee_hexit): Removed.

2006-10-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/05to06.py: Added new script.

2006-10-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (update_bogo_now): Date header wasn't
	generated because of an error in the logic. Fixed.

	* cherokee/handler_dirlist.c (render_file): Code that replaces
	%icon% and %icon_alt% has been slightly cleaned up. Now it is a
	bit cleaner.

	* cherokee/exts_table.h, cherokee/exts_table.h, cherokee/thread.c:
	The extensions table is now implemented as a static structure.

	* cherokee/Makefile.embedded (OBJS): Little files: a couple of
	objects have been added and removed.

	* cherokee/server.c (cherokee_server_new): Fixed tiny memory leak:
	The server->icons object was created twice.

	* cherokee/module_loader.c (cherokee_module_loader_get,
	cherokee_module_loader_set_directory): These are now common
	function between embedded and non-embedded version.

	* cherokee/handler_redir.c: Code has been re-factored in order to
	make u-cherokee compile again.

	* cherokee/handler_file.c (cherokee_handler_file_init): use_io
	cache logic was wrong. There was an extra "not" that was fucking it
	up.  Thanks to A.D.F for noticing there was something wrong with
	the iocache behaviour.

	* cherokee/mime.c (cherokee_mime_free): Added check to ensure mime
	object exists.

	* cherokee/server-protected.h,
	cherokee/server.c (cherokee_server_new): Removed config_file and
	icons_file properties.  They are no longer needed.

	* cherokee/virtual_server.c (configure_virtual_server_property):
	Added three new configuration keys: "ssl_certificate_file",
	"ssl_certificate_key_file" and "ssl_ca_list_file".

	* cherokee/virtual_server.h, cherokee/virtual_server.c:
	server_cert, server_key and ca_cert are no longer char *, nor
	they are cherokee_buffer_t's.

	* doc/develop/Makefile.am (EXTRA_DIST),
	doc/develop/draft-coar-cgi-v11-03.txt, doc/develop/rfc1952.txt,
	doc/develop/rfc2616.txt, doc/develop/rfc2817.txt : Removed
	RFCs. It's non-free content.

2006-10-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (configure_server_property): Added new
	configuration key "thread_policy".

	* cherokee/handler_fcgi.c, cherokee/fcgi_manager.c,
	cherokee/handler_fastcgi.c: Implemented previous changes to scgi
	to these handlers.

2006-10-14  A.D.F  <adefacc@tin.it>

	* cherokee/http.c, cherokee/http.h: Added new error: "502 Bad
	gateway".

	* cherokee/thread.c (process_active_connections): add a missing
	test on 5xx http errors.

	* cherokee/handler_scgi.c: set conn->error_code =
	http_internal_error or http_bad_gateway or
	http_service_unavailable when there is a init fatal error.
	(Slightly reworked by Alvaro).
	
2006-10-07  A.D.F  <adefacc@tin.it>

	* cherokee/thread.c, cherokee/socket.c, cherokee/socket.h: Better
	fd management. Fixes a few problems with fd leaks.

2006-10-03  A.D.F  <adefacc@tin.it>

	* cherokee/handler_error.c: Couple of fixes for
	cherokee_handler_error_add_headers(): Always return on
	if (!http_code_with_body()). http_range_not_satisfiable (416) has
	an error body.

2006-09-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py (CONF_BASE): Now, it uses the example mime types
	file instead of the system one.

	* cherokee/server.c (update_bogo_now): Partially rewritten.

2006-09-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/iocache.c (cherokee_iocache_stat_get): Potential memory
	leak fixed.

2006-09-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (update_bogo_now): Date string fixed.  It was
	sending "GMT--5" instead of "GMT-5".

	* qa/run-tests.py (CONF_BASE): Added new config line to make it
	use by default the local plug-ins rather than the system ones.

	* cherokee/server.c (configure_server): Added new configuration
	key.  It allows to define the modules directory: "module_dir".

	* cherokee/module_loader.h,
	cherokee/module_loader.c (cherokee_module_loader_set_directory,
	dylib_open, get_info): Added new method.  It allows to set an
	alternative module directory.

	* cherokee/handler_file.c: sendfile() compilation fixed.  It fixes
	a little problem with the range management if the server wasn't
	using either mmap or sendfile to send the file chunck.  It also
	fixes the Content-Range reply header to use the right end
	position.
	
	* cherokee/virtual_server.c (configure_user_dir): User_dir
	directory name must end by slash to ensure paths can be easily
	concatenated. Bug reported by Daniel 'NebuchadnezzaR' Dehennin.

2006-09-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/136-BadRange.py: Added new QA test to ensure previous changes
	work alright.

	* cherokee/handler_file.c (cherokee_handler_file_init): Now it
	stores the file length in conn->range_end if the response is going
	to be http_range_not_satisfiable, in this way the error handler is
	able to know the length and hence to send the right response.

	* cherokee/handler_error.c (cherokee_handler_error_add_headers):
	Added new http_range_not_satisfiable exception case.

2006-09-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_estimate_va_length): Performance
	improvement. Speeded up about 13,35%.

2006-0x-xx  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Loads of commits..

2006-07-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, cherokee/util.c (cherokee_trace): Added check for
	flockfile() and funlockfile(). It was failing compile on Win32.
	Patch by Philip Pemberton <philpem@dsl.pipex.com>

2006-0x-xx  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Loads of commits..
	
2006-06-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_tls_init): Added SSL hardware
	acceleration support. Patch by Yusuf Goolamabbas
	<yusufg@outblaze.com>

2006-04-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* themes/Makefile.am, themes/default_theme.css,
	themes/default_header.html, themes/default_footer.html,
	themes/default_entry.html, configure.in: Added default theme for
	dirlist.
	
	* cherokee/handler_dirlist.c, cherokee/handler_dirlist.c: Almost
	rewritten: removed hardcoded HTML.  Now it supports themes.
	
2006-04-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/config_entry.c (cherokee_config_entry_set_handler_prop)
	(cherokee_config_entry_set_validator_prop): Removed. Not longer
	needed.

	* cherokee/thread.c (process_active_connections): There was an
	unhandled error case here. It was the source of some stability
	problems detected in 0.5.1.  This problem was reported by Cesar
	Fernandez and Rodolfo Pilas (thanks guys!)

2006-04-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_redir.c, cherokee/handler_cgi_base.c,
	cherokee/handler_dirlist.c, cherokee/validator_plain.c,
	cherokee/validator_plain.h, cherokee/validator_htpasswd.c,
	cherokee/validator_htdigest.c, cherokee/handler_phpcgi.c: A few
	memory management problems have been fixed (it was caused by previous
	commit).

	* cherokee/server.c (cherokee_server_read_config_string): It
	doesn't make sense to keep the configuration nodes when the server
	starts running, so now it frees them as soon as everything is parsed.

	* cherokee/config_node.h,
	cherokee/config_node.c (cherokee_config_node_new,
	cherokee_config_node_free): Added two new method (beside the
	stack'ed version _init()/_mrproper()).

	* cherokee/main_admin.c (config_server): Now it uses the new
	configuration strings rather than the internal API.

	* cherokee/server.c (cherokee_server_read_config_string): Added
	new method. Cherokee 0.5 supports it, so it was a
	regression. Fixed.

	* cherokee/config_node.c (cherokee_config_node_parse_string):
	Addnew new method.

	* Makefile.am, sites-default.sample.pre, cherokee/handler_redir,
	cherokee/handler_redir.h, cherokee/module_loader.c,
	cherokee/handler_server_info.c, cherokee/module_loader.h,
	cherokee/dict.c, cherokee/dict.h, cherokee/handler_cgi_base.c,
	cherokee/resolv_cache.c, cherokee/handler_cgi_base.h,
	cherokee/access.c, cherokee/handler_dirlist.c,
	cherokee/module_loader-protected.h, cherokee/list.c,
	cherokee/handler_dirlist.h, cherokee/virtual_server.c,
	cherokee/list.h, cherokee/virtual_server.h,
	cherokee/handler_common.c, cherokee/cherokee_show.c,
	cherokee/config_entry.c, cherokee/module.h,
	cherokee/config_entry.h, cherokee/request.h, cherokee/avl,
	cherokee/validator_plain.c, cherokee/reqs_list.h,
	cherokee/ext_source.c, cherokee/avl.c, cherokee/ext_source.h,
	cherokee/validator.c, cherokee/avl.h, cherokee/exts_table.c,
	cherokee/validator.h, cherokee/encoder_table.h,
	cherokee/typed_table.c, cherokee/main_admin.c,
	cherokee/typed_table.h, cherokee/validator_htpasswd.c,
	cherokee/thread.c, cherokee/buffer.c, cherokee/handler_file.c,
	cherokee/thread.h, cherokee/buffer.h, cherokee/main.c,
	cherokee/Makefile.am, cherokee/handler_fcgi.c,
	cherokee/session_cache.c, cherokee/config_node.c,
	cherokee/icons.c, cherokee/session_cache.h,
	cherokee/config_node.h, cherokee/icons.h, cherokee/handler_scgi.c,
	cherokee/handler_error.c, cherokee/table.c, cherokee/list_ext.c,
	cherokee/logger_table.h, cherokee/table.h, cherokee/handler_cgi.c,
	cherokee/list_ext.h, cherokee/dict, cherokee/server-protected.h,
	cherokee/handler_cgi.h, cherokee/module_read_config.c,
	cherokee/module_read_config.h, cherokee/admin_server.c,
	cherokee/connection_info.h, cherokee/validator_htdigest.c,
	cherokee/mime-protected.h, cherokee/table-protected.h,
	cherokee/matching_list.c, cherokee/cherokee.h,
	cherokee/matching_list.h, cherokee/iocache.c,
	cherokee/connection.c, cherokee/list_merge_sort.c,
	cherokee/list_merge_sort.h, cherokee/server.c,
	cherokee/handler_phpcgi.c, cherokee/dirs_table.c,
	cherokee/mime_entry.c, cherokee/server.h, cherokee/dirs_table.h,
	cherokee/virtual_entries.c, cherokee/validator_pam.c,
	cherokee/virtual_entries.h, cherokee/socket.c,
	cherokee/connection-protected.h, cherokee/reqs_list_entry.h,
	windows/cherokee.nsi.in, cherokee_logrotate.1,
	doc/develop/Intro.txt, cherokee.1, configure.in, README: Many
	changes mixed together in here: 1.- The list and AVL
	implementations are new.  2.- I've added a new configuration
	system much more generic than the previous one (it doesn't require
	yacc or lex any longer! but it isn't meant to be written by hand
	though). 3.- Most of the modules have been updated to read their
	configuration by using the new method.

	* qa/031-Post+urlencoded2.py, qa/112-NiceError-CGI.py,
	qa/034-DirIndex2.py, qa/083-RedirParam.py,
	qa/125-domain-redir1.py, qa/080-Extension2.py, qa/070-Inherit.py,
	qa/104-ScriptAlias_PathInfo.py, qa/091-Digest2.py,
	qa/029-Post+Without-lenght.py, qa/127-SCGI-Post.py,
	qa/086-AuthUsers2.py, qa/020-VirtualHost.py, qa/087-Location.py,
	qa/015-CGI-simple.py, qa/082-Auth-header.py, qa/047-Redir2.py,
	qa/017-CGI-pathinfo2.py, qa/042-Pipelining.py,
	qa/118-Request-redir.py, qa/040-Auth-Basic2.py,
	qa/107-Priority1.py, qa/108-Priority2.py, qa/033-DirIndex.py,
	qa/076-AccessRange2.py, qa/109-Priority3.py,
	qa/089-gzip-encoding.py, qa/037-PHP-post.py, qa/061-PAM.py,
	qa/043-Pipelining2.py, qa/075-AccessRange.py, qa/072-Inherit3.py,
	qa/093-InvalidLinks.py, qa/097-htpasswd-sha1.py, qa/run-tests.py,
	qa/073-Access.py, qa/046-Redir.py, qa/117-DomainToDir.py,
	qa/045-Home2.py, qa/081-DocumentRoot-Common-index.py,
	qa/066-DirectoryIndex3.py, qa/063-DocumentRoot.py,
	qa/071-Inherit2.py, qa/126-SCGI.py, qa/102-QueryString.py,
	qa/128-ValidMethod-common.py, qa/124-DomainToDir2.py,
	qa/062-PAM2.py, qa/041-Auth-Basic3.py, qa/122-Methods.py,
	qa/098-htpasswd-crypt.py, qa/016-CGI-pathinfo.py, qa/001-basic.py,
	qa/044-Home.py, qa/116-RequestTiny.py, qa/021-VirtualHost2.py,
	qa/121-NoUserDir.py, qa/077-AccessRange3.py, qa/035-PHP-simple.py,
	qa/065-DirectoryIndex2.py, qa/088-CGI-envs.py,
	qa/085-AuthUsers.py, qa/131-ChangeUser-phpcgi.py,
	qa/018-CGI-pathinfo3.py, qa/094-URL-request.py,
	qa/110-Priority4.py, qa/123-ImplicitRedit.py,
	qa/099-htpasswd-plain.py, qa/050-HeadBody.py, qa/079-Extension.py,
	qa/113-HeaderFile.py, qa/074-Access2.py, qa/096-htpasswd-md5.py,
	qa/084-RedirParamShow.py, qa/049-NN-broken.py,
	qa/064-DirectoryIndex.py, qa/030-Post+urlencoded.py,
	qa/068-PathInfo2.py, qa/069-PathInfo3.py, qa/092-Digest3.py,
	qa/095-htpasswd-apache-md5.py, qa/067-PathInfo.py, qa/048-NN.py,
	qa/039-Auth-Basic.py, qa/105-If-Range.py,
	qa/130-Digest-EmptyPasswd.py, qa/115-Respin.py,
	qa/103-ScriptName.py, qa/129-Basic-EmptyPasswd.py,
	qa/114-HeaderFile2.py, qa/106-If-Range2.py,
	qa/036-DocumentRoot-common.py, qa/090-Digest.py,
	qa/078-AccessAny.py, qa/100-Digest-htdigest.py: Rewritten using
	the new configuration file syntax.

2006-04-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c (cherokee_handler_dirlist_add_headers):
	Added charset entry into Content-Type header.

2006-04-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main.c (common_server_initialization): PID file must to
	written before the server changes its user identity.

	* cherokee.1, cherokee_logrotate.1, doc/develop/Intro.txt, README,
	sites-default.sample.pre, windows/cherokee.nsi.in: URL pointing to
	alobbs.com has been fixed to point to 0x50.org.  Patch by Gunnar
	Wolf <gwolf@gwolf.org>
	
2006-04-08  Rodrigo Fernandez-Vizarra  <rfdzvizarra@yahoo.ie>

	* cget/main.c: Modified cget to not use the event interface of the
	download and to use the new interface to query the status of a
	download

	* cherokee/downloader-protected.h: Added field the
	cherokee_downloader struct to store the status of the download

	* cherokee/downloader.c: Implemented the interface to query the
	status of a download

	* cherokee/downloader.h: Added interface to query the status of a
	download

2006-04-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_dup): New method.

2006-04-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/macros.h (equal_str, equal_buf_str): Added new macros

2006-04-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/module_loader.c,
	cherokee/module_loader.h (cherokee_module_loader_get): New method.

	* cherokee/icons.c (cherokee_icons_configure): Added.

	* cherokee/icons.h,
	cherokee/icons.c (cherokee_icons_read_config_file,
	cherokee_icons_read_config_string): Removed.

2006-04-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/main_admin.c, cherokee/Makefile.am: Added file to build
	the administration server.

	* cherokee/config_node.c, cherokee/config_node.h: Added new class.

	* cherokee/cherokee_admin.c, cherokee/Makefile.am:
	cherokee_admin.c renamed to cherokee/cherokee_show.c

	* admin, admin/Makefile.am, configure.in: Added new directory to
	hold the admin interface sources.

	* cherokee/virtual_server.h, cherokee/virtual_server.c: A few
	buffers are now embedded rather than pointers.

2006-04-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_gethostbyname): Fixes segfault.

	* configure.in, cherokee/Makefile.am: Added compilation stuff for
	handler proxy.

2006-04-01  Cesar Fernandez Gago  <cesar@alobbs.com>

	* handler_proxy.c, handler_proxy.h: Added new handler.

2006-04-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>
	
	* cherokee/connection.c (get_host): Little clean up.

	* cherokee/handler_error.c (build_hardcoded_response_page): It was
	missing a break. Patch by Philip Pemberton <philpem@dsl.pipex.com>

2006-03-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.spec.in: Fixed extra space. Reported by
	rui.lapa@ruilapa.net

2006-03-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_envp):
	Under some circumstances it was trying to access NULL. Fixed by
	olivier-ml1@oleastre.be

2006-03-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/ext_source.c (cherokee_ext_source_spawn_srv): Cleaned
	up. olivier-ml1@oleastre.be reported problems compiling on Win32
	because of a bunch of includes I forgot after some tests.

	* cherokee/buffer.c (cherokee_buffer_print_debug): Improved by
	olivier-ml1@oleastre.be.

2006-03-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fcgi.c (cherokee_handler_fcgi_free): Memory
	leak. Fixed.

	* cherokee/header.c (cherokee_header_parse): Partially
	rewritten. It should be slightly faster.  Some headers were added
	as known as well.

	* qa/134-HTTP_headers.py: New test to check HTTP_* headers inside
	in cgi_base based handlers.

	* cherokee/header.h, cherokee/header.c,
	cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	From now on, "Cookie: " is a known header.

	* qa/042-Pipelining.py, qa/043-Pipelining2.py: Fixed. It was using
	"Connection-type: " instead of "Connection: "

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Added HTTP_ACCEPT header.

	* cherokee/socket.c: fd 0 is okay.  Fixed.

2006-03-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c, cherokee/handler_cgi_base.h,
	cherokee/ext_source.c, cherokee/read_config_grammar.y,
	cherokee/handler_fcgi.c: Many things fixed here.  Some
	environment variables were fixed. New code to signal the FastCGI
	that it is certainly a Fastcgi, and some clean up.

2006-03-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fcgi.c (process_package): Quite important bug
	fix. It wasn't taking in consideration the padding when it was
	checking if the fastcgi package was big enough to be processed.

2006-03-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Added some aditional headers: HTTP_IF_RANGE,
	HTTP_IF_MODIFIED_SINCE, HTTP_AUTHORIZATION and
	HTTP_ACCEPT_ENCODING.

	* cherokee/read_config_scanner.l,
	cherokee/read_config_grammar.y (fix_win32_path): The space
	character wasn't allowed in Win32 paths. Fixed. Patch by
	olivier-ml1@oleastre.be

	* cherokee/header.h, cherokee/header.c: Losing some fat..
	cherokee_header_foreach() removed.

	* cherokee/header.h, cherokee/header.c,
	cherokee/handler_file.c (check_cached): Yet another header
	promoted to known: "If-Modified-Since"

	* cherokee/handler_file.c (check_cached): Fixed. "If-None-Match"
	is a known header, I made this change yesterday.

	* cherokee/header.h, cherokee/header.c (cherokee_header_parse),
	cherokee/connection.c: "Authorization" promoted to known header.

	* cherokee/logger_w3c.c: Removed a static method array that was
	used to look up the name of the http method used in the
	connection.  Now, it uses cherokee_http_method_to_string().

	* cherokee/handler_cgi_base.c, cherokee/validator.c,
	cherokee/thread.c, cherokee/handler_file.c, cherokee/header.c,
	cherokee/header.h, cherokee/handler_fcgi.c,
	cherokee/handler_fastcgi.c, cherokee/logger_ncsa.c,
	cherokee/handler_error.c, cherokee/handler_cgi.c,
	cherokee/connection.c, cherokee/logger_w3c.c,
	cherokee/connection-protected.h: con->header is no longer dynamic,
	now it is embedded inside the connection object.

	* cherokee/connection-protected.h, cherokee/connection.c,
	cherokee/handler_cgi_base.c, cherokee/handler_dirlist.c,
	cherokee/thread.c, cherokee/handler_file.c,
	cherokee/logger_ncsa.c, cherokee/handler_error.c,
	cherokee/connection_info.c, cherokee/url.c: Now conn->socket is
	embedded inside connection. It does not logger use a _new/_free
	object.

	* cherokee/icons.c (cherokee_icons_get_icon): It was using a case
	sensitive search for the extension, but it does much more sense to
	do a case insensitive search. Changed.

	* cherokee/table.h, cherokee/table.c (cherokee_table_init_case):
	Added new method. If performs searches on the tree using
	strcasecmp rather than strcmp.

2006-03-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am: Applied a patch to compile Win32 modules,
	by olivier-ml1@oleastre.be

	* configure.in: Added check for the getopt.h header file.

	* cherokee/handler_redir.c, cherokee/handler_server_info.c,
	cherokee/handler_dirlist.c, cherokee/handler_file.c,
	cherokee/handler_error.c, cherokee/connection.c: Some clean up.
	There were many cherokee_buffer_add() calls with hardcoded
	lengths.  I have changed them for cherokee_buffer_add_str calls.

	* cherokee/handler_file.c (check_cached): Fixed to work with
	If-Range as a known header.

	* cherokee/header.c (cherokee_header_parse): Little hack to
	slightly speed up the header parsing.

	* qa/133-If-None-Match.py, qa/Makefile.am: Added new test. It
	checks the HTTP_IF_NONE_MATCH.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Now it adds HTTP_IF_NONE_MATCH.

	* cherokee/header.h, cherokee/header.c (cherokee_header_parse):
	Added support of If-Range and If-None-Match headers.

	* cherokee/buffer.c (cherokee_buffer_drop_ending): Added a little
	sanity check. It isn't possible to drop negative amounts.

	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Bug fix.  It was setting SERVER_NAME twice.

	* cherokee/module.h, cherokee/validator_plain.c,
	cherokee/read_config_grammar.y, cherokee/validator_htpasswd.c,
	cherokee/validator_htdigest.c, cherokee/validator_pam.c: Added a
	check in the configuration parser to ensure that the
	authentification method are supported by the validators. It closes
	bug #55.
	
	* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
	Bug fix.  It was setting the SERVER_NAME variable with the colon
	and the port number.  Patch by olivier-ml1@oleastre.be

2006-03-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/132-file-ContentType.py: Added another QA probe. It tests
	that the Content-Type header is sent properly.

	* qa/131-ChangeUser-phpcgi.py: Added new test. It checks the
	ChangeUser property of the phpcgi handler.

	* qa/130-Digest-EmptyPasswd.py: Added new test to ensure Digest
	authentication works with emtpy passwords.

	* cherokee/handler_fcgi.c, cherokee/handler_fcgi.h: Added new
	handler.  It implements a very basic FastCGI protocol.. a so small
	subset of the original spec that is even supported by the brain
	death implementation of the PHP interpreter.

	* qa/129-Basic-EmptyPasswd.py: Added new test case to ensure
	previous bug is fixed.

	* cherokee/validator_plain.c (cherokee_validator_plain_check): Bug
	fix.  It was crashing it the password provided by the client was
	emtpy.

	* qa/040-Auth-Basic2.py: The Base64 string is not longer hardcoded

2006-03-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.h, cherokee/socket.c (cherokee_socket_init,
	cherokee_socket_mrproper): Added new methods.

2006-02-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py: Added new option -f to disable PHP/FastCGI in
	the QA tests. By default it's enabled.

	* cherokee/handler_fastcgi.c (send_post): Post greater than 64k
	were broken. Now, it splits the post in smaller FCGI packages in
	order to be able to send it all.

	* cherokee/post.c, cherokee/post.h (cherokee_post_walk_finished):
	Added new function.

	* cherokee/handler_file.h, cherokee/handler_file.c: Fixes "IOCache
	off".

2006-02-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (cherokee_thread_close_polling_connections):
	New function.

2006-02-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (process_active_connections): Fixed
	lingering close related bug.

2006-02-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_embedded.c, cherokee/handler_common.c,
	cherokee/handler_file.c, cherokee/Makefile.embedded: There were
	some problems with the IOCache in the embedded version.  This patch
	fixes them.

	* cherokee/read_config_embedded.c (cherokee_embedded_read_config):
	I must use the default handler entry in the virtual server
	structrure rather than the "/" directory.  Fixed.

	* config.h.win32: Patch by Gisle Vanem <giva@bgnett.no>

2006-02-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fastcgi.c (send_post): Oops! I forgot to
	implement the POST. O:-)

	* cherokee/socket.c: A few little problems were fixed.

2006-02-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (fork_and_execute_cgi_win32): A few bugs
	were fixed.

	* cherokee/handler_redir.h, cherokee/handler_redir.c: is_hidden
	must be a property of each regex entry rather than a global
	property to the handler. It fixes bug #42.

2006-02-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/122-Methods.py: There were some wrong paths in these
	requests. Fixed.

	* qa/128-ValidMethod-common.py, qa/Makefile.am (EXTRA_DIST): Added
	a new test case to cover the previous bug fix.

	* cherokee/handler_common.c: valid_methods should be
	http_all_methods.  This handler relays in other ones, so the final
	handler should be the one which checks it.

2006-02-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y: A few checks for Win32 paths
	were added.

2006-02-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.nsi, configure.in: Added new file

	* handler_gnomevfs.h handler_gnomevfs.c, cherokee/Makefile.am,
	configure.in: Gnome-VFS stuff removed.  We are no longer
	supporting it.

2006-02-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y (fulldir): The grammar now uses
	the rule fulldir instead of the T_FULLDIR token. This has allowed
	me to fix up the paths on Windows.

2006-02-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/macros.h: Added SLASH macro.

	* cherokee/fdpoll.c (cherokee_fdpoll_new): If it has Win32 select,
	don't try to use the common select as well.

	* configure.in: Added check for the new Win32 select.

	* cherokee/fdpoll-win32.c, cherokee/Makefile.am,
	cherokee/fdpoll.c (cherokee_fdpoll_new, cherokee_fdpoll_best_new):
	Added new I/O backend for Windows.

	* cherokee/fdpoll.c (cherokee_fdpoll_has_method): Removed.

	* cherokee/win32_misc.c (win_init): Added atexit to call
	WSACleanup().  Is it really needed? I have no idea!

2006-01-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_misc.c (win_dlopen): Patch for dlopen(NULL) on
	Windows. By Gorka Eguileor Gimeno <gorka@eguileor.com>

	* qa/126-SCGI.py, qa/127-SCGI-Post.py, qa/Makefile.am: Added new
	couple of QA tests for SCGI.

2006-01-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/ext_source.h, cherokee/ext_source.c: Many changes to
	share code between the FastCGI and SCGI handlers.

	* cherokee/handler_cgi.c, cherokee/handler_cgi.h: This handler is
	now based on handler_cgi_base.

	* cherokee/handler_cgi_base.c, cherokee/handler_cgi_base.h: New
	class.  It is the base for the handler CGI and SCGI.

	* cherokee/handler_cgi.h, cherokee/handler_cgi.c,
	cherokee/Makefile.am: New handler for SCGI!
	
2006-01-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cget/main.c (do_download__has_headers): It has to use strrchr()
	instead of rindex(). Fixed.

	* cherokee/server.c (initialize_server_socket6,
	initialize_server_socket4): Socket #0 is okay. The check was
	wrong.

	* cherokee/macros.h (CHEROKEE_EXPORT): New macho for Win32
	defining __declspec(dllexport).

	* cherokee/module_read_config.c (read_config_file): Use
	CHEROKEE_EXPORT.  The server has to be able to discover this
	symbol at run time.  In Win32 it is mandatory to use a flag for
	this.
	
	* cherokee/win32_misc.h, cherokee/win32_misc.c (sleep):
	Implemented sleep() system call for Win32.

	* cherokee/handler_dirlist.c (generate_file_entry): User PATH_MAX
	is _PC_NAME_MAX is undefined (in Win32).

	* cherokee/ncpus.c: Don't use this function in Win32.  There is
	port on win32_misc.c.

2006-01-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_accept_fd): 0 is a valid file
	descriptor. There is no problem if accept() returns it. Fixed. It
	fixes bug #12: http://www.0x50.org/bugs/ticket/12

	* cherokee/util.c (cherokee_trace): Now, it can log the debugging
	information in syslog.  It is handy for debugging the server when
	it has been launched as a daemon (-b switch).

	* cherokee/util.c (cherokee_estimate_va_length): Added support for
	%p entries.

2006-01-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* http-cherokee.xml: Added SMF support, by Rodrigo
	Fernandez-Vizarra <rfdzvizarra@yahoo.ie>

	* SUNWcherokee.spec: Updated. by Rodrigo Fernandez-Vizarra
	<rfdzvizarra@yahoo.ie>

	* contrib/cherokee: Bugfix by Alex del Pozo Peralta
	<jdep0016@almez.pntic.mec.es>

2006-01-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y (pidfile), cherokee/server.h,
	cherokee/server.c (cherokee_server_write_pidfile),
	cherokee/main.c (common_server_initialization): Now it writes down
	the pid file after forking as a daemon.

2006-01-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_connect): Now there are two
	cases for the connect call: with and without IPv6.  Solaris was
	failing (EINVAL) because the last argument (the size) was too big.

	* cherokee/macros.h: CHEROKEE_FUNCTION_NAME macro removed in favor
	of the C99 __func__ variable.

	* configure.in: Added checks for __func__ and __FUNCTION__.

	* qa/067-PathInfo.py: Added a comment about a bug in the current
	version of PHP5 which affects this test.

	* qa/066-DirectoryIndex3.py (Test.Prepare, Test.Precondition): It
	wasn't using the Interpreter entry in the test configuration. It
	is mandatory for the tests. Fixed.

	* cherokee/handler_phpcgi.c (cherokee_handler_phpcgi_new): Fixed a
	potential SEGFAULT printing the error message.

	* qa/run-tests.py (mainloop_iterator): Little fix. It was failing
	to test the preconditions in quiet mode (-q).

	* qa/045-Home2.py (Test.Precondition): There was a little typo
	here: f.close rather f.close(). It wasn't closing the descriptor.

	* configure.in, cherokee/socket.c: Added a check for systems with
	a broken version of setsockopt (SO_RCVTIMEO): SO_RCVTIMEO is
	defined but unimplemented.

	* cherokee/buffer.c (cherokee_buffer_escape_html): It was an out
	by one here. Seems to be fixed now.

	* cherokee/util.c (cherokee_short_path): After each removed block
	it was coming back too much, which in some cases was causing it go
	out of the buffer. Fixed.

	* cherokee/handler_cgi.c (parse_header): It should access directly
	to conn->header_buffer. There is a local variable called "buffer"
	for that. Actually, it is the same buffer, but it is cleaner in this
	way.

	* qa/run-tests.py: Now the -d option (pause for attach a debugger)
	accepts a number as argument.. it is really handy :-)

	* configure.in: poll() took over port event in Solaris time ago,
	but the configure information wasn't showing it like that.

2006-01-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_redir.c, cherokee/virtual_server.c,
	cherokee/virtual_server.h, cherokee/config_entry.c,
	cherokee/config_entry.h, cherokee/read_config_grammar.y,
	cherokee/thread.c, cherokee/connection.c, cherokee/dirs_table.c,
	cherokee/connection-protected.h, configure.in,
	qa/117-DomainToDir.py, qa/124-DomainToDir2.py, qa/Makefile.am,
	qa/123-ImplicitRedit.py, qa/base.py, qa/115-Respin.py: This big
	commit targets a healthier dirs_table and web_directory
	management.  It adds a new default handler entry in each virtual
	host, and takes care about redirect the requests that are equal to
	any the directory entries if it don't end with a slash.  This
	patch has also changed the way in which the directories are stored
	in the table: now they never end with a slash.  A positive side
	effect of this is that it will do less look-ups in each request.
	
	* cherokee/icons_grammar.y: Fixed shift/reduce conflict.  Reported
	by Rodrigo Fernandez-Vizarra <rfdzvizarra@yahoo.ie>.  This fix
	allows to generate the scanner using Lex (in addition to Flex).

	* cherokee/handler_dirlist.c (generate_file_entry): Bugfix.  It
	was using _PC_NAME_MAX like a constant with the maximun length
	rather than call to pathconf(). It was causing a Segment Fault on
	OpenSolaris.

2006-01-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_gethostbyname): Wrong
	conditional compilation entry fixed.  Patch by
	olivier-ml1@oleastre.be

	* 0.4.30 released

2006-01-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am (EXTRA_DIST): Changed the old Blastwave compilation
	scripts for a CBE spec file (by Damien Carbery)

	* cherokee/handler_file.c (cherokee_handler_file_add_headers):
	uCherokee compilation fix.

	* cherokee/typed_table.h,
	cherokee/typed_table.c (cherokee_typed_table_set_free): Added new
	function.

	* configure.in: Added tar-ustar to AM_INIT_AUTOMAKE. It doesn't
	need to create tar v7.

	* cherokee/fcgi_manager.c (process_buffer): strndup() is
	unimplemented in both OpenSolaris and BSDes. I have replaced the
	code which was using strndup() with a couple of calls to the
	cherokee_buffer_*() API.

	* configure.in: It uses printf rather than echo and sed in order
	to fix a compilation problem in OpenSolaris and BSD machines:
	http://www.0x50.org/bugs/ticket/10
	
2006-01-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_trace): Small improvement. I was
	calling getenv many times if the TRACE_ENV variable wasn't set.
	Now, it does it only once.

	* cherokee/fcgi_manager.c (connect_to_srv): Now the socket opened
	to the FastCGI is set in non-blocking mode.

	* cherokee/handler_fastcgi.c (cherokee_handler_fastcgi_step,
	cherokee_handler_fastcgi_add_headers): Integrated with the
	connection polling list.

2006-01-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fastcgi.c (cherokee_handler_fastcgi_add_headers):
	If the connection could write the request to the server, but it
	has a ret_error trying to read the reply, it means it must launch
	a new one.

	* cherokee/fcgi_manager.c, cherokee/fcgi_manager.h,
	cherokee/read_config_grammar.y, cherokee/fastcgi-common.c,
	cherokee/fastcgi-common.h, cherokee/handler_fastcgi.c,
	cherokee/handler_fastcgi.h: Added support for setting environment
	variables on the FastCGI process.

	* cherokee/fastcgi-common.c (cherokee_fcgi_server_add_env): Added
	new function.

	* cherokee/handler_fastcgi.c, cherokee/fcgi_manager.c, ,
	cherokee/fcgi_manager.h: Some FastCGI fixes by Mohammad DAMT.

	* cherokee/handler_fastcgi.h,
	cherokee/handler_fastcgi.c (add_more_env): Added "Env" support.
	It allows to add custom environment variables just like the CGI
	handler.

2006-01-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/http.c (entry): There was a memory corruption problem
	here. It came from the commits done yesterday.

	* mime.compression.types.sample, Makefile.am (uninstall-local,
	install-data-local): Added mime.compression.types.sample
	containing the mime types we want the server to send but not
	really MIME types but compressors.

	* cherokee/read_config_grammar.y, cherokee/handler_file.c,
	cherokee/Makefile.am, cherokee/mime.c, cherokee/mime.h,
	cherokee/server-protected.h, cherokee/module_read_config.c,
	cherokee/read_config_scanner.l, cherokee/cherokee.h,
	cherokee/server.c, cherokee/mime_entry.c, cherokee/mime_entry.h,
	mime.types.sample: Now it reads the format of the /etc/mime.types
	file.  It also accepts a new configuration entry in the main
	grammar: MimeType to replace the old functionality.  This big
	change shouldn't generate any kind of regression, besides the fact
	the configuration file format has changed slightly.

	* mime.conf.sample, cherokee/mime_grammar.y,
	cherokee/mime_scanner.l: Removed.
	
2006-01-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_get_request),
	cherokee/thread.c (process_active_connections): It must use
	http_method_with_input() instead of the checking with http_post.

	* qa/122-Methods.py, qa/Makefile.am (EXTRA_DIST): New test to
	check non common methods.

	* cherokee/handler_redir.c, cherokee/handler_error_redir.c,
	cherokee/handler_server_info.c, cherokee/handler_admin.c,
	cherokee/handler_dirlist.c, cherokee/handler_nn.c,
	cherokee/handler_common.c, cherokee/config_entry.c,
	cherokee/module.h, cherokee/config_entry.h, cherokee/thread.c,
	cherokee/handler_file.c, cherokee/handler.c, cherokee/handler.h,
	cherokee/handler_fastcgi.c, cherokee/http.c,
	cherokee/handler_gnomevfs.c, cherokee/http.h,
	cherokee/logger_ncsa.c, cherokee/handler_cgi.c,
	cherokee/connection.c, cherokee/server.c,
	cherokee/handler_phpcgi.c, cherokee/logger_w3c.c,
	cherokee/connection-protected.h: It will check if the used HTTP
	method is valid. Each handler has an entry describing which ones
	are allowed.

	* qa/base.py (TestCollection): New class

	* cherokee/http.h (http_method_with_input): Added new macro. Now
	http_post isn't the only method with input.

	* cherokee/http.h: Added new http error: 405, method not allowed.
	We will need it from now on.	

2006-01-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_short_path): There was an out by one
	here. In some situations, it was reading one byte outside the
	reserved memory. It is now fixed.

	* cherokee/util.h, cherokee/util.c (cherokee_get_timezone_ref):
	timezone is long, not int.

	* cherokee/header.c (parse_request_first_line, parse_method):
	Added a bunch of methods.  Now it should be able to parse WebDAV
	requests.

	* cherokee/http.c (cherokee_http_method_to_string,
	cherokee_http_version_to_string): Rewritten.

	* configure.in: Added a new check for the localtime localtime_r
	functions.

	* cherokee/util.h, cherokee/util.c (cherokee_localtime,
	cherokee_get_timezone_ref): Added new functions.

	* cherokee/server.c (update_bogo_now): Fixed, now it sends the
	header with the right GMT value. Until now, it was using the
	coverted time to GMT (which was the same time, but it is a kind of
	weird to be in GMT+1 and reply header like being in GMT).

	* cherokee/logger_w3c.c (cherokee_logger_w3c_write_access)
	(cherokee_logger_w3c_write_error),
	cherokee/logger_ncsa.c (build_log_string): Integrated with
	cherokee_localtime() and cherokee_get_timezone_ref() functions.

2006-01-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fastcgi.c (fixup_padding): It keeps track of
	the last header package. In this way, it doesn't need to parse the
	buffer header in order to set the padding length.

2006-01-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_get_request),
	cherokee/thread.c (process_active_connections): If UserDir is
	unset it should manage requests starting by /~ like common
	requests. Fixed.

	* qa/121-NoUserDir.py, qa/Makefile.am: New test: "If UserDir isn't
	set, it should threat ~ as a common character"

	* cherokee/connection.c (cherokee_connection_get_request): There
	was an error in the UserDir redirections. 

	* www/Makefile.am (install-data-local): Little bugfix.

	* cherokee/handler_fastcgi.c (fixup_padding): Applied path by
	Mohammad DAMT <mdamt@gnome.org>. The padding entry of the last
	packet was set to zero (which was incorrect in 7 of 8 cases).

2006-01-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* www/Makefile.am: It shouldn't overwrite /var/www/index.html if
	it already exists. Fixed.

2006-01-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, cherokee_replace.c, cget/main.c,
	cherokee/win32_misc.c, cherokee.spec.in,
	cherokee/read_config_grammar.y, cherokee/logger_w3c.h,
	cherokee/handler_redir.c, cherokee/fcgi_manager.c,
	cherokee/handler_redir.h, fcgi_manager.h,
	cherokee/read_config_embedded.c, cherokee/handler_error_redir.c,
	module_loader.c, cherokee/handler_server_info.c,
	cherokee/read_config_embedded.h, module_loader.h,
	cherokee/fdpoll.c, cherokee/handler_error_redir.h,
	cherokee/dict.c, handler_server_info.h, cherokee/fdpoll.h,
	cherokee/handler_admin.c, cherokee/dict.h, handler_admin.h,
	cherokee/resolv_cache.c, cherokee/fdpoll-select.c,
	cherokee/admin_request.c, access.c, cherokee/resolv_cache.h,
	cherokee/admin_request.h, cherokee/access.h, handler_dirlist.c,
	cherokee/module_loader-protected.h, cherokee/handler_nn.c,
	handler_dirlist.h, cherokee/virtual_server.c,
	cherokee/handler_nn.h, virtual_server.h, cherokee/win32_misc.h,
	cherokee/handler_common.c, cherokee/module.c, config_entry.c,
	cherokee/request.c, cherokee/macros.h, cherokee/buffer_escape.c,
	fdpoll-epoll.c, cherokee/handler_common.h,
	cherokee/downloader-protected.h, module.h,
	cherokee/config_entry.h, cherokee/icons_scanner.l,
	cherokee/request.h, buffer_escape.h, cherokee/reqs_list.c,
	cherokee/validator_plain.c, cherokee/reqs_list.h,
	validator_plain.h, cherokee/fdpoll-poll.c, cherokee/validator.c,
	cherokee/encoder_table.c, validator.h, cherokee/exts_table.c,
	cherokee/encoder_table.h, cherokee/typed_table.c, downloader.c,
	cherokee/exts_table.h, cherokee/typed_table.h,
	cherokee/validator_htpasswd.c, downloader.h,
	cherokee/fastcgi-common.c, cherokee/validator_htpasswd.h,
	cherokee/thread.c, common-internal.h, cherokee/mime_scanner.l,
	cherokee/buffer.c, cherokee/regex.c, fastcgi-common.h,
	cherokee/thread.h, cherokee/fdpoll-protected.h,
	cherokee/handler_file.c, handler.c, cherokee/buffer.h,
	cherokee/regex.h, cherokee/encoder.c, cherokee/handler_file.h,
	handler.h, cherokee/main.c, cherokee/encoder.h,
	cherokee/handler_remote_control.c, cherokee/header.c,
	unix4win32.c, cherokee/ncpus.h, cherokee/cherokee_admin.c,
	cherokee/common.h, handler_remote_control.h, cherokee/header.h,
	cherokee/unix4win32.h, cherokee/session_cache.c, md5crypt.c,
	cherokee/encoder_gzip.c, cherokee/session_cache.h,
	cherokee/icons.c, cherokee/util.c, encoder_gzip.h,
	cherokee/handler_fastcgi.c, cherokee/http.c, cherokee/icons.h,
	handler_gnomevfs.c, cherokee/util.h, cherokee/handler_fastcgi.h,
	cherokee/http.h, handler_gnomevfs.h, cherokee/nonce.c,
	cherokee/fdpoll-port.c, cherokee/nonce.h, logger_ncsa.c,
	cherokee/post.c, cherokee/logger_table.c,
	cherokee/handler_error.c, admin_client.c, cherokee/mime.c,
	cherokee/table.c, cherokee/logger_ncsa.h, cherokee/post.h,
	logger_table.h, cherokee/list_ext.c, cherokee/handler_webcam.c,
	cherokee/handler_error.h, admin_client.h, cherokee/mime.h,
	cherokee/table.h, cherokee/handler_cgi.c, cherokee/list_ext.h,
	handler_webcam.h, cherokee/server-protected.h,
	cherokee/handler_cgi.h, cherokee_logrotate.c,
	cherokee/module_read_config.c, cherokee/icons_grammar.y,
	connection_info.c, cherokee/module_read_config.h,
	cherokee/fdpoll-kqueue.c, admin_server.c, cherokee/logger.c,
	cherokee/connection_info.h, cherokee/validator_htdigest.c,
	read_config_scanner.l, cherokee/admin_server.h,
	cherokee/mime-protected.h, table-protected.h, cherokee/logger.h,
	cherokee/header-protected.h, cherokee/matching_list.c,
	validator_htdigest.h, cherokee/cherokee.h,
	cherokee/matching_list.h, cherokee/iocache.c, match.c,
	cherokee/connection.c, cherokee/iocache.h,
	cherokee/list_merge_sort.c, cherokee/match.h, cgi.c,
	cherokee/url.c, cherokee/connection.h, cherokee/list_merge_sort.h,
	cherokee/server.c, handler_phpcgi.c, cherokee/cgi.h,
	cherokee/url.h, cherokee/dirs_table.c,
	cherokee/logger-protected.h, server.h, cherokee/handler_phpcgi.h,
	cherokee/dirs_table.h, cherokee/logger_combined.c,
	validator_pam.c, cherokee/mime_grammar.y,
	cherokee/logger_combined.h, reqs_list_entry.c,
	cherokee/validator_pam.h, cherokee/socket.c,
	cherokee/logger_w3c.c, connection-protected.h,
	cherokee/reqs_list_entry.h, cherokee/socket.h: Copyright notice
	updated.

	* doc/Makefile.am: Updated
	
2005-12-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/119-Dotdot2.py, qa/120-Dotdot3.py,
	qa/Makefile.am (EXTRA_DIST): Added two new tests to check the new
	"dot dot" parsing function.

	* cherokee/connection.c (cherokee_connection_get_request): Now it
	uses cherokee_short_path() rather than strcmp() and
	cherokee_buffer_remove_string().

	* cherokee/util.c (cherokee_short_path): New function.

2005-12-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/reqs_list_entry.h,
	cherokee/reqs_list_entry.c (cherokee_reqs_list_entry_new): Added
	ovector and ovecsize to store "Points to a vector of ints for
	result offsets".

	* qa/117-DomainToDir.py, qa/Makefile.am: Added new test.

2005-12-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c (read_header_file): Now, it accepts
	full paths in the HeaderFile parameter.

	* cherokee/read_config_grammar.y (handler_option T_HEADERFILE):
	Now it accepts "ID or path" lists instead of ID lists.

	* cherokee/handler_fastcgi.c (fixup_params, add_env_pair_2_params,
	add_env_pair_with_id): Now, parameter entries are added with the
	right ID, so there is no fix up needed beyond a basic padding
	check.

2005-12-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* m4/network.m4: Added new macro AC_ACME_SOCKADDR_UN

	* cherokee/win32_misc.c, cherokee/socket.h, cherokee/socket.c:
	Better W32 support. Patch by Gisle Vanem <giva@bgnett.no>
	
2005-12-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_fastcgi.c (cherokee_handler_fastcgi_init): It
	is going to use just one connection for each FastCGI server instead
	of one per thread as I thought previously.

	* cherokee/regex.c (_add): Potential SegFault fixed.

2005-12-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libcherokee_server_la_SOURCES): Moved
	fcgi_managed.{c,h} to the library.

2005-12-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_get_req_entry): Fixed
	for the embedded version.

	* cherokee/util.c (cherokee_split_arguments): Fixed.

2005-12-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (handler_server_info): Added logo.inc to
	the handler code

	* cherokee/logo.inc: Logo updated.

2005-12-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/post.c (cherokee_post_walk_read): Fixed.

2005-12-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Updated ${srcdir}/cherokee/loader.init.inc
	generation.  Now it executes the module init function even if it
	is compiled statically.	

2005-12-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_new,
	cherokee_handler_cgi_init): Added support for ChangeUser.

	* cherokee/read_config_grammar.y (str_type): Added ChangeUser
	option.

	* cherokee/read_config_scanner.l, cherokee/read_config_grammar.y
	(T_IO_CACHE): Reserved word removed.

2005-12-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* m4/sendfile_samba.m4: --with-sendfile-support parameter fixed.

2005-11-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (cherokee_thread_new): Letf-hand
	thread->server casted with the SRV() macro.

	* cherokee/typed_table.c: There were some wrong casts in calling
	cherokee_typed_table_get()

	* cherokee/avl/avl.c: s/new/new_entry/g

	* cherokee/module.c, cherokee/module.h: Renamed "new" entry to
	"instance"

	* cherokee/list.h: Renamed new variables to new_entry

	* cherokee/handler_dirlist.c (generate_file_entry): Added a cast
	before malloc().

	* cherokee/resolv_cache.h: Added CHEROKEE_BEGIN_DECLS

	* cherokee/handler_redir.c (build_regexs_list): Renamed "new" to
	"new_regex", it was not compiling with a C++ compiler.

2005-11-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/run-tests.py (BOTTON_CONF), qa/068-PathInfo2.py,
	qa/115-Respin.py, qa/087-Location.py, qa/080-Extension2.py,
	qa/079-Extension.py, qa/072-Inherit3.py (Test.__init__): Added the
	PHPCGI_PATH.

2005-11-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c: Don't even define cherokee_trace() if
	TRACE_ENABLED is not enabled. Reported by Rodrigo
	Fernandez-Vizarra <rfdzvizarra@yahoo.ie>

	* cherokee/util.c: (cherokee_estimate_va_length),
	cherokee/handler_server_info.c: Fixed. Bug reported by Rodolfo
	Pilas <rodolfo@pilas.net>

2005-11-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/115-Respin.py: Added new test.

	* cherokee/reqs_list.c (cherokee_reqs_list_get): It does not use
	cherokee_header_get_request_w_args any longer, there was a problem
	here when a connection was respined.

	* cherokee/thread.c (process_active_connections): Moved request
	checking after extensions and directories. It will need to remove
	a previous web_directory assignement if a Request matches.

	* cherokee/connection.c (cherokee_connection_get_req_entry): It
	removes the content of web_directory if a Request entry is matched
	in the connection.

	* qa/113-HeaderFile.py (Test.__init__): Fixed, it shouldn't use
	the full path to the header file.

	* cherokee/macros.h (TRACE): Added new macro.

	* cherokee/util.c (cherokee_trace): Added new tracing function.

2005-11-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added --enable-trace parameter

2005-11-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/Makefile.am (EXTRA_DIST), qa/114-HeaderFile2.py: Added new
	test to ensure previous path works.

	* cherokee/read_config_grammar.y, cherokee/read_config_scanner.l,
	cherokee/handler_dirlist.h, cherokee/handler_dirlist.c
	(read_header_file): The dirlist handler now accepts a list on the
	HeaderFile parameter. It will use the first match as header.

	* cherokee/fdpoll-kqueue.c: Performance fix: it doubles the
	speed of the kqueue backend! Patch by Rodrigo Fernandez-Vizarra
	<rfdzvizarra@yahoo.ie>

	* configure.in: Added DragonFly entry in the host detection. Patch
	by Rodrigo Fernandez-Vizarra <rfdzvizarra@yahoo.ie>

	* qa/113-HeaderFile.py, qa/Makefile.am (EXTRA_DIST): Added new
	test.

	* cherokee/handler_server_info.c (server_info_build_page): Now it
	checks the server token parameter in order to show the server
	version.

2005-11-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.29 released 

	* cherokee/server-protected.h: Removed include_list property.

	* cherokee/read_config_scanner.l, cherokee/read_config_grammar.y:
	"Include" reserved word removed. It is no longer needed.
	
	* cherokee/module_read_config.c: Almost rewritten.  The inclusions
	are now managed in a more handy way.

	* cherokee/buffer.c (cherokee_buffer_read_file): Fixed. There was
	a consistency problem with the memory management.

2005-11-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c: Better POST management: now it moves the
	connection to the polling list if needed.

	* qa/run-tests.py: Addad new parameter -b.

	* cherokee/handler_cgi.c (cherokee_handler_cgi_init): Removed
	O_NONBLOCK property from cgi->pipeOutput.

2005-11-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/util.py (letters_random, str_random): Slightly optimized for
	a faster start time.

2005-11-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_ensure_size): size is now
	size_t type instead of int.

	* cherokee/buffer.h, cherokee/buffer.c
	(cherokee_buffer_ref_buffer): Removed.

	* cherokee/buffer.h, cherokee/buffer.c
	(cherokee_buffer_swap_buffers): Added new method.

	* cherokee/buffer.h (cherokee_buffer_is_empty): Added a macro to
	replace the function.

	* cherokee/buffer.c (cherokee_buffer_is_empty): Removed.

2005-11-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_new),
	cherokee/handler_cgi.h, cherokee/read_config_grammar.y: Added
	support to error handling in the CGI module.  It can be defined
	using the option "ErrorHandler on".

	* qa/112-NiceError-CGI.py: Added new QA test.

2005-11-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* sites-default.sample.pre: Updated.

2005-11-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/header.c (cherokee_header_get_request_w_args): Added
	new function.

	* qa/107-Priority1.py, qa/108-Priority2.py, qa/109-Priority3.py,
	qa/110-Priority4.py, qa/Makefile.am: Added new tests to check
	priorities.

	* cherokee/config_entry.c (cherokee_config_entry_complete): Now it
	implements priority between Directory, Extension and Request
	entries. Last defined entry wins.

	* qa/079-Extension.py, qa/080-Extension2.py: Fixed precedence.

2005-11-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_get_request): Little
	test order change.

	* cherokee/config_entry.h, cherokee/read_config_grammar.y
	(config_entry_new): Added priority support for prioroties.

	* cherokee/config_entry.h, cherokee/config_entry.c:
	dirs_table_entry.h and dirs_table_entry.c have been renamed.

	* cherokee/handler_file.c (check_cached): Added support for
	If-Range headers.

	* qa/105-If-Range.py, qa/106-If-Range2.py, qa/Makefile.am
	(EXTRA_DIST): Added to two tests to check the support of the
	"If-Range:" header from HTTP/1.1.

2005-10-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/post.c (cherokee_post_walk_to_fd): bugfix. It must
	return ret_eagain if there is some remaining information waiting
	to be sent.

	* cherokee/regex.h, cherokee/regex.c (cherokee_regex_table_add):
	Added new method.

2005-10-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_free): Bugfix,
	close file descriptors only if it is greater than zero.

	* cherokee/socket.c (cherokee_socket_set_timeout): Removed call to
	setsockopt with SO_SNDTIMEO. That side of the socket is already
	closed.

	* cherokee/thread.c (purge_maybe_lingering,
	process_active_connections): Added a new function to purge (and
	maybe perform the lingering close) a connection from the active
	connection list.  The error management of the error situations of
	the loop call to purge_closed_connection instead of launching the
	lingering close phase.

	* cherokee/socket.c, cherokee/connection.c
	(cherokee_connection_pre_lingering_close): Error management
	improved. Now it checks if there was some error in the ioctl
	calls.

2005-10-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c (cherokee_handler_dirlist_step): It
	should print the version number only if "ServerTokens" was set to
	"Full", otherwise it should just show the port number. Reported by
	Mark Nipper <nipsy@bitgnome.net>

	* cherokee/dirs_table_entry.c, cherokee/dirs_table.c,
	cherokee/connection.c: The property table which was inside the
	dir_table_entry struct has been splitted in two:
	handler_properties and validador_properties.

	* cherokee/thread.c (process_active_connections): Do not use
	lingering close on keep-alive connections.

2005-10-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/104-ScriptAlias_PathInfo.py: Added new test to ensure
	previous problem is fixed.

	* cherokee/handler_cgi.c (_extract_path): Added support for
	PathInfo in ScriptAlias'ed configurations.

	* cherokee/handler_cgi.c (build_envp): Now, the user defined
	variables have precedence over the server's ones.

	* cherokee/fdpoll.c (cherokee_fdpoll_best_new): The poll method
	has taken over BSD kqueue and Solaris port event. In the real life
	it is faster.

	* qa/061-PAM.py (Test.Precondition), qa/062-PAM2.py
	(Test.Precondition): Added a try: except: block to ensure it does
	not fail if Cherokee is not installed on /usr and the conf.py is
	untouched.

	* cherokee/Makefile.am: Some yacc parameter were displaced. It was
	working with GNU bison, but it was failing with byacc. Patch by
	Tim Wilde <twilde@dyndns.com>

	* mods-admin.sample: It wasn't using the Name entry. Reported by
	John Hampton <cherokee@pacopablo.com>

	* qa/103-ScriptName.py, qa/Makefile.am (EXTRA_DIST): Added new
	test.

	* cherokee/cgi.c (cherokee_cgi_build_basic_env): Set REMOTE_USER
	even if it is empty.  Trac was also expecting to read it.. These
	problems have been reported by John Hampton
	<cherokee@pacopablo.com>

	* cherokee/handler_cgi.c (build_envp): Fixed SCRIPT_NAME variable.
	Trac was failing because it wasn't properly set.

2005-10-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: 0.4.28 released

	* autogen.sh (LIBTOOL, LIBTOOLIZE): Define two variables for the
	name of these utilities.  MacOS X has a different name for it.
	Patch by Sbastien Arnaud <arnaudsjr@mac.com>

2005-10-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, cherokee/macros.h (CST_OFFSET): Fixed a off_t size
	issue in MacOS X. Patch by Marko Mikulicic <marko@autistici.org>

	* configure.in: Fixed FreeBSD/OpenBSD compilation. It needed
	-pthread in the LDFLAGS.

	* Makefile.am (EXTRA_DIST): Removed config.h.mingw

	* cherokee/thread.c (process_active_connections): Removed calls to
	cherokee_iocache_mmap_release(), it will be fred on
	cherokee_connection_clean().  It is safer in this way.

	* cherokee/connection.c (cherokee_connection_clean): It checks for
	an IOCache entry reference in order to free it at this point.

	* cherokee/thread.c (process_active_connections): If
	cherokee_connection_pre_lingering_close() returns ret_eagain it
	will set the connection in read mode.

2005-10-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* config.h.win32: Added some new definitions. Patch by Gisle Vanem
	<giva@bgnett.no>

	* config.h.mingw: Removed, it is not longer needed.

	* cherokee/cgi.c (cherokee_cgi_build_basic_env): Added
	HTTP_REFERER header.  Wordpress was failing to perform certain
	operation due to this problem.  Reported by Rodolfo Pilas.

2005-10-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (process_handler_complex_headers):
	Removed.

	* cherokee/cgi.c (cherokee_cgi_build_basic_env): Added HTTPS
	variable.

	* cherokee/handler_cgi.c (parse_header): Added new function. Now,
	hsupport_complex_headers is deprecated.  It is parsed inside the
	handler, no longer in the connection.

	* cherokee/buffer.c (cherokee_buffer_remove_chunk): Added new
	method.

	* qa/102-QueryString.py, qa/Makefile.am (EXTRA_DIST): Added new
	test in order to ensure QUERY_STRING is working.

	* cherokee/handler_redir.c (match_and_substitute): It wasn't
	storing the right petition in the log file. Reported by Kurt McKee
	<kurt@kurtmckee.org>

	* qa/Makefile.am (EXTRA_DIST), qa/101-HugePost.py: Added new QA
	test.

	* cherokee/post.c: Bug fixed.

2005-10-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/unix4win32.h (ENOTSOCK, EHOSTUNREACH): Some missing
	defines in this file. Patch by Gisle Vanem <giva@bgnett.no>

	* cherokee/main.c (process_parameters): Specifying a config-file
	has no effect in main.c when built with CHEROKEE_EMBEDDED.  Patch
	by Gisle Vanem <giva@bgnett.no>

	* cherokee/iocache.c (iocache_clean_up_each): Fixed a signess
	problem here.  It was an important issue.

	* cherokee/logger_ncsa.c (build_log_string): Bad casting
	fixed. Reported by Marko Mikulicic <marko@autistici.org>
	
2005-10-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/module.c (cherokee_module_get_name): return fixed.

	* cherokee/iocache.c (cherokee_iocache_free_default): __global
	renamed to global_io. Sun CC did not like it.

	* Makefile.am (COMPILATION_TESTS): Added debian_testing.sh and
	debian_testing_chroot.sh to extra dist.

	* cherokee/Makefile.embedded (OBJS): Fixed. It was not working
	from the changes of 2005-10-19.

	* cherokee/handler_server_info.c
	(cherokee_handler_server_info_new): It was outdated. I was trying
	to read a wrong structure and hence, it was providing random
	information. Reported by Borja <@softonic.com>

2005-10-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_file.c (cherokee_handler_file_add_headers):
	Content-Range header fixed. Patch by Mark Nipper
	<nipsy@bitgnome.net>.

2005-10-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_scanner.l, cherokee/read_config_grammar.y
	(port_tls), cherokee.conf.sample.pre: Added new configuration
	entry to configure the TLS port.

	* cherokee/handler_dirlist.c (generate_file_entry): Now it uses
	cherokee_readdir instead of readdir(). It was not thread safe.

	* qa/100-Digest-htdigest.py (Test.__init__): Changed name, it was
	too long.

	* cherokee/handler_cgi.c (cherokee_handler_cgi_init): Adapted to
	the new POST management class.

	* cherokee/post.c, cherokee/post.h: Added new class to manage POST
	information.

	* cherokee/validator.c (digest_A1): Removed. No longer needed.

2005-10-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (post_init): Rewritten using the post
	class.

	* cherokee/connection.c (cherokee_connection_get_request):
	Fixed. Some times, it was not replying with the right error code.

	* cherokee/post.h, cherokee/post.c: Added new class.

	* 0.4.27 released

	* cherokee/util.c: Added sys/filio.h in order to import FIONBIO
	for cherokee_fd_set_nonblocking()

	* cherokee/Makefile.embedded (OBJS): Added nonce.o and
	typed_table.o

	* cherokee/buffer.c (cherokee_buffer_encode_sha1_base64,
	cherokee_buffer_encode_sha1): It will compile on u-Cherokee.

	* cherokee/handler_file.c (cherokee_handler_file_init): Check if
	the request is a directory in order to deny the request.

	* cherokee/iocache.c (cherokee_iocache_mmap_get_w_fd): Fixed a
	concurrency problem which might cause some troubles.

2005-10-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.h (OPENSSL_LAST_ERROR): Fixed. It wasn't
	compiling because there was a parameter left on the call to
	ERR_error_string(). Reported by Cesar Fernandez.

2005-10-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/100-Digest-htdigest.py, qa/Makefile.am: Added new test unit.

	* qa/run-tests.py: Fixed to use three digit indexes.

	* qa/??-*py, qa/Makefile.am: Moved to three digits index. We are
	about to reach one hundred tests.

	* cherokee/validator_htdigest.c (validate_digest):
	Implemented. Now htpasswd works with Digest authentication.

2005-10-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator_htdigest.c (validate_basic,
	extract_user_entry): Rewritten. Now htdigest works with Basic
	authentication.

	* cherokee/logger_ncsa.c, cherokee/logger_w3c.c: There files now
	use cherokee_syslog() instead of syslog().

	* cherokee/util.c, cherokee/util.h (cherokee_syslog): Added new
	method to send information to syslog line by line, each one on a
	different call.

2005-10-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator_pam.c: Compilation was broken for this
	validator. Alexander Serkov <alexander.serkov@gmail.com> sent a
	patch for it.

	* cherokee.conf.sample.pre, sites-default.sample.pre:
	DirectoryIndex and DocumentRoot moved from cherokee.conf to
	site-default. Requested by Cesar Fernandez <cesar@pk2.org>

2005-10-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y (tuple): Bug fix.
	s/cherokee_table_add/cherokee_typed_table_add_str/. It was causing
	the logging system to use syslog() rather than a target file, even
	if it was configured for it.

	* cherokee/md5crypt.c (md5_crypt): Fixed to validate Apache MD5
	passwords.

2005-10-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (process_polling_connections): Actually I am
	not sure about this. If the connection is polling for an extra fd
	and it returns an error, it will clean the connection calling
	purge_closed_polling_connection() instead of re-queuing it with
	cherokee_thread_reactive_from_polling().

2005-10-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/94-URL-request.py: Added a new test case to test the proxy
	like requests.

	* cherokee/header.c (parse_request_first_line): Now, it accepts
	proxy like requests.

	* cherokee/util.h, cherokee/util.c (cherokee_crypt): Added new
	function.

	* cherokee/validator_htpasswd.c (validate_plain): Added support
	for plain text passwords inside htpasswd files.

	* cherokee/validator.c (cherokee_validator_parse_basic):
	Fixed. There was an error here which caused an incorret password
	length.

	* cherokee/util.c (cherokee_isbigendian): Added new function.

	* cherokee/buffer.c (cherokee_buffer_encode_base64): Rewritten.

2005-10-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_encode_base64): in and out
	are not unsigned. Fixed.

	* cherokee/connection.c (cherokee_connection_recv): Added switch
	case to manage ret_error value.

	* cherokee/socket.c (cherokee_read, cherokee_write): Added case
	for EHOSTUNREACH: No route to host

2005-10-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c, cherokee/socket.h, cherokee/virtual_server.c:
	Igor Sysoev <is@rambler-co.ru> has sent me a mail warning about an
	error on the OpenSSL management code.  He was right. I have added
	a new macro OPENSSL_LAST_ERROR in order to get the newer error
	instead of the older as we were doing.

	* cherokee/buffer.c (cherokee_buffer_decode_hex): Added new
	method.

	* cherokee/util.h: Added arpa/inet.h header.

2005-10-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (BUFFER_VA_LEN): removed. It is not longer
	needed.

	* cherokee/buffer.c (cherokee_buffer_encode_sha1_digest,
	cherokee_buffer_encode_sha1): Added a SHA1 encoding interface.

	* cherokee/connection.c
	(cherokee_connection_check_authentication): Added check to ensure
	the validator supports the authorization type.

2005-10-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_phpcgi.c (search_php_executable): Fixed to
	search the interpreter if it is not defined with the "Interpreter"
	configuration entry.  It will look for it in a couple of
	directories.

	* qa/93-InvalidLinks.py, qa/Makefile.am: Added a new QA to test
	the previous problem.

	* cherokee/handler_dirlist.c (generate_file_entry): Listing was
	failing if there was an invalid link inside the
	directory. Reported by Mark Nipper <nipsy@bitgnome.net>

2005-09-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator.c (cherokee_validator_digest_response):
	Digest authentication fixed.  (In 4to Festival de Software Libre,
	Puerto Vallarta, Mexico)

	* qa/90-Digest.py, qa/91-Digest2.py, qa/92-Digest3.py,
	qa/Makefile.am (EXTRA_DIST): Added new QA tests for Digest
	authentication.
	
2005-09-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_read): Added EBADF case.

	* cherokee/request.h: Included sys/types.h. It was not compiling
	on MacOS X. Patch by Tito Ciuro <tciuro@mac.com>

2005-09-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c, cherokee/connection.h,
	cherokee/connection-protected.h: Removed user, passwd and nonce
	buffers.

2005-09-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.h, cherokee/buffer.c (cherokee_buffer_cmp,
	cherokee_buffer_cmp_buf, cherokee_buffer_cmp_str,
	cherokee_buffer_case_cmp, cherokee_buffer_case_cmp_buf,
	cherokee_buffer_case_cmp_str): Added new methods.

	* cherokee/connection.c (get_host): Remove final dot in the host
	name if found.

2005-09-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.26 released

2005-09-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (build_server_string): It was reading an out
	of memory possition. Fixed.

	* qa/66-DirectoryIndex3.py (Test.JustBefore): It was failing
	executing more than one time in a row. Fixed.

	* cherokee/encoder_gzip.c: Almost rewrotten. 

2005-09-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/crc32.c (crc32_partial_sz): Added new.
	(crc32_sz): It now uses crc32_partial_sz().

2005-09-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/encoder.h, cherokee/encoder.c (cherokee_encoder_flush):
	Added new virtual method.

	* cherokee/encoder_gzip.h, cherokee/encoder_gzip.c
	(cherokee_encoder_gzip_new, cherokee_encoder_gzip_free): It was a
	memory problem here. Added workspace.

2005-09-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/header.c (cherokee_header_parse): "Accept-Encoding"
	must be before "Accept". Fixed.

	* cherokee/connection.c (post_init): It uses atol() instead of
	sscanf().

2005-09-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>
 
	* cherokee/regex.c (cherokee_regex_table_free): Call free rather
	than pcre_free.  It was failing to compile, and it is just a
	pointer to free.

	* cherokee/unix4win32.c (inet_aton): Added new function

	* cherokee/util.c (cherokee_fd_set_nonblocking): Added new function.

        * m4/etr_socket_nsl.m4: Detection implemented for Win32

2005-09-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_pre_lingering_close):
	Fixed a potential memory corruption bug.  It may try to write an
	int in to a NULL pointer.
	
	* cherokee/socket.c (cherokee_socket_close): Fixed a little which
	might cause a segment fault if a TLS connection gets a CGI timeout.

2005-09-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* build_solaris.sh.in: Rewritten. Now, it builds a package for
	blastwave instead of a package for Sunfreeware.  Tested on
	OpenSolaris (Nevada b20).

	* cherokee/handler_redir.c (cherokee_handler_redir_new): "url"
	property read fixed.

	* cherokee/handler_server_info.c: Fixed little compilation
	problem. It was including a deprecated header.

2005-08-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y, cherokee/read_config_scanner.l,
	cherokee/handler_cgi.c (cherokee_handler_cgi_new): Added "ENV"
	configuration entry to allow to define custon environment
	variables for the CGI.

2005-08-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_misc.h: Added fcntl.h header file. (by Gisle
	Vanem, giva@bgnett.no)

	* cherokee/handler_file.c (open_local_directory): It now use
	CHE_O_READ (by Gisle Vanem, giva@bgnett.no)

	* cherokee/macros.h (CHE_O_READ): Added O_BINARY to CHE_O_READ (by
	Gisle Vanem, giva@bgnett.no)

2005-08-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/61-PAM.py (Test.Prepare), qa/61-PAM.py (Test.Prepare): Pam
	module detection fixed.

	* cherokee/connection-protected.h: netinet/in.h has to be defined
	before arpa/inet.h

	* cherokee/read_config_scanner.l, cherokee/read_config_scanner.y:
	Removed some tokens: T_BGCOLOR, T_TEXT, T_LINK, T_VLINK, T_ALINK,
	T_BACKGROUND, T_HEADER_FILE, T_INTERPRETER, T_URL and T_FILEDIR.

	* configure.in: Added AC_CHECK_HEADERS for pwd.h, sys/select.h and
	sys/mman.h

	* cherokee/Makefile.am (CLEANFILES): Added clean.h

2005-08-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/win32_misc.c (cherokee_server_daemonize): Removed.

	* cherokee/Makefile.MingW.in (vclean): Remove dependency on
	libtidy.

2005-08-09  Gisle Vanem  <giva@bgnett.no>

	* cherokee/util.h: #ifdef for Win32 compilation.

	* cherokee/util.c (cherokee_readdir): typo fixed.

	* cherokee/util.c: #ifdef for Win32 compilation.

	* cherokee/url.c (cherokee_url_init): #ifdef for Win32 compilation.

	* cherokee/server.c: #ifdef for Win32 compilation.

	* cherokee/resolv_cache.c: #ifdef for Win32 compilation.

	* cherokee/module_loader.c: Only load dlfcn.h if it is not the
	embedded version.

	* cherokee/logger_ncsa.c: Added #ifdef for syslog.h.
	(open_output): ifdef for fcntl().

	* cherokee/levenshtein_distance.c (min): Renamed to _min().

	* cherokee/iocache.c: Added a couple of #ifdefs for header
	files.

	* cherokee/handler_dirlist.c: Added a couple of #ifdefs for header
	files.

	* cherokee/handler_cgi.c: Win32 compilation fixes.

	* cherokee/fdpoll-select.c: Added #ifdef for sys/select.h.

	* cherokee/buffer.c (cherokee_buffer_encode_base64): Removed
	#ifdefs to inhibit embedded version.

2005-08-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>
	
	* configure.in (cherokee_*_version_len): removed.

	* cherokee/cgi.c (cherokee_cgi_build_basic_env): It doesn't use
	PACKAGE_VERSION_LEN from automake any longer.

	* cherokee/server.c (build_server_string): It doesn't use *_LEN
	variables from automake any longer.

	* cherokee/nonce.c, cherokee/nonce.h: Added new class.

2005-08-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (cherokee_server_clean): Removed.

	* cherokee/dirs_table.c (cherokee_dirs_table_clean): Removed.

	* cherokee/virtual_server.c (cherokee_virtual_server_clean): Removed.

	* cherokee/logger_table.c (cherokee_logger_table_clean): Removed.

	* cherokee/encoder_table.c (cherokee_encoder_table_clean): Removed.

	* cherokee/regex.c (cherokee_regex_table_clean): Removed.

	* cherokee/iocache.c (cherokee_iocache_clean): Removed.

	* cherokee/icons.c (cherokee_icons_clean): Removed.

	* cherokee/exts_table.c (cherokee_exts_table_add): Fixed. It was
	addinf the entries to the list more than once.

2005-08-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/logger_ncsa.c (close_output): Fixed a jump depending on
	uninitialised value.

	* cherokee/module_loader.c, cherokee/module_loader.h: It is no
	longer a _new/_free class; converted to _init/_mrproper.

	* cherokee/Makefile.am (libcherokee_server_la_SOURCES):
	module_loader-protected.h removed.

	* cherokee/module_loader.c (get_sym_from_dlopen_handler): Little
	aesthetic fix.

	* cherokee/read_config_grammar.y (T_ONLY_SECURE): Message
	fixed. It wasn't a error but a warning.

	* cherokee/iocache.c (cherokee_iocache_free): Fixed, it was trying
	to free too much memory.

2005-08-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (cherokee_thread_new): Swaped from
	PTHREAD_CREATE_DETACHED to PTHREAD_CREATE_JOINABLE

2005-08-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/83-RedirParam.py: Added precondition of an installed version
	of PHP

	* cherokee/logger_w3c.c (cherokee_logger_w3c_new),
	cherokee/logger_ncsa.c (cherokee_logger_ncsa_init_base),
	cherokee/validator_htdigest.c (cherokee_validator_htdigest_new),
	cherokee/validator_htpasswd.c (cherokee_validator_htpasswd_new):
	Swapped to use type tables.

	* cherokee/validator_plain.c (cherokee_validator_plain_new): It
	uses the typed table mechanism, and PRINT_MSG.

	* cherokee/dirs_table_entry.c (cherokee_dirs_table_entry_free): It
	works with a typed_table instead of a table.

	* cherokee/read_config_grammar.y: Now it uses PRINT_MSG instead
	PRINT_ERROR.

	* cherokee/macros.h (PRINT_MSG, PRINT_MSG_S): Added new macros.

2005-08-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/list_ext.c (cherokee_list_free_item,
	cherokee_list_free_item_simple): Add new these two methods. Now,
	cherokee_list_free() uses cherokee_list_free_item()

	* cherokee/handler_server_info.c
	(cherokee_handler_server_info_new), cherokee/handler_phpcgi.c
	(cherokee_handler_phpcgi_new), cherokee/handler_error_redir.c
	(cherokee_handler_error_redir_new), cherokee/handler_dirlist.c
	(cherokee_handler_dirlist_new), cherokee/handler_cgi.c
	(cherokee_handler_cgi_new), cherokee/handler_common.c
	(cherokee_handler_common_new): Now, they use
	cherokee_typed_table_get_str() instead of cherokee_table_get()

	* cherokee/handler_dirlist.c (cherokee_handler_dirlist_new): A
	little bug has been fixed here. The "group" property was not
	working correctly.

	* cherokee/typed_table.c: Added new class.

2005-08-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/list.h (list_reparent): Added new function to reparent
	lists.

	* 0.4.25: Relased

2005-08-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cherokee_logrotate.1, cherokee/Makefile.am: Added new
	man page.

	* mods-admin.sample, Makefile.am (install-data-local,
	uninstall-local): Added new configuration file.

2005-08-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (initialize_tls_session): Allow anon TLS
	connections.

	* cherokee/socket.c (cherokee_socket_init_client_tls): Added
	implementation based on OpenSSL.

	* cherokee/util.c (cherokee_tls_init): Added new function.

2005-07-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/54-ContentRange.py, 55-ContentRange2.py, 56-ContentRange3.py,
	57-ContentRange4.py, 58-ContentRange-Double.py,
	59-ContentRange-Double2.py: Fixed to fit with the previous patch.

	* cherokee/handler_file.c, cherokee/header.c: Changed header
	"Content-Range" by "Range". Based on a path by Daniel Glckner
	<daniel-gl@gmx.net>

2005-07-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_common.c (stat_file): Integrated with the I/O
	cache layer.

2005-07-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y, cherokee/read_config_scanner.l,
	cherokee/handler_files.c: Added new parameter "IOCache".

2005-07-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.h, cherokee/server.c, cherokee/virtual_server.h,
	cherokee/virtual_server.c, cherokee/read_config_grammar.y:
	DocumentIndex has been converted from being a Server property to a
	Virtual server property.

	* qa/66-DirectoryIndex3.py: I've rewrote to fix some problems with
	the global DirectoryIndex.

	* cherokee/connection.c: Authentication problem fixed.

2005-07-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_shutdown,
	cherokee_socket_set_timeout): Added new methods

	* cherokee/thread.c (process_active_connections): Bug fix. There
	was a problem witht the header("Location:") PHP entries.

2005-07-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_encode_base64): u_int8_t ->
	cuchar_t

2005-07-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (process_handler_complex_headers): Handler
	with complex header post-processing works with the error handlers
	now (mainly the PHP and CGI handlers).

	* cherokee/util.h, cherokee/util.c (cherokee_gethostbyname): Added
	new function.

2005-07-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am, cherokee/resolv_cache.h,
	cherokee/resolv_cache.c: Added new revolv cache class.

	* cherokee/read_config_grammar.y: Error handlers are that the
	virtual servers level. Fixed.

	* configure.in: htpasswd compilation preconditions fixed.

2005-07-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, cherokee/module_loader.c (add_static_entry): There
	was a bug here. Memory inconsistency.

2005-07-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_encode_base64): Added new
	method.

	* cherokee/url.h, cherokee/url.c (cherokee_url_parse_ptr): Added
	user and password support.

	* cherokee/handler_dirlist.c (render_page_header): Bug fixed.

2005-07-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/85-AuthUsers.py, qa/86-AuthUsers2.py: Added two new QA tests.

	* qa/39-Auth-Basic.py (Test.Prepare): Removed handler.

	* cherokee/cherokee_logrotate.c: Added new utility to rotate log
	without turning the server off.

2005-07-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c, cherokee/server.h
	(cherokee_server_get_backup_mode,
	cherokee_server_set_backup_mode): Added new methods.

2005-07-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/logger.c (cherokee_logger_set_backup_mode): Added new
	method.

	* cherokee/logger.c (cherokee_logger_flush): It won't flush if the
	logger is on backup mode.

	* cherokee/logger.h, cherokee/logger.c, cherokee/logger_ncsa.h,
	cherokee/logger_ncsa.c, cherokee/logger_w3c.h,
	cherokee/logger_w3c.c: Added new method reopen().

	* 0.4.24 released

	* configure.in (SETENV_IS_THREADSAFE): Typo error fixed.

	* doc/Makefile.am (doc_DATA): Documentation updated.

2005-07-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c: Fixed acording to the previous change.

	* icons.conf.sample: "/icons/" removed from the icon entries.

2005-07-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_add_comma_marks): Added new
	method.

	* cherokee/connection-protected.h, cherokee/thread.c: Add
	connections ID.

2005-06-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/module.c, cherokee/module.h: Added new virtual method:
	get_name.

	* configure.in, cherokee/Makefile.am,
	cherokee/handler_remote_control.c,
	cherokee/handler_remote_control.h: Removed. It was a failed proof
	of concept.

	* cherokee/handler_file.c (cherokee_handler_file_step): It didn't
	update the transference counter.

2005-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/url.c: Now, it's a size known type.

2005-06-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_nn.c (get_nearest): A few fixes. A memory leak
	has been fixed. Now it is faster and less memory hungry.

	* cherokee/handler_redir.c (substitute_groups): Some memory
	corruptions problems have been sorted out.

02005-06-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.c (cherokee_readdir): Added new function.

2005-06-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/83-RedirParam.py, qa/84-RedirParamShow.py: New QA tests to
	cover the redir handler. Both internal and external redirection
	are covered by these tests.

	* cherokee/handler_redir.c (cherokee_handler_redir_add_headers):
	Bug fix. It was printing "Location:" twice.

	* cherokee/handler_redir.c: Some logic moved from _init to _new to
	allow internal redirections.

	* cherokee/util.c (cherokee_split_arguments): Added new function.

2005-06-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_redir.c (cherokee_handler_redir_new),
	cherokee/read_config_grammar.y (handler_redir_add_property):
	Changes in the internal string to store a 'show/hide' argument.

	* cherokee/handler_redir.c (substitute_groups): Now it uses a
	cherokee_buffer_t rather than a char[].

	* cherokee/read_config_grammar.y (T_QSTRING): Bugfix

2005-06-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cgi.c (cherokee_cgi_build_basic_env): Added user remove
	variable. Reported by bass@gentoo.org

2005-05-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-kqueue.c: Rewrited by Rodrigo Fernandez-Vizarra
	<rfdzvizarra@yahoo.ie>

	* cherokee/buffer.h (cherokee_buffer_add_str): Added
	cherokee_buffer_add_str macro.

	* configure.in, doc/*: Clean up. Integration of the wiki
	documentation.

2005-05-25  Rodrigo Fernandez-Vizarra  <rfdzvizarra@yahoo.ie>

	* cherokee/fdpoll-kqueue.c: Rewrited.

2005-05-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.23 released

	* cherokee/server.c (cherokee_server_new): Bugfix. There was a
	incorrect value as string length.

	* qa/72-Inherit3.py (Test.Precondition): Precondition fixed.

	* cherokee/buffer.c (cherokee_buffer_add_va_list): Fixed. It was
	coredump-ing on Linux/PPC.

	* cherokee/encoder_gzip.h, cherokee/encoder_gzip.c: Fixed
	compilation problem.

2005-05-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_init),
	cherokee/handler_phpcgi.c (cherokee_handler_phpcgi_init): Improved
	performance with big posts.

	* qa/*py: I have fixed some QA tests to reduce the memory usage.

	* qa/base.py (TestBase.WriteTemp): Added new method.

2005-05-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in (--with-wwwroot): Fixed.

	* cherokee/Makefile.embedded, cherokee/read_config_embedded.c,
	cherokee/read_config_embedded.h: u-Cherokee is now fixed for the
	changes of the last release.

	* cherokee/server.c (cherokee_server_init): Fixed a bug using
	chroot. It has to read the password file entry before to chroot,
	otherwhise it won't be able to do it after it.

	* cherokee/fdpoll-port.c: First functional version. Sent by
	Rodrigo Fernandez Vizarra: <Rodrigo.Fernandez-Vizarra@Sun.COM>

	* cherokee/handler_dirlist.c (new_file_entry): Fixed. There was a
	logic problem introducced on 0.4.22.

2005-05-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_grammar.y, cherokee/dirs_table_entry.c:
	Fixed bug. There wasn't possible to access some of the index pages
	directly. Reported by Rodolfo Pilas.

2005-05-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

        * Grand reduce Cherokee's memory footprint. :-)

2005-05-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/mmap2.h, cherokee/mmap2.c (cherokee_mmap2_clean_up,
	entry_set_mmap): Added two more parameters.

2005-05-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.22 released

	* cherokee/handler_dirlist.c (new_file_entry): Fixed bug only
	reproducible on Solaris.

2005-05-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/downloader.c, cherokee/downloader.h,
	cherokee/downloader-protected.h: Added post support.

	* Makefile.am (install-data-local): Fixed installation
	bug. Reported as Debian's bug #308852

2005-05-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/table.c (cherokee_table_free2): Little memory leak fixed.

	* qa/66-DirectoryIndex3.py (Test.Precondition): Try to fix it to
	work in multithread tests.

2005-05-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_add_va): Re-written.

	* cherokee/logger_ncsa.c (build_log_string): Now, it uses a
	buffer.

2005-05-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist (cherokee_handler_dirlist_step),
	cherokee/handler_error.c (build_hardcoded_response_page): Now it
	prints the right port number if the connection is using
	TLS. Reported by Rodolfo Pilas.

	* cherokee/macros.h (CHE_O_READ): Added new macro

	* cherokee/handler_file.c (cherokee_handler_file_init): It will
	use O_NOATIME if it is available.

	* cherokee/connection.c (cherokee_connection_log_or_delay): It was
	adding the 4xx and 5xx replies to the main log instead of adding
	it to the error log. Reported by Rodolfo Pilas.

	* cherokee/thread.c, cherokee/handler_common.c
	(cherokee_handler_common_new): Fix fixed. It wasn't working for
	directories with DocumentRoot with index files.  Reported by
	Rodolfo Pilas <rodolfo@pilas.net>

2005-05-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.21 released

	* cherokee/handler_common.c: It doesn't longer deppends on cgi or
	phpcgi.  Integrated with the internal redirection mechanism.

2005-05-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* sites-default.sample.pre: Added an example for the PHP extension

	* qa, qa/Makefile.am: Added more tests

	* cherokee/access.c (cherokee_access_add): Little fix

	* cherokee/read_config_grammar.y (ip_list): Better error
	management.

2005-05-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c, cherokee/access.c: Added support for IPv4
	over IPv6 addresses.

	* cherokee/socket.c, cherokee/socket.h: Some IPv6 related fixes.

2005-05-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/dirs_table_entry.c, cherokee/dirs_table_entry.h,
	cherokee/dirs_table.c, cherokee/dirs_table_entry.h,
	cherokee/connection.h, cherokee/connection.c: Directories now can
	inherit from its predecesors.

	* qa/70-Inherit.py, qa/71-Inherit2.py: Added two new test cases
	for configuration inheritation.

	* cherokee/table.c (cherokee_table_mrproper,
	cherokee_table_mrproper2): Added two methods. cherokee_table_clean
	and cherokee_table_clean2 were rewritten to use the new methods.

	* cherokee/handler_table.[ch]: Renamed to dirs_table.[ch]

	* cherokee/handler_table_entry.[ch]: Renamed to
	dirs_table_entry.[ch]. Some clean up was made as well.

	* cherokee/read_config_grammar.y: Updated to work with dirs_table.

2005-05-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* debian/cherokee.init (PIDFILE): Removed check_alive() function

	* cherokee/handler_dirlist.c (render_page_header): Fixed to make
	it work property with long file names.

	* cherokee/buffer.c (cherokee_buffer_add_char_n): Added new method.

	* configure.in, Makefile.am (SUBDIRS): Directory debian will not
	be longer included in the tarball.

	* cherokee/handler_cgi.c (cherokee_cgi_add_env_pair,
	cherokee_cgi_add_env): Splitted to a new file cgi.c to be shared
	with the FastCGI handler.

	* cherokee/read_config_scanner.l: Addnew new rule:
	address_port. It recognices a host with ":" and a optional port
	number.

2005-05-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_set_client): Added new
	parameter: type to allow it to use unix sockets.

	* cherokee/Makefile.embedded (all): Added two rules to use yacc
	and lex properly. (OBJS): Added list_merge_sort.

2005-05-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll.c (cherokee_fdpoll_new): Now returns ret_no_sys
	instead of ret_error if it can instance the fdpoll object.

	* cherokee/socket.c (cherokee_socket_sendfile): Added
	LINUX_BROKEN_SENDFILE_API case.

	* cherokee/common.h: Added new ret_t value: ret_no_sys

	* configure.in: Added check off64_t

2005-05-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: --disable-pcre option removed.

2005-04-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/url.c (cherokee_url_clean): Added new method.

	* cherokee/downloader.c (cherokee_downloader_set): Renamed to
	cherokee_downloader_set_url()
	
	* cherokee/downloader.c (cherokee_downloader_mrproper,
	cherokee_downloader_init): Added new methods.

	* cherokee/mmap2.c (mmap2_print_item): Compilation fix.

	* cherokee/socket.c (cherokee_socket_accept_fd): Compilation fix.

	* cherokee/session_cache.h, cherokee/session_cache.c
	(cherokee_session_cache_add, cherokee_session_cache_retrieve,
	cherokee_session_cache_del): Compilation fix.

	* cherokee/buffer.c (cherokee_buffer_encode_md5): Compilation
	warning fixed.

	* cherokee/server.c: Some changes to make time updating more
	consistent. There was a problem when a blocked thread became alive
	again and accepted a new connection. It was using the old time
	value, so the connection probably could be dropped in the next
	server timeout checking.

	* cherokee/server.c (update_bogo_now):
	s/CHEROKEE_RWLOCK_TRYWRITER/CHEROKEE_RWLOCK_WRITER/.  Server must
	update always.

2005-04-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c (cherokee_thread_deactive_to_polling,
	cherokee_thread_move_connection_to_polling): Code clean up.

2005-04-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.h, cherokee/connection.c
	(cherokee_connection_close): Removed.

	* qa/run-tests.py, qa/conf.py (STRACE_PATH): Added new option to
	use strace.

	* qa/run-tests.py: Added support for the new configuration entry
	"PollMethod". The new parameter -m allows to set it.

2005-04-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/read_config_scanner.l, cherokee/read_config_grammar.y,
	cherokee/server.c, cherokee/server-protected.h,
	advanced.conf.sample.pre: Added a new configuration
	"PollMethod". It allows you to force a polling method.

	* cherokee/Makefile.am (EXTRA_DIST): getopt and pcre sources are
	always included in the tarball.

	* cherokee/pcre/*, configure.in, cherokee/Makefile.am:
	libcherokee-basic now supports pcre. If the libpcre library is
	installed on the system, it will use it, otherwhise it'll compile
	the pcre sources inside libcherokee-base.

2005-04-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libcherokee_base_la_SOURCES): Removed
	ltdl entries.

	* cherokee/fdpoll-poll.c (fdpoll_poll_new): Better initialization
	of the struct pollfd entries.

	* cherokee/thread.c (process_polling_connections): Remove the
	connection from the polling list before destroy it. It was
	breaking the polling list if an element got a timeout.

	* cherokee/thread.c (purge_closed_polling_connection): Purgation
	from the polling list fixed.

	* cherokee/server.c (print_banner): Little bugfix. There were two
	cherokee_buffer_add calls with a wrong length.

2005-04-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_init): Added
	CGI_TIMEOUT to the handler initialization.

	* cherokee/macros.h (CGI_TIMEOUT): Added new constant.

2005-04-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-poll.c (_check): Added POLLERR to rw=0 and rw=1

	* cherokee/fdpoll-poll.c (_add): s/POLL_READ/POLLIN/ and
	s/POLL_WRITE/POLLOUT/

2005-04-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-epoll.c (fdpoll_epoll_new): Stop complaing about
	epoll() if it runs on Linux 2.4.

	* cherokee/connection.c (get_authorization): Added a smarter
	authentication method checking.

	* cherokee/validator_htdigest.c, cherokee/validator_htdigest.h,
	cherokee/Makefile.am: Added new authentication backend.

2005-04-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cherokee-panic (action): Added 2>/dev/null to the
	"type" calls.

	* cherokee/buffer.c (cherokee_buffer_encode_md5_digest): It
	doesn't use sprintf() to convert to hexadecimal any more. I have
	added a new macro TO_HEX to replace that call.

	* cherokee/header.c (get_new_line): Added support for multiline
	headers.

	* cherokee/validator.h: Added support property.

	* cherokee/validator.c (cherokee_validator_free_base): Added new
	method.

	* cherokee/validator.h, cherokee/validator.c
	(cherokee_validator_add_headers): Added new virtual method.

2005-04-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/common.h: Added new type cuint_t

	* cherokee/util.c (cherokee_sys_fdlimit_set,
	cherokee_sys_fdlimit_get): Made s/uint32_t/cuint_t/. It had a
	dependency on stdint.h or inttypes.h that couldn't be handled
	without HAVE_ macros.

2005-04-18  Rodrigo Fernandez  <rodrigo.fernandez-vizarra@sun.com>

	* cherokee/virtual_server.c: Initialize mutextes in the
	constructor. It was making NetBSD 2.0 to crash on every request
	
2005-04-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am (libplugin_*_la_LDFLAGS): Added
	-export-dynamic

	* cherokee/libltdl/*, cherokee/Makefile.am
	(libcherokee_base_la_SOURCES): Added libltdl source code.

	* cherokee/module_loader.c (dylib_open): Added more descriptive
	error reporting string.

	* cherokee/Makefile.am: Removed -no-undefined parameter from all
	the module LDFLAGS. Let them free to use whatever they want! :-p

	* cherokee/socket.h (CHE_INET_ADDRSTRLEN): There was a problem
	compiling Cherokee 0.4.19 on Cygwin becase it doesn't export the
	value of INET_ADDRSTRLEN. I have added the default value of it to
	the macro. See RFC 2553.

	* cherokee/header.c: "const known_headers_names" to "static
	known_header_names"

	* cherokee/socket.c (cherokee_socket_pton): inet_pton is not
	available on Cygwin. I've added a new ifdef entry to use inet_aton
	in that case.

2005-04-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Cherokee 0.4.19 released

2005-04-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/util.h, cherokee/util.c (cherokee_setenv): Removed! It
	is not longer needed.

	* cherokee/macros.h: Removed stdint.h include. There was a problem
	in Solaris 9 Sparc due to this.

	* build_solaris.sh.in, configure.in, Makefile.am: Added new script
	to build Solaris binary packages.

	* cherokee/mime_scanner.l: Added stdlib include.

2005-04-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.h, cherokee/buffer.c
	(cherokee_buffer_make_empty), cherokee/read_config_grammar.y,
	cherokee/mmap2.c (entry_clean), cherokee/logger_ncsa.c
	(cherokee_logger_ncsa_flush), cherokee/header.c
	(cherokee_header_foreach), cherokee/handler_nn.c
	(get_nearest), cherokee/handler_dirlist.c
	(check_request_finish_with_slash), cherokee/handler_common.c
	(cherokee_handler_common_new), cherokee/connection.c
	(cherokee_connection_mrproper)
	(process_handler_complex_headers, build_response_header)
	(cherokee_connection_send_header_and_mmaped)
	(cherokee_connection_send, post_init): Removed
	cherokee_buffer_make_empty() function.

	* cherokee/buffer.h, cherokee/buffer.c (cherokee_buffer_init,
	cherokee_buffer_mrproper): Added new functions.

	* cherokee/handler_error.c (build_hardcoded_response_page): Fixed
	to show the right URL in the error reporting page.

	* cherokee/buffer_escape.c (cherokee_buffer_escape_set_ref):
	Slightly modified. Now it allows to re-set a buffer.

	* cherokee/logger_w3c.c (cherokee_logger_w3c_write_access) 
	(cherokee_logger_w3c_write_error): Fixed logger string.

	* cherokee/connection.h, cherokee/connection.c
	(cherokee_connection_build_local_directory): Added new structure
	member: request_original.

	* cherokee/logger_ncsa.c (build_log_string): Fixed request
	string. It was logging a wrong request string if the DocumentRoot
	configuration key was used for that directory.

	* cherokee/handler_dirlist.c (build_public_path): Fixed "Index of"
	string. I was printing a wring directory if a DocumentRoot was
	configured for that directory.

	* cherokee/handler_cgi.c (_extract_path): Bug fix. Indirecty
	reported by Allan Wind <allan_wind@lifeintegrity.com>.

2005-04-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.spec.in, Makefile.am: Remake RPM. It is a JDS/SuSE
	package.

	* configure.in: Added new parameter --with-wwwroot

2005-04-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_dirlist.c, cherokee/handler_dirlist.h: Added
	support for sorting out files.
	
2005-04-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_phpcgi.c (cherokee_handler_phpcgi_new): Tiny
	bugfix in a corned case.
	
	* cherokee/connection-protected.h, cherokee/handler_cgi.c,
	cherokee/handler_cgi.h, cherokee/handler_common.c,
	cherokee/handler_phpcgi.c, cherokee/util.c: Added a much better
	support of PathInfo. Lot of stuff have been changed to make it
	work.

	* qa/66-DirectoryIndex3.py, qa/67-PathInfo.py, qa/68-PathInfo2.py,
	69-PathInfo3.py: Added new test cases.

	* cherokee/handler_cgi.c: Some variables has been fixed to make
	DokuWiki and PHP Indexer work. Reported by Rodolfo Pilas
	<rodolfo@pilas.net>
	
2005-04-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_init),
	cherokee/connection-private.h, cherokee/connection.c,
	cherokee/handler_common.c: Added support for effective directory.

	* cherokee/connection.c (cherokee_connection_create_handler):
	Little fix: if the directory is using the "common" handler and the
	server receives a request for a file that doesn't exists, it
	doesn't need to instance a file handler to return the error. It is
	a little speed improvement for a corner case.

	* cherokee/common.deps: Added cgi

	* debian/cherokee.init (restart): Fixed.

	* cherokee/read_config_grammar.y: Slightly modified to support
	full paths in the DocumentIndex configuration entry.

2005-04-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/validator_pam.c: Fixed compilation. Reported by Link
	Dupont <link@subpop.net>.  Ilya Pashkovsky
	<ilya.pashkovsky@gmail.com> also sent a patch for this.
	
	* cherokee/validator_pam.c (cherokee_validator_pam_check): Fixed
	little memory leak.

	* configure.in: Added new configuration parameter to disable PAM.
	
2005-03-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.18 released
	
	* cherokee/thread.c (cherokee_thread_step_SINGLE_THREAD): Bug
	fixed: there was a problem in the pipelined request.

	* configure.in, cherokee/thread.c (cherokee_thread_new): Added
	detection for pthread_attr_setschedpolicy(). It fixes a
	compilation problem for some platforms.

2005-03-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.embedded: Added new Makefile for the
	u-cherokee version.

2005-03-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/header-protected, cherokee/connection-protected: New
	header files.

2005-03-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/logger_ncsa.c (cherokee_logger_ncsa_free): Silly bug
	fixed. It was closing twice the same file descriptor and forgoting
	another one unclosed.  Remember: some times copy&paste sucks :-p

	* cherokee/header.c (cherokee_header_parse),
	cherokee/handler_file.c (cherokee_handler_file_init): Partial
	content fixes.

2005-03-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/http.h (http_mehod_with_body): Added new macro

2005-03-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (get_host): Improved: Now it is slightly
	faster and has a better broken header detection.

2005-03-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_file.c (cherokee_handler_file_init): Fixed
	compilation problem.

	* cherokee/socket.c (cherokee_read): Added support for the
	Connection timed out error.

2005-03-17  Lidia Fernandez Gago  <lidia@alobbs.com>

	* autogen.sh: Updated.

	* m4/*: Moved macro files.

	* configure.in: Fixed some macro problems.

2005-03-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* sendfile_samba.m4, configure.in: Fixed inclusion of sendfile()
	check - at CeBit 2005, Hanover.

2005-03-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-epoll.c: Some little bug fixes

	* cherokee/Makefile.am (gnu_getopt): getopt files moved inside
	cherokee/getopt directory.	

2005-03-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.c (cherokee_buffer_read_from_fd): Added EIO
	management.

2005-03-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (initialize_tls_session): Fixed compilation
	problem. Reported by Cesar Fernandez Gago.

2005-02-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee_replace.c: Fixed some compilation warnings.

2005-02-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/macros.h (CST_OFFSET): Added new macro

2005-02-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/table.c (cherokee_table_del): Last argmente removed.
	It was used to return the value of the deleted element.

	* configure.in, cherokee/zlib/Makefile.am: Improved zlib
	compilation.

2005-02-21  Rodrigo Fernandez-Vizarra  <rodrigo.fernandez-vizarra@sun.com>

	* cherokee/mmap2.c (table_is_full): Fixed the condition to check if
	the table is full.

2005-02-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_gethostbyname): Replaced
	__SUN_PROC by SOLARIS.  There was an error here compiling Cherokee
	in Solaris with GCC.

	* cherokee/header.c (parse_request_first_line): Improved
	parsing. Now it is a bit more secure.

	* cherokee/connection.c (cherokee_connection_setup_error_handler):
	On error, it will close the socket: keepalive = 0.

	* cherokee/server.c (print_banner): Added new substring about IPv6

2005-02-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c: Fixed silly bug.  Now POST requests are
	working again.  This problem was introducced in the execl() to
	execve() code conversion.

2005-02-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (set_fdmax_limit): Fixed logic.

	* configure.in: Added check for getrlimit() and getdtablesize()

	* cherokee/util.c (cherokee_sys_fdlimit_get): Added WIN32

	* cherokee/thread.c (cherokee_thread_step_MULTI_THREAD): Fixed
	code logic problem.  This was the CGI execution problems source.

	* configure.in: Added AC_DEFINE for Solaris

2005-02-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_socket_accept_fd,
	cherokee_socket_set_sockaddr): Added new helper function to
	improve performance in thread.c

	* cherokee/connection.c (cherokee_connection_mrproper): It
	shouldn't keep information in incoming_header if it is not a
	keep-alive connection. Fixed.

	* cherokee/mmap2.c (cherokee_mmap2_get): Added a new mutex:
	cherokee_mmap2_get_mutex. From this moment _get() is atomic.

2005-02-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/cherokee-panic (action): Added "full" to the bt action.

	* cherokee/mmap2.c (entry_free): Fixed tiny memory corruption
	problem.

	* cherokee/handler_file.c (cherokee_handler_file_new): Fixed: move
	depends on uninitialised value.

	* cherokee/socket.c (cherokee_socket_ntop): Fixed: move depends on
	uninitialised value.

	* cherokee/buffer.c (cherokee_buffer_ensure_size): If ->buf is
	NULL just use malloc and return.

2005-02-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll-epoll.c (_check): Added sanity check

2005-02-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.h: changed type of the pid property. Now it
	is pid_t.

	* cherokee/buffer.c (cherokee_buffer_read_from_fd): It didn't
	support EINTR error handling.

	* cherokee/handler_cgi.c (cherokee_handler_cgi_init): Now it uses
	execve() instead execl().  All cherokee_setenv() calls have been
	dropped out.

2005-02-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_file.c (cherokee_handler_file_add_headers): Now
	it uses cherokee_gmtime() instead of gmtime().

	* cherokee/http.h (http_moved_temporarily_string), cherokee/http.c
	(cherokee_http_code_copy): Fixed 302 string.

	* cherokee/common-internal.h (CHEROKEE_RWLOCK_TRYWRITER,
	CHEROKEE_RWLOCK_TRYREADER, CHEROKEE_MUTEX_TRY_LOCK): If Cherokee
	is compiled without pthread support, it is 0 <- that means that it
	has locked.

	* cherokee/logger_ncsa.c (build_log_string), cherokee/logger_w3c.c
	(cherokee_logger_w3c_write_access,
	cherokee_logger_w3c_write_error): Now it uses bogo_now from the
	thread.

	* cherokee/server-protected.h: Added new rwlock: bogo_now_mutex.

	* cherokee/common-internal.h (CHEROKEE_RWLOCK_TRYREADER,
	CHEROKEE_RWLOCK_TRYWRITER): Added two new macros to wrap
	pthread_rwlock_tryrdlock() and pthread_rwlock_trywrlock()

	* cherokee/thread.c (set_sigpipe): Removed.

	* cherokee/thread.h: Added new properties: time_t bogo_now, struct
	tm bogo_now_tm, cherokee_buffer_t *bogo_now_string.

	* cherokee/mmap2.c (cherokee_mmap2_get), cherokee/handler_file.c
	(cherokee_handler_file_init): Added new bogo_now parameter.

2005-02-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c, cherokee/macros.h: Now, it look at the
	traffic_next property to update the virtual server traffic
	counters each DEFAULT_TRAFFIC_UPDATE seconds. It uses to the new
	cherokee_connection_update_vhost_traffic() function.  It should
	improve the performance.

	* cherokee/connection.c
	(cherokee_connection_update_vhost_traffic): Added new method to
	update the virtual server traffic information.  It just call the
	new cherokee_virtual_server_add_{tx,rx} to update it safely.

	* cherokee/connection.h: Added rx and tx properties.

	* cherokee/virtual_server.h, cherokee/virtual_server.c
	(cherokee_virtual_server_add_rx, cherokee_virtual_server_add_tx):
	Added these new function to make rx/tx increment thread
	safe. There are connection in the threads that could want to
	increment this values at the same time.

	* cherokee/server-protected.h: Added new property: type struct tm.

	* cherokee/util.h, cherokee/util.c (cherokee_gmtime): Added new
	function.

	* cherokee/server.c (cherokee_server_unlock_threads): Added new
	function.

	* cherokee/thread.h, cherokee/thread.c (cherokee_thread_unlock):
	Added new function to launch the thread. It just unlocks the
	starting mutex.

	* cherokee/thread.h, cherokee/thread.c: Added starting_lock.

	* cherokee/mmap2.c (cherokee_mmap2_clean_up): Fixed some
	concurency problems.

2005-02-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/thread.c: Integrated lingering close stuff.

2005-02-06  Rodrigo Fernandez-Vizarra  <Rodrigo.Fernandez-Vizarra@sun.com>

	* ChangeLog: Fixed a typo in my name ;-)

	* cherokee/Makefile.am: Changed a GNU specific rule to a GNU/BSD
	compatible rule

	* cherokee/handler_cgi.c: Added signal.h so that it compiles in
	NetBSD 2.0

2005-02-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_read): Now it supports read to a
	NULL.  It is useful to implement lingering close.

	* cherokee/connection.h, cherokee/connection.c
	(cherokee_connection_pre_lingering_close): Added new function.

	* cherokee/connection.h: Added lingering state

2005-02-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (read_config_path): Added closedir()
	call. There was a memory leak due to this.

	* cherokee/icons.c (cherokee_icons_set_suffixes): Tiny memory leak
	fixed.

	* cherokee/mmap2.c, cherokee/mmap2.h: Now it does not use
	CHEROKEE_NEW_STRUCT_WITH_PRIV.

	* cherokee/macros.h (CHEROKEE_NEW_STRUCT_WITH_PRIV): Removed!! It
	was the source of lot of problems.

2005-02-03  Rodrigo Fernandez-Vizarra  <Rodrigo.Fernandez-Vizarra@sun.com>

	* cherokee/fdpoll-kqueue.c: Fixed compilation problem in Freebsd
	and Netbsd.

2005-02-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (cherokee_server_init): Fixed wrong thread
	number in single-thread executable.

	* cherokee/handler_cgi.c (cherokee_handler_cgi_free): Now calls to
	close() safely.

	* cherokee/thread.c (cherokee_thread_step_SINGLE_THREAD):
	tls_enabled fixed.

2005-01-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.c (cherokee_handler_cgi_new): Better error
	handling.

	* cherokee/header.c (cherokee_header_get_arguments): Now it
	returns ret_ok instead ret_error parsing requests without
	parameters.

	* cherokee/connection.c (cherokee_connection_parse_args): Added
	sanity check.

2005-01-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_free): Memory leak
	fixed. It was not freeing query_string buffer.

2005-01-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (get_host): Added security check. Hostname
	can't start by dot.

2005-01-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/socket.c (cherokee_read, cherokee_writev,
	cherokee_write): Added EINTR and EWOULDBLOCK

2005-01-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/handler_cgi.h: Removed HANDLERCGI_PARAM and
	HANDLERCGI_FILE macros.	

2005-01-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am: Fixed libpcre support

2005-01-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/buffer.h, cherokee/buffer.c
	(cherokee_buffer_replace_string): Added new method.


2005-01-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/macros.h, cherokee/fdpoll-epoll.c: Errors around epoll
	are not more fatal errors.

2005-01-06  Emil Beinroth <emilbeinroth@gmx.net>

	* cherokee/server.c (change_execution_user): Now it uses
	initgroups() to reset the user groups on change.

2005-01-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/*c, *h, *l, *y: Copyright notice updated

	* configure.in: Added PCRE library detection

	* cherokee/handler_redir.c, cherokee/handler_redir.h: Ayose's
	patch integration and some little fixes.


2005-12-31  Ayose Cazorla Len   <setepo@gulic.org>

	* cherokee/handler_redirc, cherokee/handler_redir.c:
	Added PCRE library support


2004-12-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/connection.c (cherokee_connection_get_request): It will
	only try to process the Connection: Upgrade information if TLS is
	enabled in the server.


2004-12-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Clean up to use AC_HELP_STRING


2004-12-26  Ayose Cazorla Len   <setepo@gulic.org>

	* cherokee/handler_cgi.c, cherokee/handler_error.c,
	cherokee/handler_file.c: Bug fixes.


2004-12-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/server.c (cherokee_server_read_config_file): It
	configuration file is NULL, it will read the default one:
	CHEROKEE_CONFDIR"/cherokee.conf"

	* cherokee/macros.h: Added <stdint.h> inclusion to avoid problems
	due to use int32_t in the cherokee structs.


2004-12-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/fdpoll.c, cherokee/fdpoll.h: Added "port" support.

	* configure.in, cherokee/Makefile.am: Added check for the new
	Solaris 10 "Event Ports".

	* cherokee/fdpoll-kqueue.c: Fixed kqueue support


2004-12-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* debian/rules (config.status): It does not use --disable-epoll
	anymore.  Now the polling method is choosen on-the-fly.
	
	* debian/rules: Removed cherokee-bench package.
	
	* configure.in: Removed --disable-epoll parameter.

	* cherokee/cherokee-panic: Added Solaris 10 support - with dbx


2004-12-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/list_mergesort.c, cherokee/list_mergesort.h: Added
	Mergesort algorithm.
	http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html

	* cherokee/table.c (cherokee_table_len): Added new method.

	* cherokee/table.c (cherokee_table_clean_up): Added new method.


2004-12-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee/Makefile.am, src/*.deps, src/module_loader.c: Modules
	are not longer linked against other modules.  Added .deps for
	this.

2004-12-07  Rodrigo Fernandez-Vizarra  <Rodrigo.Fernandez-Vizarra@Sun.COM>

	* cherokee.m4: Regexps fixed.

2004-11-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, src/Makefile.am, src/handler_mono.c,
	src/handler_mono.h: Removed Mono support.

	* src/common.c: No longer needed. Removed.

	* src/common.c (PRINT_ERROR, PRINT_DEBUG): Now these are macros
	instead functions - defined in the header file.

	* src/util.h, src/util.c: Added new files for common.h clean up.


2004-11-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c (_LOG): Removed. A new macro "dbg" has been
	added, it is cleaner than _LOG.
	

2004-11-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (print_banner): Some little improvements.


2004-11-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer_escape.c (cherokee_buffer_escape_free):
	Bugfix. s/esc->internal/esc->internal[i]/

	* src/read_config_scanner.l, src/read_config_grammar.y: Added new
	configuration entry "MaxConnReuse" to set the max number of
	connection to reuse in each thread.

	* src/thread.c (connection_reuse_or_free): Added new function.

	* src/Makefile.am (libcherokee_server_la_SOURCES): Removed log.c
	and log.h. These files are not longer used.

	* src/handler_cgi.c (cherokee_handler_cgi_init): Dropped O_ASYNC
	from O_ASYNC|O_NDELAY|O_NONBLOCK.


2004-11-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/*.c: Added LOT of "unlikely"s in the "ret" error checkings.

	* src/thread.c: Added some unlike()s

	* src/common.h (CHEROKEE_PRETTY_FUNCTION): It uses __func__
	instead "???" if __PRETTY_FUNCTION__ is not supported.

	* src/common.h: Added likely and unlikely macros.

	* src/socket.c (cherokee_socket_init_tls): Call to gnutls_bye
	before deinit the TLS connection. It tries to fix a segmentation
	fault detected at the production server.


2004-11-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_write): ssize_t -> size_t
	(cherokee_socket_read): ssize_t -> size_t
	(cherokee_socket_gethostbyname): Added implementation for
	Solaris10.

	* src/list.h, src/common.h: Some fixes around __inline__ to make
	Cherokee compile in Solaris w/ the Forte compiler.

	* configure.in: Added better check for __inline__


2004-11-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_get_request): It returns
	411 Length required error on POST without length.


2004-10-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/logger_ncsa.c (cherokee_logger_ncsa_write_string): Security
	bug fixed.  Reported by Dan Margolis <krispykringle@gentoo.org>.


2004-10-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Removed Debian apt-get examples..


2004-10-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_clean): There was a bug
	clearing the request buffer_escape object.

	* src/buffer_escape.c (cherokee_buffer_escape_get_html): Bug
	fixed. There was a SEGFAULT here because it was trying to read
	from NULL.


2004-10-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* icons/back.png: Updated.

	* icons/sound.png: Updated.

	* icons/movie.png: Updated.

	* icons/image.png: Updated.

	* icons/readme.png: Updated.

	* icons/java.png, icons/Makefile.am, icons.conf.sample: Added new
	icon.
	
	* src/http.h, src/connection.h, src/connection.c, src/thread.h,
	src/thread.c: Implemented RFC2817: Upgrading to TLS Within
	HTTP/1.1 :-)


2004-10-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (build_server_string): New server string feature.
	
	* cherokee.conf.sample.pre: Added new block describing
	ServerTokens

	* src/handler_dirlist.c (cherokee_handler_dirlist_step),
	src/handler_error.c (build_hardcoded_response_page): Updated to
	use the new srv->server_token

	* debian/rules (config.status): It uses the new enable-os-string
	parameter.

	* configure.in (OS_TYPE): Added new --enable-os-string=STR

	* cherokee.m4: Little update

	* src/connection.h, src/connection.c, src/handler_error.c
	(build_hardcoded_response_page): Changed to use the new
	cherokee_buffer_escape_t class.

	* src/buffer_escape.h, src/buffer_escape.c, src/Makefile.am
	(libcherokee_base_la_SOURCES): Added new class.


2004-10-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_escape_html): Added new method.

	* src/connection.c (cherokee_connection_reading_check): On huge
	requests, it uses "Request-URI too long" instead of the generic
	"Bad Request".

	* src/http.h, src/http.c (http_request_uri_too_long_string): Added
	"Request URI too long" response.

	* doc: Added rfc1952.txt rfc2616.txt rfc2817.txt

	* src/header.c (cherokee_header_parse): Added "Upgrade" header to
	common ones.

	* src/connection.h: Added "upgrade" property to connection class.

	* src/http.h: Added cherokee_http_upgrade_t type
	

2004-10-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (process_active_connections): Bugfix.

	* src/common.h (RET_UNKNOWN, SHOULDNT_HAPPEN): Reformatted.

	* configure.in, src/Makefile.am, src/handler_gotls.h,
	src/handler_gotls.c: Removed GoTLS handler.

	* src/handler_error.c (cherokee_handler_error_add_headers):
	Bugfix.  It was generating a bad Content-length header.

	* src/connection.c (build_response_header): Added "Connection:
	Upgrade" support.

	* src/handler_table_entry.h, src/handler_table_entry.c: New class
	property: only_secure.

	* src/read_config_grammar.y: Added 'directory_option' to implement
	the Only secure access feature.

	* src/read_config_scanner.l: Added T_ONLY_SECURE token


2004-10-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_phpcgi.c (cherokee_handler_phpcgi_{new,init}): Now,
	it look for a "Interpreter" handler parameter and use it as
	interpreter.

	* src/read_config_scanner.l, src/read_config_grammar.y
	(T_FULLDIR): Added "Interpreter" property.


2004-10-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cget/main.c (print_help): Write as wget

	* debian/control (Build-Depends): Removed zlib1g-dev dependency.

	* src/zlib, configure.in: Added zlib deflate code

	* configure.in: Removed check for zlib library

	* src/Makefile.am: Now uses src/zlib/ instead libz.so

	
2004-09-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_dirlist.c (cherokee_handler_dirlist_new): Wrong
	initialization fixed.


2004-09-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* icons/iso.png, icons.conf.sample, icons/Makefile.am: Added ISO
	Image icon.

	* src/handler_cgi.c (_set_envs_cgi): index() -> strchr()

	* src/icons.c: Misc clean up

	* src/fdpoll.h: Added cherokee_fdpoll_reset() prototype

	* src/connection.h: Added prototype
	cherokee_connection_setup_error_handler()

	* src/connection.c: Some clean ups

	* src/url.c: Added inclusion of <strings.h>

	* src/header.c: Added inclusion of strings.h.

	* src/header.c (cherokee_header_parse): Typo fixed.

	* src/socket.c: Added inclusion of sys/socket.h header


2004-09-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/access.c (cherokee_access_ip_match): Removed two unused
	variables.

	* src/mime.c (cherokee_mime_entry_free): Return value fixed

	* src/header.c: Added string.h inclusion: strncasecmp(), strsep()

	* src/header.c (cherokee_header_copy_method,
	cherokee_header_copy_version): These two functions have been
	rewrited to use the http.h API.

	* src/mmap.c (cherokee_mmap_get_default): Clean up: Removed unused
	variable

	* src/socket.c (initialize_tls_session): Fixed precompilator
	directives: HAVE_GNUTLS / HAVE_OPENSSL

	* src/socket.c (cherokee_socket_gethostbyname): Little clean up

	* src/socket.c: Added inclusion of netdb.h: gethostbyname_r()
	
	* src/buffer.c (cherokee_buffer_decode): Return fixed.

	* src/buffer.c (cherokee_buffer_replace): Fixed return value

	* src/common.c: Added inclusion of unistd.h and sys/time.h

	* src/http.c (cherokee_http_code_copy): Added http_continue and
	http_switching_protocolos cases.

	* src/connection.c (process_handler_complex_headers): Better
	complex header handling.

	* src/handler_cgi.c (cherokee_handler_cgi_init): Improved error
	report.  It will return 404 or 500 in each case; until now, it was
	just closing the connection.


2004-09-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/header.c (cherokee_header_parse): Fixed a bug processing
	'header_type_basic' headers.
	
	* src/read_config_grammar.y (yyerror): Better error reporting.


2004-09-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/cherokee-panic (action): Added new argument 'action'.


2004-09-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/common.h (RET_UNKNOWN): Added new macro.

	* src/handler_cgi.c: It is working again!! :-)
	

2004-09-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c: Lot of changes

	* src/fdpoll.c (fdpoll_epoll_del): It fill not exit() on error.

	
2004-09-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_read_from_fd): Addned new function.


2004-09-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler.h (HANDLER_THREAD): Added new macro.


2004-09-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (cherokee_thread_conn_wants_poll_for_fd): Added new
	function.

	* src/downloader.c, src/downloader.h: Added struct entries to
	count the information send/received.
	
	* src/downloader.c, src/downloader.h:
	(cherokee_downloader_connect): Added new function.


2004-09-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/downloader.c (downloader_header_read): Added content-length
	header check.


2004-09-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c (_send_post_data): Clean up

	* src/handler_cgi.c: Some changes to make POST request >4Kb
	working.

	* src/connection.c (cherokee_connection_get_request): Now it uses
	the header class instead of look inside the request string "by
	hand".

	* src/thread.c (process_active_connections): Bugfix. userdir
	detection was wrong.

	* src/thread.c (process_active_connections): Incoming headers
	parsing improved.

	* src/thread.c (process_active_connections): Bugfix. Incoming
	headers was not managed properly.


2004-09-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_scanner.l, src/read_config_grammar.y: Added
	"https" urls recognition. Reported by Rodolfo Pilas.


2004-08-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_gethostbyname): Fixed concurrent
	version of the function.  It was not copy the query in the socket
	struct.  (Santa Cruz ~ Bolivia to Sao Paulo ~ Brazil)


2004-08-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_connect): Added new method (Hotel,
	Sucre ~ Bolivia).


2004-08-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/url.c (cherokee_url_parse_ptr): Fixed. It was including the
	port number in the hostname string after parsing.

	* src/socket.c (cherokee_socket_gethostbyname): Added new
	function. (Waiting in the Santa Cruz ~ Bolivia airport)


2004-08-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for gethostbyname, gethostbyname_r
	functions. (Arequipa ~ Per)


2004-08-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_set_client): Added new method.
	(XII CONEIS, Lima ~ Per)


2004-08-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_pton): Added new method.
	(National Free Software Congress, Sucre ~ Bolivia)


2004-08-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench/main.c (main): Print_usage() fixed.

	* src/thread.c (process_active_connections): Now, it uses
	cherokee_header_has_header() instead of cherokee_connection_eoh() 

	* src/header.c (cherokee_header_has_header): Added new function

	* src/connection.c (cherokee_connection_eoh): Dropped out

	* src/thread.c (process_active_connections): Fixed userdir
	directories management.
	

2004-08-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench/connection.h: changed struct sockaddr_in by
	cherokee_sockaddr_t

	* bench/request.h, bench/request.c: Moved to src, to
	libcherokee-client. Renamed from cherokee_bench_request_* to
	cherokee_request_header_*

	* bench/main.c (main): Adapted to last changes: It uses
	cherokee_buffer_t instead of char *.

	* bench/bench.h (cherokee_bench_add_url), src/url.h
	(cherokee_url_parse): Now, it accepts a cherokee_buffer_t instead
	of a char*
	
	* bench/url.c, bench/url.h: Moved to src, for libcherokee-client.

	
2004-07-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y ('directory'): Some fixes. Now, it is
	more generic.

	* src/virtual_server.c, src/virtual_server.h
	(cherokee_virtual_server_set): Dropped out.


2004-07-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_init_tls, initialize_tls_session):
	Fixed compilation problem reported by Yusuf.


2004-07-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* README (NAME): Updated to new module name.

	* src/module_loader.c (dylib_open): Fixed to work with the new
	module prefix.

	* src/Makefile.am: libcherokee_* are now plugin_*

	
2004-07-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* sites-default.sample.pre: Changed form ErrorDocument to the new
	ErrorHandler syntaxis.

	* src/handler_redir.c (cherokee_handler_redir_new,
	cherokee_handler_redir_init): Some little fixes.

	* src/handler_error_redir.c (cherokee_handler_error_redir_new),
	src/Makefile.am, configure.in: Added new file.

	* src/connection.c: Error handling code fixed.


2004-07-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_build_header): Fixed to
	work with the new error management code.

	* src/connection.c (build_response_header): Error related headers
	are not needed anymore.  The error module now manage all that.

	* src/connection.c (send_buffer_unsafe): Removed! It is not
	needed anymore.  "Unsafe" is not the right way.. ;-)

	* src/connection.c (build_hardcoded_response_page): Removed!
	"Hardcoded" sounds horrible!  We can do it much better than
	that. :-p

	* src/connection.c
	(cherokee_connection_send_response_page_hardcoded,
	cherokee_connection_send_response_page_file): Dropped out! Now this
	work is delegated to the internal error handler. Much more clean!!
	
	* configure.in: IPv6 detection problem fixed. Reported by Juan
	Cespedes.

	* debian/rules (build-arch-stamp): It will now execute the tests
	by default.  We have to check the Python version and add some
	dependences to the control file before.

	* doc/Intro.txt: It as dupped.  Reported by Juan Cespedes.

	* src/handler.h (HANDLER_SUPPORT_ERROR): Added error handling
	property.

	* src/read_config_grammar.y (T_FULLDIR), virtual_server.h,
	virtual_server.c, connection.c: Clean up: it uses a
	cherokee_buffer_t instead a char* + int


2004-07-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.17 released


2004-07-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for ClamAV library

	* src/connection.c (cherokee_connection_get_request): Fixed
	"Host:" header management.  Cesar Fernandez reported a problem
	with some broken proxies from Telefonica.es

	* src/handler_cgi.c (_set_envs_cgi): Fixed bug.  It was generating
	a Segment Fault in the CGI process when there was no "Host:" entry
	in the request headers.

	* README: Added some information about how to compile a Cherokee
	module by hand (using libtool like in the current Automake code) 


2004-07-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am (install-data-local, uninstall-local): Added new
	rule to install cherokee-config.h

	* src/cherokee.h, src/Makefile.am: Removed

	* src/module_loader.c: Clean up


2004-07-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_dirlist.c (build_public_path): Fixed bug in the
	public path printing.


2004-07-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler.h, src/handler.c (cherokee_handler_free_base): Added
	new virtual method.

	* src/handler_file.c (file_init): _file_is_init now is
	cherokee_boolean_t instead int.

	* debian/rules: Updated to install the cherokee binary in
	/usr/sbin insted /usr/bin


2004-06-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/Makefile.am (sbin_PROGRAMS): Changed bin_PROGRAMS to
	sbin_PROGRAMS.  Now the cherokee executable will be installed in
	/usr/sbin instead /usr/bin.
	

2004-06-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_scanner.l: Added domain name recognition.

	* sites-default.sample.pre: Added the logging related
	configuration entries.

	* advanced.conf.sample.pre: Moved LogFlushInterval here.


2004-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/table.c (cherokee_table_while): Bugfix.  There was an error
	in the parameter order in the parameter function call.

	* src/handler_redir.c (cherokee_handler_redir_new): Better error
	check.

	* src/read_config_grammar.y (T_HTTP_URL): There was an error with
	the HTTP redirection configuration entries.

	* src/handler_cgi.c (cherokee_handler_cgi_add_headers): Wrong
	error handling fixed.


2004-06-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/mime.c (cherokee_mime_free): Bugfix.  It was freeing memory
	twice.

	* src/logger_ncsa.c (build_log_string), src/handler_file.c
	(cherokee_handler_file_add_headers): Now uses the new FMT_OFFSET
	constant.

	* src/common.h (FMT_OFFSET): Added constant for format string of
	off_t

	* src/handler_cgi.c (_read_from_cgi): Some fixes around the CGI
	termination.
	

2004-06-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (set_fdmax_limit): Moved from _new to _init just
	before to create the threads.

	* src/common.h, src/common.c (set_system_fd_num_limit): Added new
	function.

	* src/server.c (initialize_server_socket),
	src/read_config_scanner.l, src/read_config_grammar.y,
	src/server.h, advanced.conf.sample.pre: Added "ListenQueue" new
	configuration entry.

	* src/server.h, src/server.c, src/read_config_scanner.l,
	src/read_config_grammar.y, advanced.conf.sample.pre,
	src/handler_file.c: Added "Sendfile" new configuration entry.

	* src/virtual_server.c (cherokee_virtual_server_init_tls): OpenSSL
	implementation error fixed.  It is working now.

	* src/server.c (read_config_path): It did not build the path
	correctly. Fixed.

	* src/server.c(cherokee_server_init): It was not detecting the TLS
	configuration correctly. Fixed.


2004-06-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* advanced.conf.sample.pre: Added new config file

	* src/server.c (print_banner): Added TLS library to the banner.


2004-06-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/mime.c (cherokee_mime_init): Bugfix


2004-06-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/cherokee-panic: It was a bug calling mktemp

	* src/Makefile.am (dynamic_validator_htpasswd_lib): It was
	compiling htpasswd module dinamically even it was set to
	--enable-static-module=all

	* src/server.c (read_default_config_files): Better mime global
	object management.

	* cherokee.conf.sample.pre: Commented out PAM example.  Reported
	by Miguel Angel Ajo, ajo@godsmaze.org


2004-06-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c, src/socket.h, src/server.c, src/virtual_server.h,
	src/virtual_server.c: Added some OpenSSL support code.

	* src/virtual_server.c (cherokee_virtual_server_free): Now it
	fixes the credentials object.  Memory_leaks--;

	* configure.in, src/Makefile.am, bench/Makefile.am: Added new
	options to compile with GNUTLS or OpenSSL. 
	--enable-tls=[gnutls|openssl]


2004-06-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench/url.c (cherokee_url_parse): Bugfix.  There was some
	incorrect string handling code.

	* bench/bench.c (_cherokee_bench_get_request): Compilation warning
	fixed.

	* src/logger_ncsa.c (build_log_string): Bug fixed.  It was "int
	**" instead "int *".

	* src/handler_remote_control.c
	(cherokee_handler_remote_control_init): Fixed compilation warnings
	around the 64bits long files support.

	* src/handler_mono.c (send_headers_callback): Compilation fix.

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Bugfix.
	It was: conn->userdir, instead of conn->userdir->len.

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Two
	compilation warnings were fixed.

	* src/handler_file.c (check_cached): Bugfix.  It was an char *,
	instead a single char.

	* src/handler_server_info.c: Fixed some compilation warnings.

	* src/table.c (cherokee_table_while): The last two parameters:
	return of the key and the value found in the table new can be
	NULL.

	* src/table.h: New api.

	* src/icons.c (cherokee_icons_get_icon): Fixed to the new
	cherokee_table_while api.

	* src/handler_cgi.c (_set_envs_cgi): Compilation warnings fixed.

	* src/session_cache.c (equal): Compilation warning fixed.

	* src/thread.c (process_active_connections): 64 bits file in 32
	bit machines bug fixed.
	(cherokee_thread_get_new_connection): Compilation warning fixed.

	* src/encoder_gzip.c (cherokee_encoder_gzip_encode): GZip Footer
	code rewritted.


2004-06-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.h: Added new type cherokee_sockaddr_t

	* network.m4: Added AC_ACME_SOCKADDR_IN6 and AC_ACME_SOCKADDR_STORAGE

	* src/buffer.c (cherokee_buffer_swap_chars): Now, it returns ret_t

	* src/buffer.c (cherokee_buffer_end_char): Added new helper function

	* src/connection.c
	(cherokee_connection_build_local_directory_userdir): URL like
	http://www.alobbs.com/~alo are redirected to
	http://www.alobbs.com/~alo/


2004-05-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_ntop): Conditional compilation
	reordered.

	* configure.in: Added check for the inet_ntop() function


2004-05-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c
	(cherokee_connection_build_local_directory_userdir): Fixed bug.
	There was a problem with URL like: http://www.alobbs.com/~/cosa/


2004-05-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/main.c (panic_handler): Function `panic' has been renamed to
	panic_handler because it was causing a linkage error on MacOS X.

	* configure.in (cherokee_version_len): Check form _pam_dispatch
	instead of pam_end.


2004-05-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/access.[ch] (cherokee_access_add), src/read_config_grammar.y
	(ip_list): Added new method.

	* src/socket.c (cherokee_socket_clean): Now, it cleans the struct
	sockaddr structure.

	* configure.in: It uses Automake1.8 so depends on autoconf >= 2.58

	* src/server.c (init_tls_library), configure.in, src/Makefile.am:
	It does not depend on libgnutls-extra library anymore.

	* src/logger_ncsa.c (build_log_string): method and version string
	len is now NULL.  It was unneeded here.

	* src/http.c (cherokee_http_{version,method}_to_string): Pointer
	to string len can be NULL.


2004-05-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee_replace.c (main): Added a new tiny program to replace
	the paths in the example configuration files.

	* Makefile.am, configure.in: Now use the cherokee_replace hack.

	* cherokee.conf.sample.in: Removed

	* cherokee.conf.sample.pre: Added

	* src/Makefile.am: Fixed problem with "common" handler.  The
	LDFLAGS of the handlers now is "-module" instead "-shared"

	
2004-05-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c (_set_envs_cgi): It now uses the generic
	CHE_INET_ADDRSTRLEN macro.  Fixed compilation in HP-UX 11.

	* src/socket.h (CHE_INET_ADDRSTRLEN): Added new macro.


2004-05-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_sendfile): Added HP-UX sendfile()
	support.


2004-05-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.h: Added new phase `phase_send_headers'.

	* src/handler_file.c (cherokee_handler_file_init): Security
	fix. The request "http://localhost/~bin" was causing a segment
	fault.

	* src/connection.c (cherokee_connection_send_header): Rewritten.

	* src/connection.c (cherokee_connection_send): Now, it has a
	better error handling.

	* src/thread.c (process_active_connections): The new phase
	`phase_send_headers' is integrated now.  The server will not send
	partial headers on EAGAIN anymore.


2004-05-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (cherokee_server_daemonize), src/main.c: Added new
	parameter -b (background).  Now Cherokee can be running in
	background in a detached terminal.

	* src/connection.c (cherokee_connection_check_authentication):
	Bugfix.  It was comparing a string with a random memory chunk.

	* src/connection.c (build_response_header): Some work around the
	"WWW-Authenticate" response header.

	* src/connection.c (cherokee_connection_get_plugin_entry):
	Authentication type are copied from the handler entry to the
	connection object.

	* src/cherokee-panic: Changed "bt" by "thread apply all bt".

	* src/read_config_grammar.y (directory): It does not add a slash
	at end of the directory name. Now, http://localhost/about works
	with the "Directory /about {}" configuration entry.


2004-05-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (build_response_header): Added headers for
	Digest authentication.

	* src/buffer.h (cherokee_buffer_encode_hex): Bugfix.

	* src/server.h, src/server.c (cherokee_server_get_total_traffic):
	It uses off_t instead unsigned long int.

	* src/virtual_server.h, src/virtual_server.c: LFS fixes.
	
	* src/read_config_grammar.y, src/virtual_server.c,
	src/virtual_server.h: Fixed virtual host list management.

	* src/handler_table_entry.c (cherokee_handler_table_entry_free):
	Better management of the memory. There was a little memory leak in
	the class destructor.

	* cherokee.conf.sample.in, src/handler_server_info.c,
	src/read_config_grammar.y, src/read_config_scanner.l: Added
	JustAbout flag.


2004-05-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/icons.c, src/connection.c, src/handler_file.c,
	src/handler_nn.c, src/handler_phpcgi: Replaced rindex() by
	strrchr()

	* src/md5.c, src/md5.h: Clean up

	* src/Makefile.mingw: Some work around the Windows port.


2004-05-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/unix4win32.h, src/unix4win32.c, src/unix4win32_errno.h:
	Added new files to try to port Cherokee to Windows.

	* src/libc_interface.c, src/libc_interface.h, src/libc_internal.h:
	Removed.

	* src/Makefile.mingw: Lot of changes.

	
2004-05-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/logger_ncsa.c (build_log_string): Fixed for Large File
	Support.

	* src/handler_file.h: Fixed compilation in archs without
	sendfile() function.

	* src/cherokee-panic: It uses mktemp instead tempfile. Reported by
	Ali Ebrahim.

	* bench/Makefile.am, bench/main.c, src/Makefile.am, src/access.c,
	src/buffer.c, src/buffer.h, src/cherokee-panic, src/common.c,
	src/common.h, src/connection.c, src/connection.h,
	src/encoder_gzip.c, src/encoder_gzip.h, src/encoder_table.c,
	src/encoder_table.h, src/handler.c, src/handler.h,
	src/handler_cgi.c, src/handler_cgi.h, src/handler_common.c,
	src/handler_common.h, src/handler_dirlist.c,
	src/handler_dirlist.h, src/handler_file.c, src/handler_file.,
	src/handler_nn.c, src/handler_phpcgi.c, src/handler_redir.c,
	src/handler_remote_control.h, src/handler_server_info.c,
	src/handler_table.c, src/handler_table.h,
	src/handler_table_entry.c, src/handler_table_entry.h, src/http.c,
	src/http.h, src/levenshtein_distance.c,
	src/levenshtein_distance.h, src/log.c, src/logger.c,
	src/logger_ncsa.h, src/logger_w3c.c, src/logger_w3c.h, src/md5.c,
	src/mime.c, src/mime_scanner.l, src/module_loader.c,
	src/read_config_grammar.y, src/server.c, src/server.h,
	src/socket.c, src/socket.h, src/thread.c, src/validator.h,
	src/validator_htpasswd.c, src/validator_pam.c,
	src/virtual_server.c, src/virtual_server.h: The LFS (Large File
	Support) is working.  Some header were reordened. Some variables
	has changed the type.


2004-05-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in (cherokee_version_len): Version now uses m4 macros
	instead shell script code


2004-04-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* network.m4: Little fix for automake >= 1.8


2004-04-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_drop_ending): Added better error
	handling.

	* cherokee.conf.sample.in: Added Digest or Basic authentication
	example.


2004-04-28  Stephen Hemminger  <shemminger@osdl.org> 

	* src/socket.c: Bugfix: There was truncated file outputs running a
	load test on Linux 2.6 using Cherokee (epoll, sendfile).
	
	
2004-04-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y: Added "Digest" authentication mode.

	* src/buffer.c (cherokee_buffer_prepend, cherokee_buffer_add):
	Little clean up

	* src/buffer.c (cherokee_buffer_add_chunked,
	cherokee_buffer_add_buffer_chunked): Added new functions.

	* src/handler_file.c (cherokee_handler_file_step): Now it uses the
	new cherokee_socket_sendfile function.

	* src/socket.c (cherokee_socket_sendfile): Added new function

	* src/http.h, src/http.c (cherokee_http_method_to_string): Added
	methods DELETE, TRACE and CONNECT.


2004-04-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/virtual_server.c (cherokee_virtual_server_init_tls): Fixed
	TLS initialization warning.

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Fixed
	bug.  It was showing a bad "Index of" string in aliases
	directories.  Reported by Ayose.

	* src/handler_table.c (cherokee_handler_table_get): Clean up


2004-04-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y (directory_option): A bit improved

	* src/cherokee-panic, Makefile.am, cherokee.conf.sample.in,
	configure.in, debian/rules, src/Makefile.am, src/common.c,
	src/common.h, src/main.c, src/read_config_grammar.y,
	src/read_config_scanner.l, src/server.c, src/server.h:
	Added new "PanicAction" feature.

	* src/handler_dirlist.h, src/handler_dirlist.c
	(cherokee_handler_dirlist_step): Fixed problem when there were lots
	of files in the same directory.

	
2004-04-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/validator_plain.c (cherokee_validator_plain_check): Bugfix

	* src/logger_ncsa.c (build_log_string): Better logging without
	"referer".

	* src/thread.c (process_active_connections): Tiny bugfix


2004-04-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Bugfix.

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): There was
	an error in the memory management when the server had not loaded
	icon table yet

	* src/buffer.h, src/buffer.c (cherokee_buffer_is_endding): Added
	new function.

	* src/socket.c (cherokee_write, cherokee_read): Fixed GNUTLS error
	handling.
	

2004-04-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_common.c (cherokee_handler_common_new): Bugfix

	* src/handler_dirlist.c (cherokee_handler_dirlist_init): Little bug fix


2004-04-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c: Added support for TLS connections in the mail
	server_step code (single and multi thread versions)

	* src/session_cache.h (cherokee_session_cache_retrieve): Added new
	function.

	* src/virtual_server.c (cherokee_virtual_server_free): Fixed
	managed TLS releated memory manage.

	* src/session_cache.h, src/session_cache.c: Added new class

	
2004-04-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c, src/socket.h, src/socket.c, src/connection.c:
	Finished the initial TLS support.

	* src/socket.c (cherokee_socket_clean): Added new function.

	* src/handler_file.c (cherokee_handler_file_init): Bug fix arroung
	TLS and sendfile() support.

	* src/connection.c (send_buffer_unsafe): Little bug fix


2004-04-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.c (cherokee_socket_ntop): Returns ret_t not char *


2004-04-18  CoKi  <coki@nosystem.com.ar>

	* src/common.c (PRINT_ERROR): Fixed security bug.
	No System Group - http://www.nosystem.com.ar

	
2004-04-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/virtual_server.c (cherokee_virtual_server_get_name): Added
	new method.

	* src/socket.h: Added new type cherokee_socket_type_t: TLS o
	non_TLS

	* configure.in: Fixed epoll detection.  It was failing in systems
	with a new glibc but without kernel support.


2004-04-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.m4: Added new tests for needed functions


2004-04-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.m4: Added default version to 0.4.16

        * 0.4.16 released.
	
	* bench/connection.c: Fixed compilation in Solaris.  It was
	failing because the FIONBIO constant.

	* Makefile.am, qa/Makefile.am (test): Added new target to execute
	de QA tests from the Makefile

	* qa/cherokee-test.py: On python version error or execution test
	error, it returns an error code.

	* src/list_ext.c (cherokee_list_free): Added initialization of the
	list after free the items.

	
2004-04-14  Gunnar Wolf  <gunnar@debian.org>

	* Debian support updated

	
2004-04-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_scenner.l, src/read_config_grammar.y,
	src/server.c, src/server.h: some work to add the "Include"
	feature.


2004-04-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, src/common.h, src/common.c: Added strsep()
	emulation code.

	* src/validator_htpasswd.c (crypt_r_emu): Bugfix for Solaris.

	* src/connection.c (add_error_code_string_to_buffer): Dropped out.
	Now, the connection class uses the cherokee_http_code_copy
	function.

	* src/http.c (cherokee_http_code_copy): New function.

	* src/http.h (http_moved_temporarily_string): 302 error message is
	"Found".

	* src/connection.c (build_hardcoded_response_page): Redirect error
	now uses the "moved temporarily" not "moved permanently".  Added
	new error response.

	* src/handler_file.c (cherokee_handler_file_init): Bug fixed.  It
	was sending all the file in partial contents if the file was too
	long to use mmap.  

	* src/handler_file.c (cherokee_handler_file_init): There was a bug
	in the mmap table instance.  Fixed.

	* qa/tests/Test01.py (TestErrorDocumentRedirect): Added new class
	to check the redirection of the ErrorDocument entries.

	* src/thread.c (process_active_connections): ErrorDocument (on
	redirection) fixed.


2004-04-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c (_set_envs_cgi): Removed "method" array.  Now,
	it uses the cherokee_http_method_to_string and
	cherokee_http_version_to_string functions.

	* src/server.c (initialize_server_socket4,
	initialize_server_socket6): Better initialization.

	* src/socket.c (cherokee_write): Return parameter is ssize_t not
	int

	* src/encoder.c, src/encoder.h, src/encoder_gzip.c, src/handler.c,
	src/handler.h, src/handler_cgi.c, src/handler_dirlist.c,
	src/handler_file.c, src/handler_gnomevfs.c, src/handler_mono.c,
	src/handler_nn.c, src/handler_phpcgi.c, src/handler_redir.c,
	src/handler_remote_control.c, src/handler_server_info.c,
	src/logger.c, src/logger.h, src/logger_combined.c,
	src/logger_ncsa.c, src/logger_w3c.c, src/module.c, src/module.h,
	src/validator.c, src/validator.h, src/validator_htpasswd.c,
	src/validator_pam.c, src/validator_plain.c: Encoder, Handlers,
	Validators and Loggers are now based in the module class.  Some
	code clean ups around it.


2004-04-11  Ayose Cazorla Len   <setepo@gulic.org>

	* src/handler_cgi.c: Partial fix for the zombies CGIs

	
2004-04-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/logger_combined.h, src/logger_combined.c: Added new logger.
	It support the NCSA "combined" logging format. It is compatible
	with the Apache's "combined".

	* src/connection.c (cherokee_connection_log_delayed): log_at_end
	error fixed.

	* src/thread.c (cherokee_thread_step): Added new "don't block"
	parameter.  The main thread should not block ... it has to do
	periodic jobs like flushing the log files, etc.
	This fixed a bug around the log buffering.

	* src/http.c: Added new file and two new functions:
	cherokee_http_version_to_string and cherokee_http_method_to_string

	* src/logger_ncsa.c (cherokee_logger_ncsa_write_access): Added
	user ID support.

	* src/logger_ncsa.c: Little clean up.  There were unneeded macros.

	* src/read_config_grammar.y, src/read_config_scanner.l,
	cherokee.conf.sample.in: Added "LogFlushInterval" configuration
	entry to set the elapse time before write down the log to disk

	* src/handler_cgi.c (cherokee_handler_cgi_add_headers): Rewritten.

	* src/read_config_scanner.l: Added "HTTP sort" URLs to grammar.
	T_FULLDIR, T_HTTP_URL shorted.

	* src/socket.c (cherokee_socket_read): Bugfix


2004-04-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_move_to_begin): Better
	implementation.

	* src/common.h: Added new MIN and MAX macros

	* src/access.c (parse_ip): There was a memory error compiling
	Cherokee without IPv6 support and trying to parse an v6 IP
	address.

	* src/server.c (cherokee_server_init): Thread creation is now the
	last action in the init sequence.

	* src/server.c (initialize_server_socket): Jump on non-initialized
	variable bug fixed.

	* src/access.c (cherokee_access_add_ip): Added a better error
	handling.


2004-04-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c (cherokee_handler_file_init): Better error
	handling when creating the mmap object.

	* cherokee.conf.sample.in: Gzip encoding section commented by
	default.

	* configure.in: Fixed common handler compilation

	* src/Makefile.am (handler_common): Compilation order changed to
	ensure that the "handler common" can link with phpcgi, dirlist,
	etc..

	* configure.in: Fixed getopt_long for system(s?) with libiberty
	but not getopt.h header file - AFAIK, only Solaris.

	* src/read_config_grammar.y, src/icons_grammar.y: Global variables
	of the analizer has been set to "static" to prevent linkage
	problems in Solaris.

	* configure.in: inet_pton detection fixed.


2004-04-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/access.c (s6_addr32): Dropped out the usage of s6_addr32.
	It will help to compile in Solaris

	* src/sha1.h, src/sha1.c: Replaced u_int32_t by uint32_t.  It was
	not compiling in Solaris because of it.

	* src/socket.c (cherokee_socket_ntop): SunOS 5.9 compilation bug
	fixed.

	* src/Makefile.am, bench/main.c: FreeBSD 4.8 with GCC 2.95
	compilation fix


2004-04-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* qa/cherokee-test.py: Added a test to check the Python version.
	It needs >= 2.3

	* configure.in: Added GNUTLS version to 1.0.4
	
	* configure.in: Added check for getopt_long function in the
	gnugetopt or iberty library

	* doc/Intro.txt: Little update

	* src/fdpoll.c, src/fdpoll.h, bench/bench.c, bench/thread.c,
	bench/thread.h, doc/Intro.txt, src/connection.c, src/server.c,
	src/thread.c, src/thread.h: Now, the file descriptors poll class
	uses two parameters: per thread fd limit, and global system fd
	limit.

	
2004-04-04  Taher Shihadeh  <taher@shihadeh.net>

	* doc/Intro.txt: LOT of fixes :-)


2004-04-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (cherokee_thread_new), src/read_config_scanner.l,
	src/read_config_grammar.y, src/server.c, src/server.h: Added
	support for choosing the scheduling policy from the config file


2004-04-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (__accept_from_server): Better error handling of
	failed connections.

	* src/fdpoll.c (fdpoll_epoll_check): Some small fixes.

	* src/server.c (print_banner): Added more information to the
	banner line.


2004-03-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.15 released

	* Makefile.am, src/Makefile.am: distcheck fixed.  Now, it removes
	all the installed files.
	
	* Makefile.am (uninstall-local): Added mime.conf and icons.conf

	* bench/Makefile.am (INCLUDES), configure.in: Fixed compilation
	from remote directories (like in distcheck)

	* src/thread.c (cherokee_thread_new): Fixed gcc 2.95 compilation
	problem

	
2004-03-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (cherokee_thread_new): Fixed single thread version
	of the server.
	

2004-03-27  Gunnar Wolf  <gunnar@debian.org>

	* Debian packages writted from scratch (with DebHelper)


2004-03-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/common.h: Added new macro CHEROKEE_NEW2

	
2004-03-23  Eugene Rosenzweig  <eugene259@dodo.com.au>

	* src/common.h, src/header.c, src/access.c:
	(parse_request_first_line): Compilation bugfixes.

	
2004-03-22  Antonio Buiza Calero  <antonio@buiza.org>
	
	* src/main.c: Fixed header inclusion to fix the FreeBSD 4.8
	compilation.

	
2004-03-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Fixed crypt_data detection

	* src/access.c (s6_addr32): Fixed BSD support

	* src/validator_htpasswd.c (validate_crypt): #ifdef Bugfix

	* bench/Makefile.am (cherokee_bench_LDADD), src/Makefile.am
	(cherokee_LDADD): Added pthread library
	

2004-03-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/http.h, src/connection.c (add_error_code_string_to_buffer):
	Added error code 411 "Length Required"


2004-03-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Fixed detection of crypt_r.  Now it is not a
	critical error.

	* configure.in: Fixed kqueue and select detection.

	* configure.in: Improved visualization of supported polling methods.

	* src/handler_cgi.c (cherokee_handler_cgi_init): Better error checking
	

2004-03-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (get_encoding,
	cherokee_connection_parse_header): Added better error handling.

	* qa/tests/Test01.py: Added two new tests: "overflow range
	detection" and "switched range detection".

	* src/connection.c (get_range): Added switched range detection check.

	* qa/tests/Test01.py: Range tests rewritten. Much cleaner code.

	* src/handler_file.c (cherokee_handler_file_init): Added check for
	partial requests out of range.

	* src/http.h (http_not_modified_string), src/connection.c
	(add_error_code_string_to_buffer): Added error code 416,
	"Requested range not satisfiable".


2004-03-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Released 0.4.14

	* qa: Added new directory

	* src/handler_file.c (cherokee_handler_file_init): Fixed "Range:
	bytes=" with mmap()ed content


2004-03-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/module_loader.c (dylib_open): Removed gbl_buffer usage

	* src/connection.c (get_range): Rewritten without gbl_buffer

	* src/read_config_grammar.y (T_FULLDIR): Removed gbl_buffer usage


2004-03-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench: Added file descriptor number limitation.

	
2004-03-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c (cherokee_handler_cgi_init): Better error
	reporting

	* configure.in: Really stupid bug fixed: s/echo -e/echo -n/ 
	It was counting the new line character as version string.


2004-03-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_move_to_begin): Bugfix

	* src/socket.c (cherokee_socket_read): Better error checking

	* src/header.c (cherokee_header_parse): Header endding calculation
	fix.

	* src/server.c: FreeBSD compilation problem.  Fixed by Petr Holub
	hopet@ics.muni.cz

	* src/connection.c (cherokee_connection_clean): Fixed pipelining
	bug.  It was failing with FireFox 0.8 (with the
	network.http.pipelining parameter actived)
	
	* src/fdpoll.h, src/fdpoll.c: Dropped out get_fd_limit().  Added
	new parameter to the _new method.
	
	* src/server.c (cherokee_server_init): Threads init change to set
	a file descriptors number limit per each

	* src/handler_mono.c (cherokee_handler_mono_init): Better error
	reporting when the handler can not contact xsp server
	

2004-03-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, src/configure.in : Version management
	improvement.

	* src/module_loader.c: Better error reporting on module loading
	fails.

	* src/validator_htpasswd.c: Added crypt_r emulation function for
	multithreaded systems that don't support it (like Solaris).

	* src/header.c (cherokee_header_get_number,
	cherokee_header_foreach):  Implemented.

	* src/validator_htpasswd.c (validate_crypt): Little fix in crypt_r
	usage.  It was accessing a memory area in the heap that maybe
	could be dropped out.

	* configure.in: Fixed compilation bug around -D_XOPEN_SOURCE=500
	parameter.

	* Released 0.4.13
	
	* src/fdpoll.c: Better error reporting from epoll functions

	* src/server.c: Dropped out add_socket_to_thread_fdpolls.  With the
	new polling method it is not needed.  Reported by Yusuf
	Goolamabbas <yusufg@outblaze.com>.
	

2004-03-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: New crypt_r detection: -D_GNU_SOURCE

	* src/connection.c (send_buffer_unsafe): Error handling fix.

	* src/validator_htpasswd.c (validate_crypt): Empty user fix.

	* src/server.c (cherokee_server_init): chroot bug fixed. Reported
	by Haas Wernfried <w.haas@xover.htu.tuwien.ac.at>.

	* src/socket.c: Added filio.h include

	* src/connection.c, src/connection.h, src/header.c, src/thread.c,
	src/thread.h: Finished the pipelining support.

	* configure.in: Some places was using "$with_threads" instead
	"$with_phtread".

	* src/header.c (cherokee_header_parse): Pipelined header fix


2004-03-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c (cherokee_handler_file_init): It should not
	use mmap() content if it will use an encoder.

	* src/read_config_grammar.y:  Fixed bug reading encoders related
	information.

	* src/validator_htpasswd.c: Fixed authentication bug.  Reported by
	Haas Wernfried <w.haas@xover.htu.tuwien.ac.at>.


2004-03-06  Hiroshi Yamashita <piro7@SoftHome.net>

	* src/access.c, src/connection.c, mmap.c, src/handler_file.c,
	src/server.c: Compilation fixes for FreeBSD

	* src/fdpoll.h, src/fdpoll.c: Added support for kqueue()


2004-03-05  Yusuf Goolamabbas  <yusufg@outblaze.com>

	* bench/main.c (main): Parsing parameters bugfix.


2004-03-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/header.c (cherokee_header_get_length): Added new method

	* Released 0.4.12

	* src/thread.c, src/connection.c: Fixed bug.  It was only doing
	one keepalive connection.  Now it does MAX_KEEPALIVE.

	* src/common.h: Fixed inclusion of stdint.h
	It didn't compile in Solaris 9.  Fixed by Ivn Chavero.


2004-03-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Switch threading support.  Now, it enabled by
	default.

	* src/Makefile.am (libcherokee_la_LIBADD): Removed CRYP_LIBS

	* src/mime.c (cherokee_mime_get): Warning fixed


2004-03-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_mono.c: More code around the Mono-Cherokee
	integration.

	* src/read_config_grammar.y: Added new handler property "socket"
	for the ASPX (Mono) handler.

	* src/header.c, src/header.h (cherokee_header_copy_method,
	cherokee_header_copy_version): Added new methods.


2004-03-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_mono.c, src/handler_mono.h: Added new handler


2004-02-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* 0.4.11 released

	* bench/url_grammar.y, bench/url_grammar.l, bench/bench.c,
	bench/Makefile.am: Added support for reading URL files.

	* src/common.h: Added stdind.h include by default

	* src/http.h: Added http_put enum entry

	* bench/request.c (cherokee_bench_request_build_string): Added new method

	* bench/url.c (cherokee_url_build_string): Added new method


2004-02-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench/.cvsignore: Added url_* from lex & bison

	* bench/bench.c: It uses the new class "request" instead the "url"
	one.  "url" now contained in "request".

	* bench/request.c, bench/request.h: Added new class
	
	* src/common.h: Added new type cherokee_boolean_t


2004-02-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* debian/rules, debian/control: Added new package cherokee-bench

	* debian/rules: Added --enable-pthreads


2004-02-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench/info.c, bench.h: New class

	* bench/bench.c, bench/bench.h, bench/main.c: Big clean up.

	* bench/url.h, bench/url.c: Add port URL class

	* bench/main.c, bench/bench.h, bench/bench.c: Remove port form
	these classes.
	

2004-02-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* bench, bench/bench.c, bench/bench.h, bench/cherokee-bench,
	bench/connection.c, bench/connection.h, bench/main.c,
	bench/thread.c, bench/thread.h: Added new benchmarking
	utility. This is the initial version.


2004-02-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/header.c, src/header.h, src/http.h, src/socket.c,
	src/socket.h: Code clean up for better support of TLS.

	
2004-02-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_recv): Rewritten. It is
	faster and cleaner than the previous version (uses the new
	cherokee_buffer_read_from_fd function).

	* src/buffer.c (cherokee_buffer_multiply): Add new method

	* src/buffer.c (cherokee_buffer_read_from_fd): New method


2004-01-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c, src/mime.c, src/mime.h, src/mime_grammar.y:
	Changed property mime_name of the mime entry class from a char *
	to a cherokee_buffer_t * to know the length in handler_file and
	copy the string faster.

	* mime.conf.sample: Added new xhtml and openoffice.org mime types
	

2004-01-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* debian/rules: Updated mime. Added cherokee-config.1 to man pages
	installation.

	* src/mime_scanner.l, mime_grammar.y, src/Makefile.am,
	src/common.h, src/handler_file.c, src/handler_file.h,
	icons_grammar.y, src/icons_scanner.l, src/mime.c, src/mime.h,
	read_config_grammar.y, src/server.c, src/server.h, Makefile.am,
	mime.conf.sample: Added new mime configuration system.

	* Cherokee 0.4.10 released


2004-01-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: epoll() detection rewritten There was a problem
	reported by Yusuf Goolamabbas.


2004-01-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Cherokee 0.4.9 released

	
2004-01-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Removed check for poll_emu

	* src/fdpoll.c: Added support for select()

	* src/poll_emu.c, src/poll_emu.h: Dropped out!

	* debian/copyright (Copyright): Removed poll_emu license.
	

2004-01-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Cherokee 0.4.8 released


2004-01-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c
	(cherokee_connection_send_response_page_hardcoded): Fixed crosss
	site scripting bug. Bug #29: http://bugs.alobbs.com/29

	* src/buffer.c, src/buffer.h, src/connection.c, src/fdpoll.c,
	src/fdpoll.h, src/server.c: Some work to add select() to fdpoll.


2004-01-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (print_banner): Added the polling method to the
	banner.

	* src/fdpoll.c, src/fdpoll.h: Added get_method method.


2004-01-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_build_header): Fixed
	non-200 type responses.


2004-01-20  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.7 released

	
2004-01-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_send_header_and_mmaped): 
	Fixed partial content management.


2004-01-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/access.c, src/common.c, src/connection.c, src/connection.h,
	src/handler_server_info.c, src/handler_table_entry.h,
	src/header.c, src/icons.c, src/icons.h, src/log.c, src/mmap.c,
	src/module_loader.c, src/module_loader.h,
	src/read_config_grammar.y, src/server.c, src/server.h,
	src/socket.c, src/thread.c: Clean up to avoid compilation
	warnings.

	* src/common.c: Dropped vsyslog() usage.

	* src/server.c (initialize_server_socket6): Moved setsockopt()
	calls to set_server_socket_opts() function.


2004-01-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c (cherokee_handler_file_add_headers): Switched
	from two calls of cherokee_buffer_add() to one of
	cherokee_buffer_add_va()
	

2004-01-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c (cherokee_handler_file_init): Fixed mmaped
	content problem.
	

2004-01-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c: Big changes to improve multithreaded mode.

	* src/thread.c: (set_sigpipe):  Added SIGBUS

	* src/server.c (print_banner): Fixed banner

	* configure.in: Added check for poll.h


2004-01-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/fdpoll.c (fdpoll_poll_new): Clean ups


2004-01-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c, src/connection.c: Fixed EAGAIN error management as
	result of read()
	

2004-01-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/mmap.c:  Now, it's thread-safe.

	* src/mmap.h, src/mmap.c:  Fixed function prototipes that did not
	return ret_t.

	* src/common.h: Added CHEROKEE_RWLOCK_* macros.

	
2004-01-08  Ayose Cazorla Len   <setepo@gulic.org>

	* src/handler_cgi.c:  Fixed <defunct> processes.

	
2004-01-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/mmap.h, src/mmap.c (cherokee_mmap_init,
	cherokee_mmap_get_default): Added new methods.


2004-01-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/common.h (CHEROKEE_MUTEX_TRY_LOCK): Added new macro.

	* src/connection.c (cherokee_connection_open_request): Fixed
	keep-alive management.

	* src/header.c (parse_first_line): Fixed bug in HTTP protocol version
	detection code.

	* src/Makefile.am: Fixed PAM library usage

	* src/handler_file.c (cherokee_handler_file_init): Mime fix.

	* src/mime.c (cherokee_mime_init_with_file): Added a better error
	checking.

	* configure.in: Some clean up.


2004-01-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Fixed bug in module static compilation.
	Added code for drop out modules that will not be compiled.

	* src/access.c, src/buffer.c, src/common.h, src/connection.c,
	src/connection.h, src/fdpoll.c, src/header.c, src/logger_ncsa.c,
	src/logger_w3c.c, src/module_loader.c, src/read_config_grammar.y,
	src/read_config_scanner.l, src/server.c, src/server.h,
	src/socket.c, src/socket.h, src/thread.c, src/thread.h: Lot of
	changes to improve threaded mode.

	* src/read_config_grammar.y (thread_num): Dropped out #ifdef
	HAVE_PTHREAD

	* src/access.c (parse_netmask): Fixed /128 mask.

	* src/header.c (cherokee_header_parse): Fixed bug:
	HEADER_INTERNAL_DEBUG was not defined previously.

	* src/validator_htpasswd.c: Added MD5-digest passwords support.

	* src/logger_w3c.c (cherokee_logger_w3c_write_string): Fixed bad
	use of syslog() function that could compromise the server.
	Reported by Matthew Murphy <mattmurphy@kc.rr.com>


2004-01-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y (ip_list): Added parsing of "Allow
	from" sentences inside directory configuration.


2004-01-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.c (cherokee_handler_cgi_init): Change the
	current directory to to the program's own directory.

	* src/read_config_scanner.l: Added rule to parse IPv6 addresses.

	* src/access.c, src/access.h, src/buffer.c, src/buffer.h,
	src/cherokee.h, src/cherokee_modules.c, src/common.c,
	src/common.h, src/connection.c, src/connection.h, src/encoder.c,
	src/encoder.h, src/encoder_fixer.c, src/encoder_fixer.h,
	src/encoder_gzip.c, src/encoder_gzip.h, src/encoder_table.c,
	src/encoder_table.h, src/fdpoll.c, src/fdpoll.h, src/handler.c,
	src/handler.h, src/handler_cgi.c, src/handler_cgi.h,
	src/handler_common.c, src/handler_common.h, src/handler_dirlist.c,
	src/handler_dirlist.h, src/handler_file.c, src/handler_file.h,
	src/handler_gnomevfs.c, src/handler_gnomevfs.h, src/handler_nn.c,
	src/handler_nn.h, src/handler_php4.c, src/handler_php4.h,
	src/handler_phpcgi.c, src/handler_phpcgi.h, src/handler_redir.c,
	src/handler_redir.h, src/handler_remote_control.c,
	src/handler_remote_control.h, src/handler_server_info.c,
	src/handler_server_info.h, src/handler_table.c,
	src/handler_table.h, src/handler_table_entry.c,
	src/handler_table_entry.h, src/header.c, src/header.h, src/http.h,
	src/icons.c, src/icons.h, src/list_ext.c, src/list_ext.h,
	src/log.c, src/log.h, src/logger.c, src/logger.h,
	src/logger_ncsa.c, src/logger_ncsa.h, src/logger_table.c,
	src/logger_table.h, src/logger_w3c.c, src/logger_w3c.h,
	src/main.c, src/match.c, src/match.h, src/matching_list.c,
	src/matching_list.h, src/mime.c, src/mime.h, src/mmap.c,
	src/mmap.h, src/module.c, src/module.h, src/module_loader.c,
	src/module_loader.h, src/ncpus.h, src/server.c, src/server.h,
	src/socket.c, src/socket.h, src/table.c, src/table.h,
	src/thread.c, src/thread.h, src/validator.c, src/validator.h,
	src/validator_htpasswd.c, src/validator_htpasswd.,
	src/validator_pam.c, src/validator_pam.h, src/validator_plain.c,
	src/validator_plain.h, src/virtual_server.c, src/virtual_server.h:
	Update copyright notice.

	* src/access.c (cherokee_access_ip_match): Added initial version
	of access class for filtering based in IP addresses.


2003-12-31  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-20031231 released


2003-12-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/socket.h: Added two new macros: SOCKET_ADDR_IPv4,
	SOCKET_ADDR_IPv6


2003-12-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_common.c (common_init): Added dependency
	initialization of the phpcgi module.

	* src/handler_phpcgi.c (phpcgi_init): Added security check for the
	PHP interpreter executable.
	

2003-12-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/md5.h: Added config.h


2003-12-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_encode_md5): Renamed to
	cherokee_buffer_encode_md5
	

2003-12-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c: Fixed DoS problem with POST requests. Reported
	by vnull@pcnet.com.pl.
	

2003-12-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.in: Added a /remote directory which uses
	the remote_control handler.
	

2003-12-25  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-20031225 released


2003-12-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_server_info.c (add_data_sent_row): It now uses the
	new method get_total_traffic.

	* src/server.c (cherokee_server_get_total_traffic): Added new
	method.

	* src/header.c (cherokee_header_get_arguments): Bug fix. It was
	getting just the first argument.

	* src/handler_server_info.c
	(cherokee_handler_server_info_add_headers): changed
	cherokee_buffer_add_va -> cherokee_buffer_add


2003-12-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_send_header): Added
	no-cache headers in headers of error pages.
	

2003-12-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Removed phpsite handler and added remote_control
	one.

	* src/server.c, src/server.h (cherokee_server_get_reusable_conns,
	cherokee_server_get_active_conns): Add new methods.

	* src/handler_common.c (cherokee_handler_common_new): There was a
	problem when it got a request for a directory and it contained a
	index.php (included in DirectoryIndex conf entry) that should be
	executed. Fixed.

	* src/read_config_grammar.y (directoryindex): It was storing the
	list of index files inverted. Fixed.

	* src/list_ext.c, src/list_ext.h (cherokee_list_add_tail): Added
	new function.

	* src/header.c (HEADER_INTERNAL_CHECK): Verbose output

	* cherokee.conf.sample.in: Added index.php to the default
	DirectoryIndex tag.

	* cherokee-config.1: Added to CVS.


2003-12-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee-config.1, Makefile.am (man_MANS): Added new manual page
	to be Debian policy compliant. :-p
	

2003-12-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_server_info.c (PAGE_HEADER): Fixed space after CRLF\

	* debian/copyright: Changed the licence of the MD5 code.

	* src/md5.h, src/md5.c, configure.in, src/buffer.c: Changed the
	RSA Data Security Inc. copyrighted code by a really free one.


2003-12-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (process_active_connections): Fixed managing for
	HTTP 3xx responses.  They were managed as HTTP 2xx responses.


2003-12-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c (check_cached): "If-None-Match" processing
	fixes.

	* src/read_config_grammar.y (userdir): Fixed error reporting when
	Cherokee can not load a handler.

	* src/thread.c (process_active_connections): Bug fixed.  It was
	logging the HTTP 300 responses as error messages.

	* src/connection.c (cherokee_connection_parse_get_header): Dropped
	out.  It was using the old header processing method.

	* src/handler_file.c (check_cached): Change to use the new header
	processing method.
	

2003-12-10  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-20031210 released


2003-12-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.m4: Updated from 0.4.2 to 0.4.5

	* src/handler_gnomevfs.c (cherokee_handler_gnomevfs_new): Fixed
	GNOME-VFS handler compilation
	

2003-12-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/header.c (cherokee_header_get_arguments): It uses strsep()
	instead of strtok() to avoid the silly on-by-one bug of strtok:
	==25427== Invalid read of size 1
	==25427== at 0x402F349A: strtok (in /lib/libc-2.3.2.so)

	* src/buffer.c (cherokee_buffer_move_to_begin): Changed memcpy to
	memmove to avoid possible memory overlapping.

	* src/header.c (HEADER_INTERNAL_CHECK): Added new check to ensure
	the sanity of the information stored in the object

	* src/handler_cgi.c, src/header.c, src/header.h, src/thread.c:
	Fixed memory problem.  The header class was storing pointers to
	the content of a buffer that could be reallocated.


2003-12-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c: cherokee_connection_parse_args() function now
	uses the ::get_arguments() method.  Dropped out the previous
	implementation.

	* src/header.c (cherokee_header_get_arguments): Added new method

	* src/handler_cgi.c (_set_envs_cgi): Added HTTP_USER_AGENT
	enviroment variable.
	

2003-12-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_clean): Fixed virtual
	server managing problem with Keep-alive connections.


2003-12-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_server_info.c: Added a new "General Information"
	section.

	* src/thread.c: It sets the server and the default virtual server
	by default to all connections for security reasons.

	* src/connection.h, src/connection.c, src/virtual_server.c,
	src/virtual_server.h: It stores the received and sent information
	per virtual host instead of just the tx.
	

2003-12-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_common.c (cherokee_handler_common_new): Bugfix
	handling PHP index files.


2003-12-04  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-20031204 released


2003-12-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y: improved error reporting and some
	clean ups

	* src/connection.c, src/virtual_server.c, src/virtual_server.h:
	Added data sent counter per virtual host.

	* src/handler_server_info.c: Added data sent row.  It shows the
	amount of data with the right suffix (Kb, Mb, Gb, Tb, ..)


2003-12-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for spread library:
	http://www.spread.org

	* src/handler_server_info.c, src/server.c, srv/server.h: Added
	uptime support.

	* configure.in: Static / Dynamic module compilation improved.
	Some clean ups and new parameter --enable-static-module=all to
	compile statically all the modules.

	* src/handler_server_info.c, src/logo.inc: The handler server_info
	can return a GIF image with the logo.

	* src/handler_server_info.c: Added icons table.

	* contrib/bin2buffer.py, contrib/Makefile.am: Added a mini-utility
	to encode binary content inside a Cherokee buffer.


2003-12-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_server_info.c: Added mew handler to get information
	about the server.

	* src/read_config_grammar.y (thread_number): Fixed problem with
	the thread number.  There was an error when Cherokee was compiled
	wihtout pthread library support.

	* src/connection.c (cherokee_connection_get_request): Remove "./"
	strings from the query.

	* src/buffer.c (cherokee_buffer_decode): Replace null bytes (%00)
	with spaces to prevents attacks.

	* src/buffer.c (cherokee_buffer_remove_string): Added new method.

	* src/common.c (PRINT_DEBUG): Added new debugging function


2003-11-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Updated GNUTLS depencente to version 0.9.99.

	* src/Makefile.am: Fixed GNUTLS compilation support

	* src/buffer.c (cherokee_buffer_remove_dups): Added new method

	* src/connection.c, src/header.c, src/http.h, src/thread.c: Added
	OPTIONS method support.
	
	* src/connection.c (delete_double_slash): Fixed potential security
	problem with corrupted URLs.


2003-11-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* validator_plain.h, validator_plain.c, cherokee.conf.sample,
	src/Makefile.am, configure.in: Added new Plain Text validator
	module.

	* src/encoder_gzip.c, src/connection.c, src/encoder.h,
	src/encoder_gzip.h, src/handler.h, src/handler_file.c,
	src/server.c, src/thread.c: Improvements in the GZip encoder.
	

2003-11-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (cherokee_server_new): Better error handling in TLS
	init.


2003-11-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y, connection.c, server.c, server.h,
	thread.c, virtual_server.c, virtual_server.h: Added virtual
	servers aliases.  Now, a virtual sever can have more than one
	domain server name.

	* src/connection.c (cherokee_connection_get_request): Fixed bug in
	the "Host" header parsing

	* src/buffer.c (cherokee_buffer_print_debug): Print a CRLF at the
	end of the block.


2003-11-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/encoder.c, src/connection.c, src/encoder.c, src/encoder.h:
	Fixed _init() method of the encoder class.

	* src/connection.c, src/connection.h: Added a new buffer to the
	connection structure to improve the performance of the
	encoders. cnt->encoder_buffer is reused in all the steps of a
	connection.


2003-11-24  Ayose Cazorla Len   <setepo@gulic.org>

	* src/connection.c,http.h: Added http_moved_temporarily

	* CGI handler: POST added

2003-11-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/encoder_gzip.c: Some code clean-ups

	* src/handler_common.c (cherokee_handler_common_new): Added check
	to execute PHP code in the suffix is ".php"

	* configure.in, src/Makefile.am: Fixed problem for system with
	crypt() in the libcrypt library

	* src/connection.c, src/connection.h, src/header.c, src/header.h,
	src/thread.c:  Added POST method support.


2003-11-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (process_handler_complex_headers): Added
	"Status:" header support for accept status from CGI or PHP.
	(cherokee_connection_open_request): Fixed KeepAlive problem with
	CGIs.

	* src/connection.c, src/connection.h: Some query_string related
	clean ups.

	* src/handler_cgi.c (cherokee_handler_cgi_add_headers): Method
	rewritten.

	* src/header.c (cherokee_header_parse): Improved header parsing.


2003-11-23  Ayose Cazorla Len   <setepo@gulic.org>

	* src/handler_cgi.c: Use the cherokee_header API for set 
	 SERVER_NAME a HTTP_COOKIE vars

	* src/handler_phpsite.{c,h}: Very basic handler to combine the
	common handler and phpcgi

	* configure.in, src/Makefile.am: Compile phpsite handler

	* src/handler_cgi.c, src/header.c: Some fixes to the CGI

	* src/buffer.c (cherokee_buffer_make_empty): Bugfix

	
2003-11-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_cgi.h, src/handler_cgi.c:  Added initial version of
	PHP handler (forking as CGI).


2003-11-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>,
	    Christopher Pruden   <pruden@dyndns.org>

	* src/Makefile.am, src/buffer.c, src/buffer.h,
	src/cherokee_headers.c, src/connection.c, src/connection.h,
	src/handler_cgi.c, src/handler_file.c, src/header.c, src/header.h,
	src/http.h, src/logger_ncsa.c, src/logger_w3c.c, src/thread.c:
	Added new header parsing method.


2003-11-19  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-20031119 released


2003-11-16  William Jon McCann  <mccannwj@pha.jhu.edu>

	* src/Makefile.am: Fixed build on Fedora Linux.


2003-11-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>, Ramon Pons <rpons@rinu.org>, Juan Badia <jubapa@alobbs.com>

	* src/read_config_grammar.y, src/server.c: Added dynamic timeout
	support in connection headers.

	* src/server.c (look_for_new_connection): Optimized connection
	time-out. It uses the server bogo_now entry instead of a time()
	system call.

	* src/common.h: Changed "#ifdef HAVE_PTHREADS" to "#ifdef
	HAVE_PTHREAD". It fixes lots of random crashes and race
	conditions.


2003-11-11  Ramon Pons Vivanco  <rpons@rinu.org>
	
	* icons/*.png: Added 5 new icons.

	* icons.conf.sample: Added the new icons to the sample configuration
	file.


2003-11-11  Christopher Pruden  <pruden@dyndns.org>

	* src/buffer.c (cherokee_buffer_decode): Fixed segmentation fault
	on empty buffer.


2003-11-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (get_uri): Bugfix in query_string processing


2003-11-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y (maybe_auth_option_params),
	src/module_loader.c: Error reporting clean up.

	* src/thread.c (thread_routine), src/main.c: Fixed concurrency
	problem. Now, each thread catch the broken pipe signal to avoid
	randomly crashes if Cherokee run in threaded mode.

	* src/sha1.c: Fixed a byte order problem

	* src/common.h: Added byte order macros

	* src/endian_fix.h, src/Makefile.am: Removed

	* configure.in: Added check for endianness

	* src/thread.c (cherokee_thread_free): Fixed race condition.


2003-10-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added support for GNU/Linux distributions with
	2.6.0 kernels but without a libc with epoll() support. (Like
	Debian at this moment). Added condition to compile TLS/SSL:
	--dissable-tls


2003-10-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (get_uri): Bug fixed. There were problems with
	some requests if it had complex referers. Reported by Thomas
	Seifert.


2003-10-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (cherokee_server_read_config_string): It'll show an
	error if cannot load the icons configuration file. Reported by
	Thomas Seifert.
	(look_for_new_connection): Bugfix accepting new connections.

	* src/Makefile.am, src/buffer.c, src/connection.c,
	src/handler_cgi.c, src/handler_cgi.h, src/read_config_grammar.y,
	src/read_config_scanner.l, src/server.c, src/server.h,
	src/socket.c, src/socket.h, src/virtual_server.c,
	src/virtual_server.h, configure.in: Lot of changes to add TLS
	support.	


2003-10-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.in, src/read_config_grammar.y,
	src/read_config_scenner.l: Added "SSLCAListFile" configuration key
	entry.

	* src/server.h: port and port_ssl are now unsigned short instead of int.


2003-10-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, openssl.m4: Added check for OpenSSL. 
	Removed liblzo check. Check for GNU TLS commented.

	* src/buffer.c (cherokee_buffer_add): Added sanity check

	* src/handler_cgi.c, src/connection.c: CGI execution improvements.

	* cherokee.conf.sample.in: Commented ErrorDocument.
	It's unset by default.

	* src/validator_htpasswd.c (cherokee_validator_htpasswd_check):
	Client should not download the password file.


2003-10-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c: Added "Date" header.

	* src/handler_file.c (check_cached): Added support for cached
	contents based in Etag ("If-None-Match") and in the time
	("If-Modified-Since").

	* src/tdate_parse.c, src/tdate_parse.h, src/Makefile.am: Added
	new files.

	* src/handler_file.c (cherokee_handler_file_add_headers): Added
	"ETag" and "Last-Modified" headers support.

	* src/buffer.c (cherokee_buffer_encode_hex): Added
	cherokee_buffer_encode_hex() function.


2003-10-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for crypt_r()


2003-10-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* pam.d_cherokee, Makefile.am (install-data-local): Added PAM
	configuration file.

	* cherokee.conf.sample.in: Fixed bug related to icons.conf
	installation place. Reported by Ayose.

	* src/validator_htpasswd.h, src/validator_htpasswd.c,
	src/Makefile.am, src/connection.c, src/read_config_grammar.y,
	src/read_config_scanner.l: Added new validator for htpasswd
	files.

	* configure.in: Added crypt() check.

	* src/read_config_scanner.l: T_QSTRING returns unquoted.

	* src/connection.c, src/connection.h, src/http.h, src/thread.c,
	src/validator.c, src/validator.h: Added authentication support.

	* src/Makefile.am, src/buffer.h, src/handler.c,
	src/handler_file.c, src/handler_file.h, src/logger.c: Clean ups.
	
	* src/validator_pam.c, src/validator_pam.h: Added new validator
	based in PAM library.

	* configure.in: Added check for installed old versions


2003-10-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_decode_base64): Added new function
	to decode Base64. 
	
	* src/buffer.c (cherokee_buffer_encode_md5): Added new function
	to encode MD5.

	* src/icons.c, src/icons.h: cherokee_icons_read_file() renamed to
	cherokee_icons_read_config_file().  Added a new function
	cherokee_icons_read_config_string() to support configuration from
	external programs.


2003-10-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/icons.c, src/icons.h, src/icons_grammar.y,
	src/icons_scanner.l, icons.conf.sample, src/handler_dirlist.c:
	Added new icons managment system.


2003-10-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* icons/image.png, icons/back.png: Added new icons.


2003-10-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/table.c (cherokee_table_while): Added new function.


2003-10-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am: Added src/match.h, src/match.c

	* src/read_config_grammar.y, src/read_config_scanner.l: Added
	Icons configuration entry.

	
2003-10-18  Juan Cespedes  <cespedes@debian.org>

	* src/match.h, src/match.c: Added match() function.
	

2003-10-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c, src/server.h: server->mimetypes_file clean up.

	* Makefile.am, icons.conf.sample: Added new configuration file.


2003-10-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* debian/*: Added Debian GNU/Linux packaging information.

	* src/Makefile.mingw, src/libc_internal, src/libc_interface.h,
	src/libc_interface.c: Added initial Win32 support.


2003-10-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added checks for syslog.h, sys/socket.h

	* src/connection.c
	(cherokee_connection_build_local_directory_userdir): Fixed bug
	with request like: http://server/~user

	* src/handler_dirlist.c (cherokee_handler_dirlist_init): Fixed
	redirect with userdirs.

	* src/buffer.c (cherokee_buffer_move_to_begin): Added check for
	ensure position is great than zero.

	* src/buffer.c (cherokee_buffer_add_buffer): Added new function.

	* src/connection.c, src/connection.h, src/handler.c, src/handler.h,
	src/handler_dirlist.c, src/handler_nn.c, src/handler_redir.c,
	src/module_loader.c, src/thread.c: Dropped out handler->redirect,
	instead it uses conn->redirect.
	

2003-10-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/Makefile.am (libcherokee_nn_la_LIBADD): Added
	libcherokee_redir as dependence of libcherokee_nn


2003-10-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c
	(cherokee_connection_build_local_directory_userdir): Fixed
	redirection to correct URL. Eg: ~alo/dir/dir2 -> ~alo/dir/dir2


2003-10-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/module_loader.c, src/module_loader.h, src/validator_pam.c,
	src/validator_pam.h, src/handler_table.h,
	src/handler_table_entry.c, src/handler_table_entry.h,
	src/handler_table.c, src/cherokee_modules.c,
	src/cherokee_add_static_module.sh: New added files.

	* configure.in, src/Makefile.am, src/buffer.c, src/connection.c,
	src/connection.h, src/encoder_gzip.c, src/encoder_gzip.h,
	src/encoder_table.c, src/encoder_table.h, src/fdpoll.c,
	src/handler_cgi.c, src/handler_common.c, src/handler_dirlist.c,
	src/handler_file.c, src/handler_gnomevfs.c, src/handler_nn.c,
	src/handler_redir.c, src/logger_ncsa.c, src/logger_table.c,
	src/logger_table.h, src/logger_w3c.c, src/module.h,
	src/read_config_grammar.y, src/read_config_scanner.l,
	src/server.c, src/server.h, src/socket.h, src/thread.c,
	src/thread.h, src/validator.c, src/virtual_server.c,
	src/virtual_server.h: Integration with the new module system.
	
	* src/library.c, src/library.h, src/static_encoders.h.orig,
	src/static_handlers.h.orig, src/static_loggers.h.orig,
	src/plugin_table.c, src/plugin_table.h, src/plugin_table_entry.c,
	src/plugin_table_entry.h: Removed files.


2003-10-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for PAM


2003-10-08  Juan Cespedes <cespedes@debian.org>

	* src/buffer.c (cherokee_buffer_add): Fixed bug: Off-by-one.
	

2003-10-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/module.c, src/validator.h, src/validator.c: Added initial
	version.

	* src/common.h: Added deny to ret_t.


2003-10-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/module.h: Added.


2003-10-05  Stuart Herbert <stuart@gentoo.org>

	* Makefile.am: Fixed a couple of problems.


2003-10-02  Silvio Ventres <navigator@altern.org>

	* src/fdpoll.c, src/thread.c: Fixed epoll() support.
	On socket error, it'll close the connection ASAP.


2003-09-28  Alvaro Lopez Ortega <alvaro@alobbs.com>

	* src/thread.c (process_active_connections): Fixed bug #21
	http://bugs.alobbs.com/21.


2003-09-10  Pablo Neira <pneira@optimat.com>

	* src/thread.c (process_active_connections): Bug fixed.  On
	security check failure, the connections wasn't a virtual host
	reference.  Now, it uses the default one. 


2003-09-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c (process_active_connections): Fixed bug #19
	http://bugs.alobbs.com/19

	* src/read_config_grammar.y: Moved logging entry from "server"
	to "virtual server" entry.


2003-09-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Removed stolen code from SCO Unix System V


2003-08-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (cherokee_server_read_config_file): Now, it stores
	the last configuration filename.  Maybe the server will need it 
	if it receives a HUP signal.
	(cherokee_server_read_config_file): Fixed reloading.  There was
	a bug reusing a Yacc+Lex parser.
	

2003-08-20  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-030820 release


2003-08-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/main.c (process_parameters): Added argument support

	* src/read_config_grammar.y (T_FULLDIR): Fixed compilation w/o
	GNU/TLS library

	* src/thread.c, src/connection.c, src/virtual_server.c: Fixed
	"ErrorDocument XXX http://url" redirection feature.

	* src/connection.c (send_buffer_unsafe): Improvement.  If it was an
	error sending the buffer, it turns off the keepalive flag.


2003-08-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* cherokee.conf.sample.in, src/connection.c, src/connection.h, 
	src/http.h, src/read_config_grammar.y, src/read_config_scanner.l, 
	src/thread.c, src/virtual_server.c, src/virtual_server.h:
	Added "ErrorDocument" support.  Custom error pages based on
	file content or redirections.

	* cherokee.conf.sample.in, src/connection.c,
	src/read_config_grammar.y, src/read_config_scanner.l,
	src/server.c, src/server.h,  src/virtual_server.c: Added
	"MaxKeepAliveRequests" configuration parameter.


2003-08-17  Ramon Pons Vivanco  <rpons@rinu.org>

	* doc/SSL-howto.html: Added self signed certs script


2003-08-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y, src/virtual_server.c, 
	srv/virtual_server.h. src/read_config_scanner.l: 
	cherokee.conf.sample.in: Some work around the GNU/TLS support

	* doc/SSL-howto.html: Added u-Howto to manage SSL certs

	* src/server.c (cherokee_server_daemonize): Added new method


2003-08-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for GNUTLS and liblzo:
	http://www.gnu.org/software/gnutls/
	http://packages.debian.org/unstable/libdevel/liblzo-dev.html

	* src/connection.c (cherokee_connection_send_response_page),
	src/handler_dirlist.c (cherokee_handler_dirlist_step):
	Now uses the new cherokee_buffer_add_version function

	* src/buffer.c (cherokee_buffer_add_version): Added new
	method


2003-08-16  Ramon Pons Vivanco  <rpons@rinu.org>

	* Cherokee 0.4.6-030816 release


2003-08-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_common.c (cherokee_handler_common_new): 
	Fixed manage of the local directories

	* src/handler_dirlist.c (cherokee_handler_dirlist_new): 
	Fixed incorrect initialization.

	* src/read_config_grammar.y (new_string_to_lowercase): 
	Bugfix

	* configure.in, Makefile.am (EXTRA_DIST), cherokee.pc.in: 
	Added pkg-config support

	* src/buffer.c (cherokee_buffer_read_file): Added new
	method to add the file content to a buffer.
	
	* src/table.c (cherokee_table_clean): Bugfix

	* src/library.c (cherokee_library_get): Added support for
	reloading a running enviroment

	* src/table.c (cherokee_table_clean): Bugfix

	* src/handler_dirlist.c (cherokee_handler_dirlist_step),
	src/read_config_grammar.y, src/read_config_scanner.l:
	Added new feature "HeaderFile" to handler_dirlist to
	insert a header file in the response page.


2003-08-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c (cherokee_handler_file_step): Fixed
	sendfile() bug on FreeBSD. Thanks to Pablo Neira.

	* aclocal.m4 (HAVE_PTHREAD): Removed SAMBA_SENDFILE
	function.  Added sendfile.samba.m4

	* etr_socket_nsl.m4: Added new func ETR_SOCKET_NSL
	http://ac-archive.sourceforge.net

	* doc/draft-coar-cgi-v11-03.txt: Added CGI/1.1 rev3
	documentation

	* src/main.c (restart_server): Clean up

	* src/server.c (cherokee_server_add_directory_index): removed
	(cherokee_server_handle_HUP): Added new function

	* configure.in (HAVE_EPOLL): Bugfix

	* src/encoder_fixer.h, src/encoder_fixer.c, configure.in,
	src/Makefile.am: Encoder fixer dropped out

	* src/server.c (cherokee_server_init), 
	src/read_config_grammar.y, src/read_config_scanner.l: 
	Added chroot

	* src/logger_w3c.c (cherokee_logger_w3c_init),
	src/logger_ncsa.c (cherokee_logger_ncsa_init):
	Set the close-on-exec flag to log file descriptors


2003-08-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/common.h: Fixed bug #12

	* src/connection.c, src/connection.h, src/handler_dirlist.c,
	src/read_config_gramma.y, src/read_config_scanner.l,
	src/server.c, src/server.h, src/thread.c: Fixed bug #14
	http://bugs.alobbs.com/14


2003-08-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/encoder_table.c (cherokee_encoder_table_get): Bugfix

	* src/encoder_fixer.h, src/encoder_fixer.c, configure.in,
	src/Makefile.am: Added new encoder module
	
	* configure.in: Added check for Tidy library:
	http://tidy.sourceforge.net


2003-08-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/mmap.c: Almost implemented. 

	* src/fdpoll.c (fdpoll_epoll_set_mode): Implemented

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Added
	initial support for "Show Owner" (handler_dirlist)

	* table.h, table.c, ....: Added new func
	cherokee_table_get_val() and fixed old calls to cherokee_table_get()
	with the new function interface.


2003-08-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_parse_args): 
	Added new method to process the QueryString and to
	build the argument table of the connection.

	* src/endian_fix.h, md5.c, sha1.c: Fixed FreeBSD compilation
	problem.  Pablo Neira & me.

	* src/connection.c: Some query_string code clean ups


2003-08-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/fdpoll.h, src/fdpoll.c, server.c: Added /dev/epoll support

	* configure.in: Added --disable-epoll option


2003-08-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for FastCGI library.

	* src/handler_common.c (cherokee_handler_common_new),
	src/read_config_grammar.y, src/read_config_scanner.l:
	Added DirectoryIndex support.  Based on the patch submitted
	by Pablo Neira <pneira@optimat.com>
	
	* src/common.h, src/common.c: Added apr_strfsize() function
	from Apache2 to improve handler_dirlist output.
	
	* src/list_ext.h, src/list_ext.c: Added new helper functions to
	manage list easier.
	
	* src/server.c (cherokee_server_free): Virtual servers table
	deallocation and clean done.

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Added
	time and size support.  To set up it, "Show size" and "Show date"
	in cherokee.conf


2003-08-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_grammar.y, src/read_config_scanner.l,
	src/handler_dirlisrt.h, src/handler_dirlist.c: Added 
	parameters: bgcolor, text, link, alink, vlink and
	background.

	* configure.in: Added check for header sys/epoll.h and 
	libepoll.a and epoll()


2003-08-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c: Fixed bug #18


2003-08-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c: Fixed bug #16 


2003-07-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* read_config_grammar.y, read_config_scanner.l, server.c,
	server.h: Added a parameter to (de)active the IPv6 support


2003-07-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (look_for_new_connection): Bugfix
	

2003-07-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* connection.c, encoder_gzip.c, encoder_table.c, handler_cgi.c,
	handler_file.c, library.c, library.h, logger.h, logger_ncsa.c,
	logger_table.c, logger_w3c.c, mmap.c, plugin_table.c,
	server.c, thread.c: Code clean up to compile with "-Wall"

	* src/plugin_table.c (load_plugin_library): Type warning fixed 

	* src/connection.c (delete_double_slash): Fixed bug #17
	(cherokee_connection_new): Removed two unused globals

2003-07-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/plugin_table.c (cherokee_plugin_table_get): Little bugfix


2003-07-20  Ayose Cazorla Len  <setepo@gulic.org>

	* cherokee.conf.sample.in: Directory entry for cgi-bin

	* configure.in, src/Makefile.am: Added libcherokee_cgi

	* src/connection.c,h: Added query_string

	* src/handler_cgi.c,h: The CGI handler for Cherokee


2003-07-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_set_cork): Replaced
	SOL_TCP by IPPROTO_TCP

	* configure.in: Added check for AC_FUNC_MMAP
	Added check for TCP CORK option. Added --enable-gnomevfs,
	the GNOME-VFS handler won't compile by default. Added check
	for stat64


2003-07-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_file.c, src/handler_file.h, thread.c: Added sendfile()
	support.

	* configure.in, acinclude.m4: Added check for sendfile().
	Copy-Paste from the Samba configure.in ;-)
	

2003-07-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added check for pthread_rwlock_t

	* acinclude.m4: Added ACX_PTHREAD macro

	* src/fdpoll.h, src/fdpoll.c, src/server.c, src/server.h,
	src/thread.c, src/thread.h: Thread support is working now


2003-07-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/thread.c, src/thread.h: Added initial version

	* src/read_config_grammar.y (T_THREAD_NUM): Added "ThreadNumber"

	* src/handler_file.c (cherokee_handler_file_init): Code clean up

	* src/connection.h: Removed "handler_file.h" inclusion

	* src/Makefile.am (libcherokeeinclude_HEADERS): Added some forgotten
	header files


2003-07-09  Pablo Neira <pneira@optimat.com>

	* src/connection.h: Patch for FreeBSD compilation


2003-07-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: Added --enable-pthreads option

	* src/logger.c (cherokee_logger_write_string): Rewritten.

	* src/logger_w3c.c, src/logger_ncsa.c: It'll cut the string if
	it's too long and add a \n at the end.

	* src/logger_ncsa.c (cherokee_logger_ncsa_write_error): Bugfix
	working with long requests.

	* src/connection.c (cherokee_connection_send_header): Bugfix. It
	didn't include the connect-type header in the error replies.

	* src/handler_file.c (cherokee_handler_file_init): Fixed bug. It was 
	reporting a error 404 (Not Found) instead 403 (Forbidden) in the
	request for file without reading permission.  Reported by Pablo Neira.

	* src/connection.c (cherokee_connection_send_header): Fixed bug
	 with some kind of corrupted requests.  Reported by Pablo Neira :)

	* src/logger_ncsa.c (cherokee_logger_ncsa_write_error): Fixed
	little bug.


2003-07-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: little bug

	* src/logger_w3c.c, src/logger_ncsa.c: Added syslog support


2003-07-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/common.h (CHEROKEE_TEMP): Added new macro


2003-07-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Makefile.am: Fixed bug #15


2003-07-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/logger_w3c.[ch]: Added new W3C logger

	* src/logger.h, src/logger_ncsa.c, src/logger_ncsa.h: Added the
	new method: cherokee_logger_write_string().  Added the
	write_error() and write_string() to the NCSA logger.


2003-07-02  Pablo Neira <pneira@optimat.com>

	* src/connection.c: Fixed FreeBSD 5.0 compilation


2003-07-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/logger.[hc], src/logger_ncsa.[hc]: Added write_access and
	write_error method and removed the old write one.


2003-07-01  Pablo Neira <pneira@optimat.com>

	* cherokee.spec.in: Updated.
	It has been tested in Red Hat 7.2, 8.0 and Mandrake 9.1

	
2003-07-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/logger_table.[hc]: Added new class

	* src/Makefile.am, configure.in: Fixes for the modular loggers support

	* cherokee.conf.in, src/Makefile.am, src/encoder_table.c,
	src/logger_ncsa.c, src/read_config_grammar.y, src/server.c,
	src/server.h, src/static_loggers.h.orig, src/virtual_server.c,
	src/virtual_server.h: Work on loggers integration. 


2003-06-30  Miguel Angel Ajo Pelayo <ajo@godsmaze.org>

	* src/logger.c src/logger.h: files added for logger modules suport. 
	
	* src/logger_NCSA_common.[ch]: NCSA logger module, based on changes by
	Pablo Neira
	
	* the above files are still not used, untested. 

	
2003-06-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/Makefile.am, src/common.c, common.h, encoder_table.c,
	plugin_table.c, src/read_config_grammar.y: Integrated with
	the new class Library
	
	* src/library.c, src/library.h: Added new class for module loading

	* cherokee.conf.in, src/connection.c, src/encoder.c, src/encoder.h,
	src/encoder_table.c, src/encoder_table.h, src/matching_list.c,
	src/read_config_grammar.y: Added matching support in the encoders.
	The encoder+matching lists support have been partially rewritten.


2003-06-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config_scanner.l, src/read_config_grammar.y: 
	Renamed read_config.l and read_config.y

	* configure.in: Added some checks

	* src/server.c (process_active_connections): Bugfix. Reported by rpons

	* src/handler_dirlist.c (cherokee_handler_dirlist_add_headers): 
	Added header "Content-Type: text/html" to response header of the
	autogenerated pages. Reported by rpons.

	* src/connection.c (cherokee_connection_build_local_directory_userdir): 
	Bugfix for userdir request that hasn't directory. These requests are
	redirected to a slash-finished URL. Eg:
	http://www.alobbs.com/~alo => http://www.alobbs.com/~alo/	
	

2003-06-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/encoder_gzip.c (cherokee_encoder_gzip_encode): GZip
	encoder finished.

	* src/buffer.c (cherokee_buffer_prepend): Added new method
	(cherokee_buffer_print_debug): New debugging methods


2003-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* doc/.cvsignore, doc/Makefile.am, doc/doxygen.cfg: Added doxygen

	* src/buffer.h: Added CRC32 method

	* crc32.h, crc32.c, src/Makefile.am: Added CRC32 code (from postgresql)


2003-06-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c, src/fdpoll.c, src/handler_dirlist.c, src/handler_file.c,
	src/handler_redir.c, src/matching_list.c, src/mime.c, src/plugin_table.c,
	src/plugin_table_entry.c, src/server.c, src/table.c: 
	structures instance clean up.


2003-06-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in, icons/Makefile.am: Added icon directory

	* Makefile.am, configure.in, cherokee.conf, cherokee.conf.in: 
	Removed cherokee.conf. Added the new cherokee.conf.in
	to manage the icon path at installation time
	
	* configure.in, doc/Makefile.am, doc/es/Makefile.am: Added the
	new documentation

	* src/read_config.y: Each directory needs a handler. Added a check
	for this

	* src/connection.c, src/read_config.y: Added DocumentRoot support
	inside of a Directory entry.. aka "Alias" support

	* src/common.h (CHEROKEE_NEW, CHEROKEE_NEW_STRUCT): New macro 
	for object instance


2003-06-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c, src/connection.h, src/encoder.c, src/encoder.h,
	src/encoder_gzip.c, src/encoder_gzip.h,  src/encoder_table.c,
	src/encoder_table.h, src/handler_file.c, src/read_config.y,
	src/server.c: GZip encoder work, and misc.
	(cherokee_connection_step): bugfix

2003-06-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/buffer.c (cherokee_buffer_move_to_begin): Now can set
	an empty string as result

	* src/connection.c (cherokee_connection_build_local_directory_userdir): 
	Bugfix in the request buffer

	* src/server.c (process_active_connections): Bugfix in 
	the "Host: " support


2003-05-31  Ramon Pons  <rpons@rinu.org>

	* src/read_config.y: Compilation problem fixed


2003-05-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (process_active_connections): Bug in 
	host management

	* src/read_config.y: Mostly rewritten

	* src/Makefile.am: Added static_encoders.h.orig
	

2003-05-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/encoder_table.[ch], src/Makefile.am, src/plugin_table,
	src/common.c, configure.in: More work on dynamic/static 
	modules/encoders.


2003-05-23  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config.[yl]: Added "encoder" token and rules

	* src/handler*.[hc]: Changed func_* by handler_func_*

	* src/connection.c (get_host): replaced strstr by strchr
	(get_uri): Added "Accept-Encoding: " detection.
	(cherokee_connection_parse_header): Keepalive detection
	optimized.

	* src/encoder_gzip.[ch]: Added initial version


2003-05-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/Makefile.am (libcherokee_gzip_la): Added new module

	* src/encode.[ch]: Added new files

	* configure.in: Added check for zlib


2003-05-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/handler_dirlist.c (cherokee_handler_dirlist_step): Added
	the "hide version" feature.


2003-05-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c, src/connection.h, src/connection.c, 
	src/handler.h, src/handler.c, src/handler_file.c, 
	src/handler_dirlist.c, src/handler_redir.c, 
	src/handler_nn.c, src/handler_php4.c: Connection
	has a reference to the server.  Now the handlers can
	access to the server configuration.


2003-05-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (get_uri): Security problem fixed.

	
2003-05-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* TODO: Updated


2003-05-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/Makefile.am: Bison and Flex fixes

	* configure.in: GnomeVFS checking fix

	* src/read_config.l, src/read_config.y,
	src/server.h, src/server.c: Add "hide version" feature.


2003-04-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* configure.in: pkg-config detection fixed

	* src/read_config.l: now the '\r' character is 
	"new line" too

	* cherokee.conf: Comment out "User" and "Group"

	* configure.in: Added timezone check

	* src/log.c (cherokee_log), src/common.c (PRINT_ERROR), 
	configure.in: 
	Check for vsyslog to fix Cygwin compilation problems

	
2003-04-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/Makefile.am (CLEANFILES): Added files generated
	by Bison and Flex
	

2003-04-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* *.h: Changed __CHEROKEE2_ by__CHEROKEE_ 


2003-04-16  Pablo Neira  <pneira@optimat.com>

	* src/handler_file.c (cherokee_handler_file_add_headers): 
	changed "Content-type" by "Content-Type"

	* src/handler_file.c (cherokee_handler_file_init): get a 
	"Forbidden" error when try to access to a directory.

	* src/server.c (look_for_new_connection): Get the addr_in
	at accept().

	* src/connection.c (cherokee_connection_log): New log writing
	function CLF (Common Log Format) compliant.

	* src/connection.c (get_uri): HTTP/1.1 needs a Host entry,
	otherwise it's going to be a Bad Request.


2003-04-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/http.h (http_type_[2,3,4,5]00): fixed

	* src/connection.c (cherokee_connection_fill_log): Added

	* src/server.c (process_active_connections): New log system

	
2003-04-15  Pablo Neira  <pneira@optimat.com>

	* contrib/cherokee: Added init.d script for RedHat
	

2003-04-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* contrib/Makefile.am: Added new file

	* doc/Benchmark-0.4.3-pre7.txt: Added new benchmark:
	Cherokee, Boa, thttpd and Apache

	* src/handler.h, src/handler.c, src/handler_common.h,
	src/handler_common.c, src/handler_dirlist.h,
	src/handler_dirlist.c,  src/handler_file.h, src/handler_file.c, 
	src/handler_gnomevfs.h, src/handler_gnomevfs.c,
	src/handler_redir.h, src/handler_redir.c: Partial rewritten.

	* src/handler_nn.h, src/handler_nn.c: Added new handler

	* src/buffer.c (cherokee_buffer_swap_chars): Added
	
	
2003-04-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config.y: Make handler dir finish with a slash

	* src/buffer.c (cherokee_buffer_decode): Added


2003-04-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config.y: UserDir must ends with a slash

	* src/handler_redir.c (cherokee_handler_redir_new): Fixed
	problem if there're any properties

	* configure.in: inet_pton and inet_addr detection work around

	* src/server.c (process_active_connections): Fixed bug
	closing connections
	(look_for_new_connection): Keep-Alive fixed.

	* src/read_config.l: ID can start with a dot.
	Eg: UserDir .web


2003-04-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (process_active_connections): Fixed
	keep-alive related bug

	* src/handler_gnomevfs.c: Added new handler based in the
	GNOME (2.0) VFS library

	* src/server.c (process_active_connections): Rewrited.
	New one is cleanier and faster.


2003-04-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config.[y,l]: Added listen entry

	* configure.in: Added check for GnomeVFS


2003-04-09  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/read_config.[l,y]: Added PidFile configuration entry

	* cherokee.spec.in: Added new file 

	* cherokee.spec.in: Fixed version management

	
2003-04-07  Pablo Neira  <pneira@optimat.com>

	* cherokee.spec: Added spec file to build RPM packages.
	

2003-04-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/connection.c (cherokee_connection_get_request): 
	Fixed vulnerability.  Reported by Pablo Neira <pneira@optimat.com>


2003-03-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* src/server.c (cherokee_server_read_config_string): 
	Fixed.


2003-03-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* TODO: Added "IP Range restrictions"

	* cherokee.1: Added new man page

	* src/server.c (cherokee_server_set_min_latency): Added new
	function

--

2001-12-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>

	* Cherokee started in 2001, but I didn't start this Changelog file
	until March 2003.  Slightly lazy? Yeah.. maybe ;-)
