KLone ChangeLog

$Id: ChangeLog,v 1.85 2010/06/01 20:20:51 tho Exp $

ChangeLog file of KLone - http://koanlogic.com

KLone 3.1.0:
	- *BSD license*
	- Fix timeout initialisation upon select() errors.
	- timerm_reschedule() to reset alarm in signal handler.

KLone 3.0.0:
	- Add IPv6, SCTP, and UNIX IPC support via libu/net.  This change breaks
	  the four following interfaces: request_[gs]et_{local,peer}_addr() which
	  now take and return a constant string instead of a kaddr_t.  Further,
	  the 'addr' directive value syntax has changed in non retro-compatible
	  way -- it's now based on libu/net URIs syntax, e.g.: tcp6://[::1]:8080; 
	  the 'addr.port' and 'addr.type' directives are now suppressed, since 
	  they've been absorbed by the 'addr'; and the 'backlog' directive is 
	  temporarily inhibited (it needs an interface shift in libu/net) and
	  is internally fixed to U_NET_BACKLOG, defaulting to 300.
	- New server loop hook (patch provided by Mickael Auger)
	- Conditional compilation and linking of hooks
	- Fix build when fork(2) is missing, as in uClinux.
	- Fix bug in memory session configuration that prevented use of default
	  values (reported and fixed by Davide Berra).
	- Fix SSL compilation flags missing during cross-compilation.
	- Fix partially uploaded files not cleaned up.
	- Fix bad buffer length in {http,supemb}_is_valid_uri() (reported by
	  Senén de Diego).
	- Multipart/form-data fixes.

KLone 2.4.0:
	- max size estimate of encrypted sessions fixed (session_prv_calc_maxsize)
	- CyaSSL support (HTTPS, resource encryption and client-side sessions)
	- session_set_cipher_key added
	- fix warning caused by missing newline in generated source (reported and 
	  fixed by Mickael Auger)
	- configure: removed redundant parameter from featx doxygen

KLone 2.3.0:
	- Minix 3.8.1 port
	- OpenSolaris+SunStudioExpress port
	- fix a 64-bit platform problem about correct identification of file based
	  sessions
	- fix not-firing timers (reported by Mickael Auger)
	- libu2 merge: use hmap "easy" interface with embfs; integrated JSON
	  encoder/decoder; simplified networking; native BST, priority queue,
	  ring buffer and dynamic arrays.
	- "-c command-line" argument to override configuration
	- apply chroot from configuration under OS_WIN
	- fix minor bug in build (bad clean in makl subdir)
	- exec_page() argument name switched from 'args' to a slightly less 
	  common '_dyp_args' to avoid clash with user local vars
	- fix error page configuration failure on URLs with arguments
	- new emb_list (and emb_list_free) interface to list embfs resources
	- added sample RedHat init script

KLone 2.2.1:
	- fix "can't shift that many" build error on Ubuntu 9 and NetBSD
	- urlencoded variables parsed also when Content-Length == 0 on POSTs
	- added 'temp_dir' configuration variable to override system default temp 
	  directory (L_tmpnam, TMPDIR & friends)
	- added 'klone_sid' configuration variable to override default cookie name
	- HTTPS fix (rollback to http.c:1.64) output io_t dup'd from input io_t
	- added session_get_id() to retrieve a given session id string
	- fix request_get_uploaded_file() prototype (suggested buffer size was
	  wrong and could lead to overruns)
	- added '-n' command line switch to kloned: don't chdir(2) when
	  daemon'izing 

KLone 2.2.0:
	- new url-regex dispatcher (kilt)
	- don't fail on PUT and DELETE requests
	- -fstack-protector-all added by default when supported by the compiler
	- better depencecies check: .d and .kld depend files created (and included)
	  when building (-d switch of klone tool)
	- .kl1 inheritance (new directives: extends, block, endblock, inherit)
	- session init/load/save optimizations

KLone 2.1.1:
	- use session max_age if specified in kloned.conf
	- io_get_until bug fix
	- io_vprintf added
	- contrib/ not built by default
	- bug fix: client request line wasn't properly logged
	- makl and libu resync
	- vars_t now support empty string ("") vars
	- KLONE_CACHE_DIR top-level variable added to cache downloaded files
	- default error page is not printed out if the .kl1 page runs correctly
	  (so the user can set his own error status code from .kl1 pages)

KLone 2.1.0:
	- io_ssl_create client mode support added
	- GET and POST variables can now be accessed indipendently using
	  request_get_{get,post}args and request_get_{get,post}arg functions
	- respawn race fixed
	- response_set_cookie bug fix: s/expire/expires/
	- forward --libs configure argument value to libu build
	- custom error pages response fix
	- kl1 entry functions prefixed with "page_" (.klone page filenames can now
	  start with numbers)
	- added passwd-like authentication (uses libu::pwd)
	- added TLS PSK interface
	- page entry point function fixed to avoid g++ errors 
	- libu sync to export u_pwd module

KLone 2.0.2:
	- bug fix: external libraries were mistakenly found by the ./configure 
	  script in cross compilation environments 

KLone 2.0.1:
	- session_save fix: removing last session var was not possible
	- #line directives fixed in pg_*.c
	- debug hook added in pg_*.c pages
	- minor portability fixes, SA_RESTART check
	- redirects uris ending with /dir to /dir/
	- -p added to save daemon PID to a file
	- vhost impl refactored
	- per-vhost access log support through klog (i.e. syslog, file or in memory)
	- Content-Disposition parser fix
	- Darwin 9 (Leopard) toolchain 
	- Cygwin support added (kloned can run in prefork mode under Cygwin,
	  but you've to install Cygwin on the target machine first)

KLone 2.0.0:
	- virtual hosts support (see etc/kloned-vhost.conf)
	- request_get_client_request, response_get_field and 
	  response_get_field_value  added 
	- index config key added to provide the list of index pages to use when
	  no filename is given (http://site/ or http://site/dir_a/dir_b)
	- per-dir (aka cgi-bin), per-extension (.cgi, .php, etc.) CGI support
	- embfs config file is not loaded if external config file is given (-f file)
	- --enable_fs and --enable_cgi configure args alias added
	- bug fix: sup_fs responses didn't include a valid HTTP header
	- O(1) embfs access via hmap
	- user provided hooks added to get notifies about server startup/stop, 
	  spawn worker children, requests served (--enable_hooks is required)
	- u_{html,url,hex,sql}ncpy() interface changed (return count doesn't include
	  the trailing '\0' anymore)
	- added support for CRLs via 'crl' and 'crl_opts' configuration directives
	- KLONE_TARGET_PATCH_{FILE,URI} and KLONE_HOST_PATCH_{FILE,URI} variables
	  added to provide an easy way to patch Klone source during the build
	- --enable_hooks configure argument added to support user-provided
	  startup/term functions
	- --daemon_name configure argument added to set Klone daemon name
	- --install_daemon_only configure argument added to just install the
	  Klone dameon on 'make install'
	- request, response, session, in and out variables are always in-scope in
	  .kl1 and .klx files
	- CGI support (not on Windows)
	- -Z and -e can be used more then once to provide more then one compress 
	  and/or encrypt file patterns
	- -x argument added to klone tool to avoid importing files that match the 
	  given pattern(s)
	- -F doesn't force iterative mode anymore (use -Fd instead)
	- bug fix: embedded configuration overwrite was broken (libu u_config bug)
	- makl update (ver 1.5.1)
	- libu update (ver 1.1.0)

KLone 1.2.0:
	- bug fix: newline always added after <%! %> C translated code
	- bug fix: posted data can have content-length equal to zero
	- bug fix: unmatched single or double quotes in kl1 blocks no longer cause
	  compilation errors 
	- SA_RESTART used for all signal handlers to avoid EINTR when calling 
	  syscalls from within .kl1 pages
	- more console messages on startup errors
	- makl update (ver 1.3.0)
	- libu update (ver 0.5.0)

KLone 1.1.1:
	- io_is_secure and io_ssl_get_SSL added
	- License update to explicit permit OpenSSL linking
	- request_parse_multipart_chunk fix
	- "Location:" redirect fixed

KLone 1.1.0:
	- cipher IV added to HMAC and to KL1_CLISES_IV cookie
	- makl_target_name used to support MAKL_PLATFORM feature
	- HTTP_STATUS codes moved to http.h
	- klone/os.h code removed (u/libu.h used as a portability layer)
	- response_enable_caching and response_disable_caching added
	- response_del_field added
	- alarm_t renamed to talarm_t to avoid a portability (VxWorks) conflict
	- better startup error reporting
	- children processes die immediately on SIGTERM/SIGINT
	- more standard compliant HTTP response code used
	- REQUEST_URI_MAX_LENGTH and HEADER_MAX_FIELD_COUNT used to avoid 
	  [that type of] DoS
	- better kl1->C translation error reporting
	- minor portability fixes
	- MaKL update (ver. 1.2.0)
	- LibU update (ver. 0.4.0)

KLone 1.0.4:
	- strip target added to kloned (for selective strip when cross compiling)
	- MaKL update (ver. 1.1.1)
	- LibU update (ver. 0.3.2)

KLone 1.0.3:
	- cross compilation support
	- bug fix: bad SSL context free on connection time-out
	- C++ support is optional (--disable_cxx)
	- support LibU minimisation by default: --disable_libu-mini configure arg
	  to compile the full LibU
	- various SSL related updates:
	    - crypto material can be loaded from the host file system too
	    - HTTP/S configuration section added to example-site/kloned.conf
	    - sample server certificate kloned.pem added, 
	    - sample HTTP/S configuration file etc/kloned-https.conf added
	- MaKL update (ver. 1.1.0)
	- LibU update (ver. 0.3.1)

KLone 1.0.2:
	- bug fix: endless reap loop on SIGTERM or SIGINT
	- bug fix: processes handling slow connections didn't term when needed
	- new ports: OpenBSD 3.8, NetBSD 2.0.x, NetBSD 2.1, FreeBSD 6.0
	- MaKL update (ver. 1.0.0)
	- LibU update (ver. 0.3.0)

KLone 1.0.1:
	- first public release

" vim: ts=4
" vim: tabstop=4
" vim: noexpandtab