2015-07-26 Tommi Mäkitalo <tommi@tntnet.org>

 - do not use libtool in project templates for standalone applications

2015-07-20 Tommi Mäkitalo <tommi@tntnet.org>

 - fix syntax error in configure.ac
   some version of autoconf generated a invalid configure script. Indeed it
   was wrong in configure.ac.

2015-07-15 Tommi Mäkitalo <tommi@tntnet.org>

 - add a generated file to .gitignore
 - fix handling scope when default value was set
 - fix wrong unit tests

2015-05-25 Tommi Mäkitalo <tommi@tntnet.org>

 - add js file per page to mvc template
 - new standard component empty@tntnet, which sends an empty result

2015-05-19 Tommi Mäkitalo <tommi@tntnet.org>

 - change mvc template: call controller also for dynamic pages, which are not routed through webmain
 - fix wrong comment in index page of mvc standalone template

2015-05-18 Tommi Mäkitalo <tommi@tntnet.org>

 - add a default http return code to components.
   The default http return code is by default 200 HTTP_OK but may be configured per
   mapping.  The special value DECLINED instructs tntnet to continue with the next
   mapping.
   The ecpp compiler generates now a return code DEFAULT, which instructs tntnet to
   fall back to that dfeault http return code.
   The mvc templates use that feature so that it is not more necessary to return
   DECLINED in controllers but just fall throug the end of the component.

2015-04-12 Tommi Mäkitalo <tommi@tntnet.org>

 - remove some private headers from installation
 - impl tnt::Tntnet

2015-04-11 Tommi Mäkitalo <tommi@tntnet.org>

 - fix setting access log file using the method tnt::Tntnet::setAccessLog

2015-04-05 Tommi Mäkitalo <tommi@tntnet.org>

 - add some more documentation to project templates
 - use cxxtools::LogConfiguration to initialize logging

2015-03-16 Tommi Mäkitalo <tommi@tntnet.org>

 - check for sed in configure - it is used in tntnet-project

2015-03-21 Tommi Mäkitalo <tommi@tntnet.org>

 - remove irritating comment from tntnet.xml
 - remove <%application> scope from project templates since it should really be avoided, so we do not suggest it to use

2015-03-16 Tommi Mäkitalo <tommi@tntnet.org>

 - minor changes after running cppcheck

2015-03-15 Tommi Mäkitalo <tommi@tntnet.org>

 - fix generation of dependencies in ecppc: do not just use basename but full file path of target
 - change project templates to use new default file scope in models
 - add new file scope as default scope to ecpp
 - fix ecpp parser: <<$ is now parsed correctly
 - do not install internal header files from defcomp and add new defcomp "setheader"

2015-03-01 Tommi Mäkitalo <tommi@tntnet.org>

 - remove some internal classes from api documentation

2015-02-27 Tommi Mäkitalo <tommi@tntnet.org>

 - add examples for tntdb dburl in project template

2015-02-09 Tommi Mäkitalo <tommi@tntnet.org>

 - Update quick-start-guide.markdown

2015-02-06 Tommi Mäkitalo <tommi@tntnet.org>

 - remove unused include from project templates

2015-02-05 Joan <jouven@gmail.com>

 - Update applicationunlocker.h

2015-02-02 Tommi Mäkitalo <tommi@tntnet.org>

 - generalize mapping in mvc template projects
 - fix g++ linker errors with tntnet-project

2015-02-01 Tommi Mäkitalo <tommi@tntnet.org>

 - improve project template: add some layout and instructions, how to proceed
 - improve project templates: add compile flags for C++11 when available and use xml configuration in mvc-standalone

2015-01-31 Tommi Mäkitalo <tommi@tntnet.org>

 - fix Makefile.am (README in mvc-standalone template is README.md)

2015-01-30 Tommi Mäkitalo <tommi@tntnet.org>

 - make definition of port in listener mandatory instead of taking 80 (or 443 for ssl) as default
   allow definition of one listener at top level of configuration file
 - Update Makefile.am
 - Update Makefile.am
 - Update Makefile.am
 - Update Makefile.am
 - Update Makefile.am
 - fix linker command

2015-01-26 Tommi Mäkitalo <tommi@tntnet.org>

 - improve mvc-standalone project template

2015-01-25 Tommi Mäkitalo <tommi@tntnet.org>

 - improve mvc templates of tntnet-project
 - remove useless flag DEFER_ACCEPT passed to accept method of ssl socket

2015-01-24 Tommi Mäkitalo <tommi@tntnet.org>

 - remove old remaining fragments of stressjob - the stressjob was removed already long ago

2015-01-23 Tommi Mäkitalo <tommi@tntnet.org>

 - new howto for chunked encoding

2015-01-22 Tommi Mäkitalo <tommi@tntnet.org>

 - make socketoption SO_REUSEADDR configurable; default is to set the option
 - minor change: get http error text automatically

2015-01-10 Tommi Mäkitalo <tommi@tntnet.org>

 - add --config flag to tntnet-project to generate a tntnet.xml template and replace tntnet-config with tntnet-project for that in the demo applications

2015-01-09 Tommi Mäkitalo <tommi@tntnet.org>

 - minor cleanup in unit test for component

2015-01-04 Tommi Mäkitalo <tommi@tntnet.org>

 - add some unit tests for component processing and fix cmd interface after finding bugs with those tests

2014-12-29 Tommi Mäkitalo <tommi@tntnet.org>

 - Update ecppc.1.markdown
 - Update quick-start-guide.markdown
   Add:
   - terminal promt for terminal instruction
   - tab size from 1 to 4, for better reading ecpp (html) code
 - Update ecppc.1.markdown
   Typo fixes

2014-12-28 Tommi Mäkitalo <tommi@tntnet.org>

 - Update ecppl.1.markdown
 - Update ecppl.1.markdown
   Add:
   - help and version usage
 - Update ecppc.1.markdown
   Add:
   - help and version option usage
 - Update quick-start-guide.markdown

2014-11-22 Jonas Platte <mail@jonasplatte.de>

 - Fixed an include path issue introduced when adding -h / --help to ecppc and ecppl
 - Added -h / --help to tntnet-project, improved error handling

2014-11-13 Jonas Platte <mail@jonasplatte.de>

 - Updated wrong argument and help option handling in ecppc,
   removed Usage exception class (from ecppc.h), added myself to the AUTHORS file

2014-12-28 Tommi Mäkitalo <tommi@tntnet.org>

 - merged changes from jplatte

2014-11-11 Jonas Platte <mail@jonasplatte.de>

 - Added version and help flags to ecppc, minor readabilty changes

2014-11-09 Jonas Platte <mail@jonasplatte.de>

 - Added -V, -h and --help options to ecppl

2014-12-28 Tommi Mäkitalo <tommi@tntnet.org>

 - Update quick-start-guide.markdown
   - install instruction before install from tarball, this are similar with the FAQ 1.9.

2014-12-27 Ralf Schülke <ralf.schuelke@gmail.com>

 - Update quick-start-guide.markdown
   Small typo fix and add a autotools mini howto link.

2014-12-26 Tommi Mäkitalo <tommi@tntnet.org>

 - remove old documents, logos and tntnet-config

2014-12-25 Tommi Mäkitalo <tommi@tntnet.org>

 - change generation of component name and output file name in ecpp compiler ecppc:
   remove just .ecpp extension and keep others, so that e.g. tntnet.jpg results
   in a component name "tntnet.jpg" and output file name "tntnet.jpg.cpp".
 - add tntnet logo

2014-12-22 Tommi Mäkitalo <tommi@tntnet.org>

 - update copyright header
 - update gitignore
 - update README file
 - fix project templates: add static sources in dist package
 - cleanup demos
 - minor improvement in project templates (use srcdir instead of top_srcdir to find sources)
 - fix out of tree build of new chat demo

2014-12-21 Tommi Mäkitalo <tommi@tntnet.org>

 - replace chat and rajax-jquery demos with a better chat demo with long poll

2014-12-14 Tommi Mäkitalo <tommi@tntnet.org>

 - fix bug in chunked encoding; output to reply.sout() must be routed through chunked encoder

2014-12-10 Tommi Mäkitalo <tommi@tntnet.org>

 - fixes for compression

2014-12-05 Tommi Mäkitalo <tommi@tntnet.org>

 - install demos again into pkg dir since disabling that prevents automake to create .so-files - very strange
 - some fixes for chunked output stream in http reply - compression might work now but not yet tested

2014-12-04 Tommi Mäkitalo <tommi@tntnet.org>

 - use opitimized ostream to collect output data instead of std::ostringstream
 - update autoconf macro to check for C++-11 (makes C++-11 flag optional)
 - remove generated file

2014-11-17 Tommi Mäkitalo <tommi@tntnet.org>

 - undeprecate "global" scope and improve some error messages in ecpp parser

2014-11-15 Tommi Mäkitalo <tommi@tntnet.org>

 - do not install demo applications on make install
 - read values optionally from xml attributes in tntnet.xml when cxxtools supports it (cxxtools version >=2.3)

2014-11-09 Tommi Mäkitalo <tommi@tntnet.org>

 - move definition of TcpJob and SslTcpJob from job.cpp into separate source file
 - remove useless condition which leads to a compiler warning about uninitialized variable in openssl.cpp

2014-11-04 Tommi Mäkitalo <tommi@tntnet.org>

 - use autoconf variables instead of directly call mkdir -p and sed in Makeile.am

2014-11-02 Jonas Platte <mail@jonasplatte.de>

 - Added pkg-config support
 - Updated .gitignore
 - Added $(AM_V_GEN) for tntnet.xml generation in /etc

2014-11-04 Tommi Mäkitalo <tommi@tntnet.org>

 - remove optional extension in url from default mapping

2014-11-03 Tommi Mäkitalo <tommi@tntnet.org>

 - update gitignore
 - move mapping of resources to top in project templates

2014-11-01 Tommi Mäkitalo <tommi@tntnet.org>

 - update ChangeLog
 - remove generated file tntnet-project
 - update gitignore
 - fix project templates: add mapping to resources, allow - in project name

2014-10-31 Tommi Mäkitalo <tommi@tntnet.org>

 - add static resources to all tntnet-project templates and other small fixes in those

2014-10-28 Tommi Mäkitalo <tommi@tntnet.org>

 - discard previous http reply on execute if not fully read in http client

2014-10-19 Tommi Mäkitalo <tommi@tntnet.org>

 - fix handling of ranges in static@tntnet when using sendfile

2014-10-17 Tommi Mäkitalo <tommi@tntnet.org>

 - update http redirect code, use 307 instead of 302 for temporary redirects

2014-10-08 Tommi Mäkitalo <tommi@tntnet.org>

 - use c++ 11 mode of compiler if supported for better optimization

2014-10-08 Tommi Mäkitalo <tommi@tntnet.org>

 - do not log content size when chunked encoding is used since it is not really known

2014-09-12 Tommi Mäkitalo <tommi@tntnet.org>

 - forward flush of chunked output stream buffer to underlying stream buffer after writing chunk

2014-08-26 Tommi Mäkitalo <tommi@tntnet.org>

 - fix configuring tntnet using a own TntConfig object
 - fix compiler warning in openssl.cpp

2014-04-15 Jonas Platte <mail@jonasplatte.de>

 - Last big style update:
   fixed all warnings from gcc with -Wall -Wextra (without building demos, with ssl=openssl)

2014-04-14 Jonas Platte <mail@jonasplatte.de>

 - Some style updates:
   Added explicitly "private:" to classes where it was missing,
   Corrected indentation and line breaks,
   Updated private member variable names (more to come)
 - Unified blank lines in source files
 - Added missing TNT_ prefix for include guard macros
 - Small style and doc update for Component
 - Removed duplicate libtool entry in .gitignore

2014-04-08 Jonas Platte <mail@jonasplatte.de>

 - Added some documentation to HttpRequest

2014-08-01 Tommi Mäkitalo <tommi@tntnet.org>

 - change in ecppc: use typedefs for scoped variables only when really needed (when typename contains a comma)

2014-07-23 Tommi Mäkitalo <tommi@tntnet.org>

 - small optimization when setting date header

2014-06-29 Tommi Mäkitalo <tommi@tntnet.org>

 - add content size of previous components to content length header in static@tntnet

2014-06-09 Tommi Mäkitalo <tommi@tntnet.org>

 - create projects using templates in tntnet-project

2014-06-03 Tommi Mäkitalo <tommi@tntnet.org>

 - add emulation for old pushArg method for positional parameters in mappings
 - revert component variable definition due to problems with types with commas (like std::map<std::string,std::string>)

2014-05-30 Tommi Mäkitalo <tommi@tntnet.org>

 - fix syntax error in tnt/sessionunlocker.h (looks like nobody use it)

2014-05-29 Tommi Mäkitalo <tommi@tntnet.org>

 - build fix: according to the standard std::ostream do not have a default constructor (but in gcc)

2014-05-02 Tommi Mäkitalo <tommi@tntnet.org>

 - do not report a warning when a empty file is send on systems without sendfile

2014-04-07 Tommi Mäkitalo <tommi@tntnet.org>

 - fix generating projects with special characters in tntnet-project

2014-04-06 Jonas Platte <mail@jonasplatte.de>

 - Added $(AM_V_GEN) to alldemos, tntnet-project

2014-04-06 Tommi Mäkitalo <tommi@tntnet.org>

 - fix unittest for scopes and add scope tests

2014-04-05 Jonas Platte <mail@jonasplatte.de>

 - Fixed build + some small improvements for the demos

2014-04-04 Ralf Schülke <ralf.schuelke@gmail.com>

 - Update quick-start-guide.markdown

2014-04-04 Tommi Mäkitalo <tommi@tntnet.org>

 - fix build on systems without epoll (build was broken since style revision)
 - tntnet-wizzard was renamed to tntnet-project - do so also in Makefile.am

2014-04-03 Jonas Platte <mail@jonasplatte.de>

 - Little fix for non-working references
 - Added missing "@endcond internal" doxygen label

2014-04-02 Tommi Mäkitalo <tommi@tntnet.org>

 - rename tntnet-wizzard to tntnet-project
 - make out of tree build working in tntnet-wizzard generated projects

2014-03-31 Jonas Platte <mail@jonasplatte.de>

 - Various small doc and style updates
 - Another documentation revision for TntConfig
 - Small fixes in Tntnet documentation

2014-03-30 Jonas Platte <mail@jonasplatte.de>

 - Cleaned up the source tree a bit

2014-03-30 Tommi Mäkitalo <tommi@tntnet.org>

 - set cache-control header only when not already set by user
 - fix licence header from GPL to LGPL

2014-03-30 Tommi Mäkitalo <tommi@tntnet.org>

 - set cache control header just once

2014-03-20 Jonas Platte <jonasplatte@myopera.com>

 - A little last style update in cookie.h
 - Style revisions

2014-03-18 Tommi Mäkitalo <tommi@tntnet.org>

 - integrate newsdb demo into build of demos

2014-03-18 Tommi Mäkitalo <tommi@tntnet.org>

 - do not use C++ style comments in C source
 - improve mvc demo including adding documentation
 - improve mvc demo including adding documentation
 - add gd demo application to demonstrate how to create dynamic graphics using the famous gd library

2014-03-18 Jonas Platte <mail@jonasplatte.de>

 - Further style revision

2014-03-17 Tommi Mäkitalo <tommi@tntnet.org>

 - update unzip stuff
 - fix memory leak when reading configuration files
 - fix invalid use of return code in SSL_shutdown

2014-03-17 Jonas Platte <mail@jonasplatte.de>

 - Style revision for everything from applicationunlocker to dispatcher {.h|.cpp}

2014-03-16 Tommi Mäkitalo <tommi@tntnet.org>

 - move and rename directory sdk/demos to demo
 - use configure flag --enable/--disable for server, sdk and demos and disable building demos by default

2014-03-15 Tommi Mäkitalo <tommi@tntnet.org>

 - add unused switch-cases back to reduce compiler warnings

2014-03-15 Jonas Platte <jonasplatte@myopera.com>

 - Fixed Mime class not overwriting virtual function configure from its base class Component, removed .dirstamp files

2014-03-14 Jonas Platte <jonasplatte@myopera.com>

 - Added null initialization for member pointers that previously were not initialized on object construction

2014-03-11 Jonas Platte <mail@jonasplatte.de>

 - Some minor bugfixes
 - Removed dead and unused code
 - Little documentation update

2014-03-10 Jonas Platte <mail@jonasplatte.de>

 - Reverted style changes

2014-03-09 Jonas Platte <jonasplatte@myopera.com>

 - Style revision on HttpMessage and HttpReply, partial style revision on HttpRequest,
   partial documentation revision on all three
 - Completed style and documentation revision of Compident, Maptarget and Tntnet,
   added a new mapUrl overload and deprecated old ones including vMapUrl

2014-03-01 Jonas Platte <mail@jonasplatte.de>

 - Revised code style and documentation for Compident

2014-02-21 Tommi Mäkitalo <tommi@tntnet.org>

 - fix handling scoped variables - scope was forgot when variables were initialized

2014-02-19 Tommi Mäkitalo <tommi@tntnet.org>

 - make type conversion explicit to reduce compiler warnings

2014-02-19 Jonas Platte <mail@jonasplatte.de>

 - Started documentation revision on httpmessage.h,
   httpreply.h and httprequest.h; some minor changes in the documentation of tntnet.h

2014-02-18 Tommi Mäkitalo <tommi@tntnet.org>

 - check in generated man page of ecpp with documentaion of <%attr> included
 - add documentation about <%attr> tag
 - Fixed building in a subdirectory

2014-02-10 Tommi Mäkitalo <tommi@tntnet.org>

 - fix some doxygen comments

2014-02-08 Tommi Mäkitalo <tommi@tntnet.org>

 - better error message in ecpp parser on unexpected end of file
 - fix doxygen comment of listen method in tnt::Tntnet
 - allow one line c++ section (% at start of line) to be closed with eof

2014-02-05 Tommi Mäkitalo <tommi@tntnet.org>

 - add missing include in gnutls.cpp

2014-02-04 Tommi Mäkitalo <tommi@tntnet.org>

 - fix formatting in tntnet-wizzard

2014-02-03 Tommi Mäkitalo <tommi@tntnet.org>

 - make <%config> working again - was broken for quite some time

2014-02-01 Tommi Mäkitalo <tommi@tntnet.org>

 - remove one directory level in generated projects of tntnet-wizzard to simplify project structure

2014-01-29 Tommi Mäkitalo <tommi@tntnet.org>

 - implement chunked encoding transfer mode

2014-01-22 Tommi Mäkitalo <tommi@tntnet.org>

 - add new jquery with tntnet howto

2014-01-21 Tommi Mäkitalo <tommi@tntnet.org>

 - update doxygen documentation in tnt::TntConfig
 - remove background worker feature - it was never used I guess

2014-01-20 Tommi Mäkitalo <tommi@tntnet.org>

 - update version number and abi version (must be higher than version 2.2 and 2.2.1)

2014-01-05 Tommi Mäkitalo <tommi@tntnet.org>

 - change default user of tntnet to tntnet
 - remove init script from tntnet - the packager has to write it depending on the distribution

2014-01-04 Jonas Platte <mail@jonasplatte.de>

 - Started documenting TntConfig, flagged some classes internal

2013-12-26 Tommi Mäkitalo <tommi@tntnet.org>

 - fix changing root dir of tntnet

2013-12-25 Tommi Mäkitalo <tommi@tntnet.org>

 - add missing linkflag -lz to ecppc

2013-12-22 Jonas Platte <mail@jonasplatte.de>

 - Reformatted multiline doc comments in tntnet.h

2013-12-21 Jonas Platte <mail@jonasplatte.de>

 - Revised documentation in tnt/tntnet.h
   (still some bits missing)

2013-12-19 Tommi Mäkitalo <tommi@tntnet.org>

 - add some sanity checks for urls in static component

2013-12-11 Tommi Mäkitalo <tommi@tntnet.org>

 - fix possible information leak

2013-11-29 Tommi Mäkitalo <tommi@tntnet.org>

 - update installation hints

2013-11-10 Tommi Mäkitalo <tommi@tntnet.org>

 - update tntnet-wizzard (move source to src subdirectory and other changes)
 - replace configure.in with configure.ac in tntnet-config generated autoproject
 - fix some minor stuff in quick start guide

2013-11-06 Tommi Mäkitalo <tommi@tntnet.org>

 - fix typo in quick start guide

2013-11-05 Tommi Mäkitalo <tommi@tntnet.org>

 - fix forward declaration of struct TntConfig (produced a compiler warning)

2013-10-31 Tommi Mäkitalo <tommi@tntnet.org>

 - use memmove instead of memcpy when removing message header since the areas may overlap

2013-10-11 Tommi Mäkitalo <tommi@tntnet.org>

 - add --version switch to all tntnet tools

2013-10-03 Tommi Mäkitalo <tommi@tntnet.org>

 - autoscan.sh is obsolete - use "autoreconf -i" instead

2013-09-22 Tommi Mäkitalo <tommi@tntnet.org>

 - the tnt::Job do not need to be atomic ref counted; making it simple ref counted speeds up tntnet for about 1%
 - add doctype to tntnet-config template
 - fix escape sequence and add doctype to template in tntnet wizzard
 - fix racing condition: releasing request may result in a pthread unlock error

2013-09-20 Tommi Mäkitalo <tommi@tntnet.org>

 - fix syntax error in wizzard

2013-09-07 Tommi Mäkitalo <tommi@tntnet.org>

 - do not try to write access log when it is disabled
 - do not call SSL_shutdown twice when the first call completed the shutdown already

2013-08-25 Tommi Mäkitalo <tommi@tntnet.org>

 - empty setting for server will omit server header

2013-08-23 Tommi Mäkitalo <tommi@tntnet.org>

 - make server response header configurable
 - fix setting http header without trailing colon

2013-08-21 Tommi Mäkitalo <tommi@tntnet.org>

 - do not accept %00 in url since it is not processed correctly anyway

2013-08-16 Tommi Mäkitalo <tommi@tntnet.org>

 - fix url encoding (%xx accepted every alphanumeric character instead of just hex digits)

2013-08-05 Tommi Mäkitalo <tommi@tntnet.org>

 - tntnet has a new logo

2013-08-04 Tommi Mäkitalo <tommi@tntnet.org>

 - make dburl configuration parameter optional in mvc project of tntnet-wizzard
 - tntnet-wizzard can now create a simple project in addition to a mvc project
 - add check for autoconf and automake to tntnet-wizzard
 - add upload howto from homepage to documentation

2013-08-03 Tommi Mäkitalo <tommi@tntnet.org>

 - fix setting include directory in tntnet-wizzard

2013-07-29 Tommi Mäkitalo <tommi@tntnet.org>

 - add tntnet-wizzard to dist package and fix dist target in the generated project
 - create tntnet-wizzard, which creates web applications with the mvc pattern

2013-07-28 Tommi Mäkitalo <tommi@tntnet.org>

 - fix another bug in ecpp parser where scope could be set only once per page

2013-07-26 Tommi Mäkitalo <tommi@tntnet.org>

 - fix ecpp parser: scope could be set only once per page

2013-07-22 Tommi Mäkitalo <tommi@tntnet.org>

 - repalce deprecated GLOBAL with SHARED in calcmvc demo application

2013-07-20 Tommi Mäkitalo <tommi@tntnet.org>

 - rename scope="global" to scope="shared"

2013-07-10 Tommi Mäkitalo <tommi@tntnet.org>

 - disable static build by default and other small cleanups in the build system

2013-07-09 Tommi Mäkitalo <tommi@tntnet.org>

 - update build; autoconf wants configure.ac instead of configure.in
 - simplify reading listeners from configuration

2013-07-06 Tommi Mäkitalo <tommi@tntnet.org>

 - remove StressJob class - it was for load testing but not used any more
 - fix vim syntax highlighting for ecpp: allow scope definition to spread multiple lines

2013-06-21 Tommi Mäkitalo <tommi@tntnet.org>

 - set max age of files in multi binary components to 4 hours and allow it to be modified using maxAge arg

2013-06-20 Tommi Mäkitalo <tommi@tntnet.org>

 - no need to check url in static@tntnet since it is already done before
 - fix handling of documentRoot and change MaxAge setting to maxAge for consistency

2013-06-19 Tommi Mäkitalo <tommi@tntnet.org>

 - add cache control header to static files and make setting cache control header more intuitive in ecpp components
 - reduce warning level in tnt::Savepoint
 - initialize variables in calcmvc demo

2013-06-16 Tommi Mäkitalo <tommi@tntnet.org>

 - bugfix: scope was set only for first defined variable; the bug is quite new - version 2.2 is not affected

2013-06-02 Tommi Mäkitalo <tommi@tntnet.org>

 - fix section in tntnet.xml man page
 - use jquery in calcajax demo
 - function in cpp must not be inline to be usable
 - add support for permanent redirects as well as temporary in API and redirect@tntnet
 - make controls demo working again

2013-06-01 Tommi Mäkitalo <tommi@tntnet.org>

 - remove request.clearSession(), which do not work anyway - use reply.clearSession() instead

2013-05-30 Tommi Mäkitalo <tommi@tntnet.org>

 - remove obsolete demo cgi-getenv

2013-05-29 Tommi Mäkitalo <tommi@tntnet.org>

 - add configuration for calcmvc demo

2013-05-28 Tommi Mäkitalo <tommi@tntnet.org>

 - multiple changes:
   * simplify definition components from cpp
   * simplify configuration of components
   * session and application unlocker lock scope on destruction only if scope was locked before
   * move macros to define scoped variables to header tnt/component.h from tnt/ecpp.h to make them
   available in components defined in cpp and construct the key parameter from type and varname
   instead of expecting it as a parameter
   * document default components of tntnet from tntnet.so in man page tntnet-defcomp(1)
   * use the simplified way to define components in demos
   * add include attribute to scope tags

2013-05-20 Tommi Mäkitalo <tommi@tntnet.org>

 - fix case of pidfile and compPath in documentation and example file
 - fix fetching vector of query parameters
 - implemented easier api for accessing and converting query arguments

2013-05-17 Tommi Mäkitalo <tommi@tntnet.org>

 - implement virtualhosts configuration, so that all mappings for a virtual host can be combined into one section

2013-05-15 Tommi Mäkitalo <tommi@tntnet.org>

 - fix references to other man pages in man pages
 - do not set http headers when static@tntnet is not called as top level component

2013-05-04 Tommi Mäkitalo <tommi@tntnet.org>

 - helper method tnt::Mapping::setArg to add arguments to mapping in application mode easier

2013-04-15 Tommi Mäkitalo <tommi@tntnet.org>

 - implement controller feature in ecpp - scoped variables get a chance to handle the request

2013-04-07 tommi@tntnet.org

 - use json in chat demo

2013-03-31 tommi@tntnet.org

 - fix compiler warnings
 - set pthread flags and select threaded compiler globally in configure script
 - remove some obsolete documentation files (converted to markdown now)

2013-03-20 tommi@tntnet.org

 - fix for out of tree build

2013-03-17 tommi@tntnet.org

 - replace call to awk with $(AWK), which is set by configure to a suitable awk implementation
 - set preprocesor flags in CPPFLAGS instead of CXXFLAGS
 - fix some compiler warnings

2013-03-16 tommi@tntnet.org

 - release candidate 2.2rc2
 - add chapters about business logic, application class and logging to quick start guide

2013-03-11 tommi@tntnet.org

 - add configure switch --disable-locale
 - remove obsolete configure check for cxxtools::net::TcpServer::getFd
 - don't crash if standard locale could not be created

2013-03-10 tommi@tntnet.org

 - add converter script from tntnet.conf to tntnet.xml to dist package and install it
 - bugfix: request.getArgDef(number, default) did not use the default value
 - update man page for tntnet.xml (tag <url> is optional, request.getArgs with number)
 - make url in mapping optional
 - fix converting mapping from tntnet.conf to xml: tag in <mappings> should be <mapping>
 - make static component loader publicly available

2013-03-09 tommi@tntnet.org

 - reduce warnings with clang compiler
 - do not use implicit conversion of cxxtools::SmartPtr to raw pointer
 - using std::set in poller is somewhat stupid - std::vector is simpler here
 - add documentation about mimeDb to tntnet.xml man page

2013-03-03 tommi@tntnet.org

 - release candidate 2.2rc1

2013-03-01 tommi@tntnet.org

 - regenerate man pages
 - remove special characters from markdown man pages
 - add new <%get> and <%post> tags to vim syntax highlighting

2013-02-28 tommi@tntnet.org

 - convert static-howto document to markdown and update the content
 - add <%get> and <%post> sections to receive GET or POST parameters

2013-02-27 tommi@tntnet.org

 - do not use parent values feature of cxxtools::QueryParams since it was never really used and will be removed in cxxtools
 - fix leak of scopes

2013-02-24 tommi@tntnet.org

 - ignore exception message "lost connection to peer" when killing the monitor process before the worker process in daemon mode
 - remove all references to tntnet.conf
 - update documentation

2013-02-24 tommi@tntnet.org

 - revert invalid change: make %config variables optional again
 - make ip address in listener section of tntnet.xml optional
 - remove ip address from generated tntnet.xml since it is normally not needed and now optional
 - add a convenience method tnt::Tntnet::listen with just a port number to listen on all local interfaces; previously a empty string must be specified, which remains possible of course

2013-02-21 tommi@tntnet.org

 - replace references to tntnet.conf with tntnet.xml in man pages

2013-02-19 tommi@tntnet.org

 - add example to url mapping and listeners section in man page tntnet.xml(7)

2013-02-18 tommi@tntnet.org

 - update documentation (man page for tntnet.xml is finished)
 - implement named args in tntnet.xml
 - continue man page for tntnet.xml (not finished yet)

2013-02-17 tommi@tntnet.org

 - make node <target> mandatory in tntnet.xml as it should be
 - add man page for tntnet.xml and remove obsolete man page for tntnet.conf

2013-02-16 tommi@tntnet.org

 - document option -i in the man page of ecppc
 - read filenames for multibinary component optionally from file using option -i in ecppc

2013-02-13 tommi@tntnet.org

 - fix crash in direct mode (which is used when static files are sent)

2013-02-12 tommi@tntnet.org

 - fix memory leak: scopes were never deleted since a change in cxxtools some times ago

2013-02-06 tommi@tntnet.org

 - cleaner termination of tntnet using method cxxtools::net::TcpServer::terminateAccept()

2013-01-18 tommi@tntnet.org

 - do not set -pedantic on xlC compiler

2013-01-08 tommi@tntnet.org

 - port man pages to markdown and use md2man to generate man pages (markdown is so much easier to write)

2012-12-28 tommi@tntnet.org

 - change global tntnet.conf to tntnet.xml
 - remove duplicate entry from tntconfig

2012-12-24 tommi@tntnet.org

 - add pkg.m4 to dist package also
 - remove the unused flushdelay from man page tntnet.properties (although tntnet.properties is obsolet nowadays)
 - fix builing dist package

2012-12-01 tommi@tntnet.org

 - process HEAD requests for static files

2012-11-10 tommi@tntnet.org

 - replace ssllisteners section from tntnet.xml with a listener entry with certificate tag
 - compile with -pedantic and -Wall by default when compiler supports it

2012-10-13 tommi@tntnet.org

 - do not initialize string iterator with 0 - it is not standard conformant
 - replace include of tnt/encoding.h with forward declaration in tnt/httpreply.h

2012-10-02 tommi@tntnet.org

 - implement method tnt::HttpReply::clearSession to clear the current session after the current request

2012-10-01 tommi@tntnet.org

 - call _exit instead of exit when tntnet tries to restart itself to make restarting more robust

2012-08-04 tommi@tntnet.org

 - fix forward declaration for tnt::Compident struct

2012-07-25 tommi@tntnet.org

 - update gnutls support and other patches from debian package

2012-07-08 tommi@tntnet.org

 - fix locking when url map cache is cleared

2012-06-30 tommi@tntnet.org

 - use original query string from request instead of qparam, which is a combination of GET and POST parameters in proxy component (Artem)

2012-06-25 tommi@tntnet.org

 - add some unittests for ecpp parser
 - fix proxy (pass additional headers, handle '/' correctly)
 - add vhost and url to not found exception
 - simplify management of pooled http reply impl objects
 - improvements in ecpp compiler:
    - report right line number (numbering started from 0, but it should start with 1)
    - don't stop on first error but try to recover
    - allow '/' in component names when calling without quotes (<& foo/bar >)

2012-06-17 tommi@tntnet.org

 - fix http status code ordering
     invalid ordering results in invalid binary search. The bug here had no
     effect until now just with good luck.

2012-06-11 tommi@tntnet.org

 - make stopping tntnet more robust (I don't exactly know, if this fixes possible crashes, but looks better now)

2012-06-10 tommi@tntnet.org

 - improve converter script from tntnet.conf to tntnet.xml (initialize logging using xml)
 - replace tntnet.conf and tntnet.properties with new tntnet.xml in newsdb demo
 - fix 2 memory leaks (static structures, which were not cleaned up correctly when tntnet stops)
 - optimize writing accesslog by buffering actual writes when there are multiple requests running in parallel

2012-06-08 tommi@tntnet.org

 - tntnet.properties is obsolete - do not try to generate it any more
 - optimize writing access log slightly

2012-05-31 tommi@tntnet.org

 - fix writing access log and pid file
 - default configuration file when started as root is also xml
 - fix specifiaction of compPath in generated example tntnet.xml

2012-05-28 tommi@tntnet.org

 - fix typo in generated sample tntnet xml configuration
 - do not truncate error log on start
 - move logging configuration into tntnet.xml; cxxtools got support for configuration of logging using the serialization framework

2012-05-13 tommi@tntnet.org

 - performance improvement: impl http reply class and create a pool, so that the reply do not need to be reconstructed for each request

2012-05-07 tommi@tntnet.org

 - fix potential template problem in call to destroy in tnt::PointerObject

2012-05-05 tommi@tntnet.org

 - implement "include" in configuration file, which was lost after converting to xml and json

2012-05-03 tommi@tntnet.org

 - fix setting path info

2012-04-30 tommi@tntnet.org

 - fix tntnet-conf2xml.pl to parse quoted strings correctly
 - fix order of link parameters in link command

2012-04-29 tommi@tntnet.org

 - session handling was broken after implementation of secure session scope

2012-04-27 tommi@tntnet.org

 - fix typo in ecpp compiler occured in last checkin

2012-04-26 tommi@tntnet.org

 - use serialization framework to read %config variables from tntnet configuration

2012-04-25 tommi@tntnet.org

 - move reading configuration from libtntnet to process and add support for json configuration files (as an experiment for now)
 - implement API for new mapping features

2012-04-24 tommi@tntnet.org

 - add mapping by method or ssl status
 - update copyright header

2012-04-16 tommi@tntnet.org

 - update demos to use new xml configuration
 - fix converting ssl listeners from tntnet.conf to tntnet.xml
 - converter script from tntnet.conf to tntnet.xml

2012-04-15 tommi@tntnet.org

 - configure tntnet using xml
 - remove cgi lib

2012-04-10 tommi@tntnet.org

 - send secure session cookie only when ssl is enabled

2012-04-08 tommi@tntnet.org

 - implement secure session scope for variables only kept in ssl sessions (tag <%securesession>)

2012-04-06 tommi@tntnet.org

 - add proxy module to tntnet standard components

2012-04-02 tommi@tntnet.org

 - update version number to 2.1
 - fix another set of possible conflicts, sun studio compiler complains about

2012-03-31 tommi@tntnet.org

 - add configure check for header sys/sendfile.h

2012-03-26 tommi@tntnet.org

 - fix generation of tntnet-config (shared lib flag was missing)
 - add documentation about --autoproject option of tntnet-config

2012-02-29 tommi@tntnet.org

 - fix debug output
 - use name of type also as key into scope variables to prevent binding variables to instances of different type

2012-02-25 tommi@tntnet.org

 - set compile flags for ibm xlc

2012-02-14 bendri

 - replace cxxtools::int64_t with standard int64_t

2012-02-09 tommi@tntnet.org

 - remove code for blocking mode from openssl and gnutls since it is not used anyway and was not working for a long time

2012-02-09 tommi@tntnet.org

 - fix declaration template class (clang complained about it)

2012-02-09 tommi@tntnet.org

 - add missing headers (yofuh)

2012-02-08 tommi@tntnet.org

 - update ChangeLog

2012-01-09 tommi@tntnet.org

 - Use atomic operations instead of mutex in zdata. This fixes occational crashes on shutdown on AIX.

2011-12-15 tommi@tntnet.org

 - flag -qmkshrobj is still needed on AIX

2012-01-09 tommi@tntnet.org

 - Use atomic operations instead of mutex in zdata. This fixes occational crashes on shutdown on AIX.

2011-12-07 tommi@tntnet.org

 - output warning, when there is white space other than line feed after closing %-Tag

2011-12-04 tommi@tntnet.org

 - increase default listen backlog from 16 to 64

2011-09-29 tommi@tntnet.org

 - fix reuse of session id (may leak on parallel requests)

2011-09-25 tommi@tntnet.org

 - fix for autoconf 2.68

2011-09-20 tommi@tntnet.org

 - fix help page in ecppc
 - fix type in demo (std::set::erase takes a non const iterator)

2011-09-12 tommi@tntnet.org

 - the names of autotools projects created with tntnet-config may have special characters

2011-09-05 tommi@tntnet.org

 - DefaultDestroyPolicy was renamed to DeletePolicy in cxxtools

2011-08-25 tommi@tntnet.org

 - define constant for content-disposition header

2011-08-10 tommi@tntnet.org

 - fix license headers of files from minizip by updating them to the most recent version

2011-06-24 tommi@tntnet.org

 - reuse session id if already set instead of replacing it

2011-06-05 tommi@tntnet.org

 - ignore SIGPIPE always

2011-05-30 tommi@tntnet.org

 - add setting ErrorLog for redirecting stderr to a file

2011-05-29 tommi@tntnet.org

 - return error code if client tries to use http header Expect

2011-05-29 tommi@tntnet.org

 - add documentation for AcessLog into man page tntnet.conf(7)

2011-05-08 tommi@tntnet.org

 - do not translate '+' to space when parsing urls

2011-04-03 tommi@tntnet.org

 - add xptemplates (vim template plugin)

2011-04-03 tommi@tntnet.org

 - fail to start tntnet if ssl is configured but not compiled in

2011-04-03 tommi@tntnet.org

 - remove ipv4 addresses from configuration files

2011-03-26 tommi@tntnet.org

 - add "<?? cond ? expr ?>" to ecpp for printing conditionally something without escaping html similar to "<$$ ... $>"

2011-03-26 tommi@tntnet.org

 - set log category of components settable in ecppc using flag -l

2011-02-20 tommi@tntnet.org

 - fix a small documentation bug and update version number in quick start guide

2011-02-17 tommi@tntnet.org

 - add makefile rule to compile a .ico file

2011-01-23 tommi@tntnet.org

 - add background worker threads

2011-01-20 tommi@tntnet.org

 - set lib deps using LIBADD instead of LDFLAGS (thanks idl0r)

2011-01-16 tommi@tntnet.org

 - remove feature for preloading applications (it did not work anyway and it has limited use)

2011-01-09 tommi@tntnet.org
 - remove "Load" setting (and feature) from tntnet.conf since it did not work and is useless

2011-01-03 tommi@tntnet.org
 - add a generator for a autotools project to tntnet-config script

2010-11-13 tommi@tntnet.org
 - cleanup code to reduce compiler warnings

2010-11-07 tommi@tntnet.org
 - accept full uri in http request line as rfc demands

2010-10-25 tommi@tntnet.org
 - implement support for ranges in static@tntnet (or more precise: one range)

2010-09-04 tommi@tntnet.org
 - fix compile bug in gnutls support

2010-08-07 tommi@tntnet.org
 - fix handling of application name in session cookies

2010-08-01 tommi@tntnet.org
 - release 2.0

2010-07-30 tommi@tntnet.org
 - documentation updates

2010-07-18 tommi@tntnet.org
 - prefer application name over library name for session cookie

2010-07-10 tommi@tntnet.org
 - better error message, when number cannot be converted in %args-section
 - handle non empty strings as true in boolean arguments, so that submit buttons can be easily queried

2010-07-09 tommi@tntnet.org
 - fix race condition when stopping tntnet

2010-07-05 tommi@tntnet.org
 - keep session when component returns with DECLINED and no new session is
   found

2010-06-24 tommi@tntnet.org
 - do graceful shutdown on SIGINT

2010-06-15 tommi@tntnet.org
 - add support for access.log with common log format
 - fix bug, where always the first file of multibinary components was sent

2010-06-14 tommi@tntnet.org
 - files compiled with ecppc -b compressed when requested

2010-06-03 tommi@tntnet.org
 - set proper text in http reply header instead of defaulting to OK

2010-05-31 tommi@tntnet.org
 - do not log_warn if static file is not found in static@tntnet

2010-05-22 tommi@tntnet.org
 - use compression in multibinary components and cache the compressed data
 - fix for a very old bug, which may cause a crash when a component was called
   in parallel the first time

2010-04-06 tommi@tntnet.org
 - ecppc -I do not need a space before the parameter any more

2010-03-21 tommi@tntnet.org
 - do not generate current time into generated source to help tools like ccache detecting identity

2010-03-10 tommi@tntnet.org
 - use application/x-data as mime type in multibinary components when
   mimetype is otherwise unknown.
 - sort file names correctly in multibinary components

2010-02-26 tommi@tntnet.org
 - send cookies also in redirect and not authorized replies

2010-02-21 tommi@tntnet.org
 - new feature: make components callable from the command line using "tntnet -C compid"

2010-02-19 tommi@tntnet.org
 - make application name in tntnet application class settable
 - add a demo for using tntnet application class (calcapp)

2010-02-03 tommi@tntnet.org
 - (url-)decode cookie value as is should be

2010-01-27 tommi@tntnet.org
 - do not add a dot at the end of session cookie name if no library is set

2010-01-27 tommi@tntnet.org

2010-01-18 tommi@tntnet.org
 - improve logging output

2009-12-30 tommi@tntnet.org
 - make RTLD_LOCAL the default loading mechanism

2009-12-22 tommi@tntnet.org
 - do not use deprecated cxxtools::Dynbuffer but std::vector instead
 - remove unused class inflatestream
 - cxxtools::Pipe is moved to cxxtools::posix::Pipe
 - fix bug, where tntnet did not use keep alive when in HTTP 1.1 the connection header was ommitted

2009-12-21 tommi@tntnet.org
 - make unit test optional

2009-12-17 tommi@tntnet.org
 - handle utf8 correctly

2009-12-16 tommi@tntnet.org
 - fix bug, where a component, which followed a not matched MapUrl declined a
   request was called twice when the request was repeated
 - add proper locking to the url map cache

2009-12-15 tommi@tntnet.org
 - new classes tnt::SessionUnlocker and tnt::ApplicationUnlocker

2009-12-04 tommi@tntnet.org
 - load component libraries with RTLD_GLOBAL if library name is prefixed with ! in tntnet.conf

2009-12-04 tommi@tntnet.org
 - Do not use the file name of ecpp files as class names of generated components
   any more but let component names contain aribtrary characters (except \0).
   Ecppc gets the -p switch to include the full path of the source file into the
   component name.

2009-11-24 tommi@tntnet.org
 - optimization: use fixed size buffer of 4k for message header to reduce allocations
 - add some unit tests

2009-11-17 tommi@tntnet.org
 - send http error detected in parse state
 - use a fixed buffer of 8 bytes (7 + '\0'-terminator) for http method instead of std::string

2009-11-15 tommi@tntnet.org
 - add current file name to error messages and format messages like gcc

2009-11-15 tommi@tntnet.org
 - set FD_CLOEXEC properly for listeners
 - let cxxtools set FD_CLOEXEC for accepted sockets (needs up to date cxxtools)
 - do not derive Messageheader from std:multimap but delegate calls instead to a member multimap
 - remove tnt::Tntnet::forkProcess and tnt::Tntnet::runProcess methods (they are obsolete with FD_CLOEXEC set)

2009-11-15 tommi@tntnet.org
 - read of http body slightly optimized: do not use stringstream to convert content length to number

2009-11-11 tommi@tntnet.org
 - don't use cxxtools-config script any more

2009-11-07 tommi@tntnet.org
 - bugfix: wrong buffer for notification of poller was used, which may lead to a buffer overflow in very rare cases

2009-10-30 tommi@tntnet.org
 - make refcounting of tnt::Scope and tnt::Job thread safe

2009-10-30 tommi@tntnet.org
 - Send one set-cookie header per cookie instead of comma separated list.
 - The comma separated list as specified in rfc 2109 just don't work. This is actually a bug in the rfc.

2009-10-27 tommi@tntnet.org
 - new demo for reverse ajax, jquery and json

2009-10-17 tommi@tntnet.org
 - default to openssl instead of gnutls
 - add optional stressjob for stresstesting tntnet
 - process all requests read into input buffer (bugfix)
 - use cxxtools::RefCounted for reference counting Scope class
 - optimize sending reply: do not add missing headers to request before sending but send directly

2009-10-10 tommi@tntnet.org
 - change default charset from iso-8859-1 to UTF-8

2009-05-30 tommi@tntnet.org
 - allow comma in typenames of scoped variables (needed for templates with multiple type arguments)

2009-05-21 tommi@tntnet.org
 - add some missing includes and other fixes for solaris

2009-05-21 tommi@tntnet.org
 - set mime type explicitely when compiling other than ecpp-files

2009-04-13 tommi@tntnet.org
 - allow objects in scopes without transfering ownership and use that in <%param>-scope

2009-03-11 tommi@tntnet.org
 - bugfix: content-type field was not checked correctly for POST-requests

2009-02-18 tommi@tntnet.org
 - new method request.touch() to rearm the watchdog in daemon mode

2009-02-18 tommi@tntnet.org
 - increase default buffer size for ssl connections

2009-02-13 tommi@tntnet.org
 - remove regex-class since we have it in cxxtools already

2009-02-10 tommi@tntnet.org
 - decouple httprequest from network definitions by using a interface to determine server- and peer-addresses

2008-12-07 tommi@tntnet.org
 - be more robust on epoll failures

2008-12-07 tommi@tntnet.org
 - use read write mutex instead of mutex in component loader for better scalability

2008-12-06 tommi@tntnet.org
 - use more lightweight smart pointer for library handle

2008-11-26 tommi@tntnet.org
 - use RTLD_LOCAL-flag when loading components to improve separation between applications

2008-10-15 tommi@tntnet.org
 - make shutdown of tntnet cleaner and faster by using conditions

2008-07-04 tommi@tntnet.org
 - move shortcut methods into a separate class tnt::Configurator. This also
    ensures binary compatibility with previous releases

2008-06-16 tommi@tntnet.org
 - add shortcut methods for configuring tntnet to tnt::Tntnet-class to
    ease configuration when tntnet is used as a library

2008-06-03 tommi@tntnet.org
 - release version 1.6.3

2008-05-31 tommi@tntnet.org
 - allow multiline initialization in scope variables
 - handle ' and " in c++-comments correctly in ecpp parser

2008-05-25 tommi@tntnet.org
 - fix clearCookie (set cookie path as in setCookie; was broken since
    2007-06-17)

2008-04-05 tommi@tntnet.org
 - define %args-variables before scoped variables, so it is possible to use
    %args variables to initialize scoped variables.
 - fix shutdown

2008-04-04 tommi@tntnet.org
 - default output for ecppc -M is stdout, not the basename of the source
 - don't set content-type- and keep-alive-headers when switching to direct
    mode

2008-03-29 tommi@tntnet.org
 - fix error and timeout handling in gnutls
 - improve gnutls performance by letting handshake happen in parallel
    between sockets

2008-03-23 tommi@tntnet.org
 - fix error handling in accept; accept in gnutls may throw exceptions,
    which tntnet did not catch. This resulted in a break of the accept-
    loop.

2008-03-19 tommi@tntnet.org
 - support certificate chains in openssl

2008-03-17 tommi@tntnet.org
 - clear username and password between keep-alive requests

2008-02-07 tommi@tntnet.org
 - simplify handling of scoped variables

2008-01-03 tommi@tntnet.org
 - openssl fixes
 - remove warnings when shutting down
 - make timersleep configurable

2007-12-28 tommi@tntnet.org
 - set FD_CLOEXEC on listener socket and accepted connections

2007-12-09 tommi@tntnet.org
 - tnt::Tntnet::forkProcess and runProcess to start processes.
    with a simple fork the child process inherits the listener ports
    and prevents restarting tntnet while the child process runs.
 - pass application object to request

2007-12-02 tommi@tntnet.org
 - named arguments from urlmapping to components, e.g.
    request.getArgs("DocumentRoot")

2007-11-18 tommi@tntnet.org
 - fixed cookie handling (did not work in some cases on IE)
 - reply.uout() for printing url encoded data

2007-11-04 tommi@tntnet.org
 - allow initialization of scope variables in ecpp with "type = value;"

2007-10-25 tommi@tntnet.org
 - move class tnt::Dispatcher::CompidentType to tnt::MapTarget
 - fix some warnings and errors produced by gcc when using -pedantic

2007-10-21 tommi@tntnet.org
 - search components in pkglibdir

2007-10-17 tommi@tntnet.org
 - set content-type also in other than POST requests

2007-10-15 tommi@tntnet.org
 - move most of tntnet into libtntnet to ease embedding tntnet in
    applications

2007-08-22 tommi@tntnet.org
 - allow underscore in name of scoped variables

2007-08-19 tommi@tntnet.org
 - rebuild epoll-fd after detecting inconsistency instead of failing

2007-08-11 tommi@tntnet.org
 - new feature: pass named parameters of any class to subcomponents

2007-07-14 tommi@tntnet.org
 - prefix classname in generated components with "_component_" to reduce
    possible naming-conflicts and allow components to have reserved c++-words
    as names (like "template")

2007-07-10 tommi@tntnet.org
 - generate macro SET_LANG to set language inside components

2007-07-08 tommi@tntnet.org
 - new methods request.setLocale(std::locale) and
    reply.setLocale(std::locale)

2007-07-07 tommi@tntnet.org
 - restructure HttpMessage/HttpRequest/HttpReply and pass additional
    http-headers with HttpError-exceptions
 - make HttpReply::notAuthorized and HttpReply::redirect throw an exception,
    so that it can be called in subcomponents easily

2007-07-03 tommi@tntnet.org
 - allow "char *var;" in scoped-variables
 - don't listen on 0.0.0.0:80 if only ssl-listeners are configured

2007-06-30 tommi@tntnet.org
 - support for http-basic-authentification
 - new tag <%doc>...</%doc> (long form of comment-tag)

2007-06-20 tommi@tntnet.org
 - use C-locale if standard-locale ($LANG) is unknown

2007-06-17 tommi@tntnet.org
 - add debug-statements in dispatcher for easier debugging of
    MapUrl-statements
 - set cookie-path in session-scope to extend sessions to all pages

2007-05-29 tommi@tntnet.org
 - fix typo in redirect-component (name is redirect, not redired)

2007-05-27 tommi@tntnet.org
 - don't warn about unknown mime-type for ecpp-files
 - fix internationalization in subcomponents

2007-05-23 tommi@tntnet.org
 - use requestname as base filename in multibinary-generation by default
 - document option --mimetypes in ecppc

2007-05-20 tommi@tntnet.org
 - make content-type-detection in ecppc working again (broken since
    AddType-fix on 2007-05-16)

2007-05-17 tommi@tntnet.org
 - fix minor protocol-error when sendfile is used (connection was closed
    after request although the header specified to use keep-alive)

2007-05-16 tommi@tntnet.org
 - AddType-configuration-variable fixed

2007-05-13 tommi@tntnet.org
 - removed method isTop() from components, since it is not reliable in all
    circumstances. The feature is replaced with a additional virtual
    operator()-variant in tnt::Component.

2007-05-11 tommi@tntnet.org
 - change newsdb-demo to use built in connectionpool of tntdb
 - build-improvements (port to solaris/SunStudio)

2007-05-08 tommi@tntnet.org
 - allow cookie-values to have commas

2007-05-07 tommi@tntnet.org
 - fix gnutls
 - fix componentloader (crashed sometimes under load)

2007-05-04 tommi@tntnet.org
 - fix tntnet-config-script for Mac-OS-X

2007-05-03 tommi@tntnet.org
 - make tnt::MimeDb non-case-sensitive
 - building tntnet-server and cgi-lib is now optional and on by default
    for sdk-only-builds (useful for cross-builds)
 - make setting user and group working again

2007-04-29 tommi@tntnet.org
 - send gz-file in static@tntnet when gzip-encoding is accepted and a gz-file
    is available
 - use sendfile(2) in static@tntnet when possible

2007-04-25 tommi@tntnet.org
 - remove support for non-singleton components (it is useless now)

2007-04-16 tommi@tntnet.org
 - 2 other serious bugs fixed: epoll was not always waked up on new jobs.
    After this, idle-jobs where queued until system-resources were
    exhausted. Another problem was a race-condition when the http-date-header
    was generated. After these fixes tntnet runs stable under high load.

2007-04-15 tommi@tntnet.org
 - fixed serious bug: don't delete thread-scope in request - worker-thread
    does this

2007-04-11 tommi@tntnet.org
 - new option -L for ecppc to disable generation of #line-directives
 - add missing includes and rename some variables to suppress warnings from
    Sun Studo 11 (thank you Mark)

2007-03-27 tommi@tntnet.org
 - fix race-condition in scope-handling, which caused a crash on MP-boxes
    under high load
 - check for enough worker-threads to handle all sockets (tntnet now needs at
    least one per listen-socket after removing listener threads)
 - make thread-sleep-time configurable (default: 10s)

2007-03-25 tommi@tntnet.org
 - use TCP_DEFER_ACCEPT if available
 - remove listener-threads - worker threads now accept connections,
    which removes on context-switch on each accepted connection

2007-03-24 tommi@tntnet.org
 - new demo calci18n

2007-03-21 tommi@tntnet.org
 - change license from GPL to LGPL
 - new configure-option --with-epoll=yes|no|probe

2007-03-20 tommi@tntnet.org
 - look for LANG-settings also in sub-query-parameters

2007-03-18 tommi@tntnet.org
 - be more tolerant about whitespace in http-header

2007-03-13 tommi@tntnet.org
 - fix bug, which caused tntnet sometimes to fail loading components
 - new feature: tnt::HttpReply::resetContent

2007-03-11 tommi@tntnet.org
 - url-decode non-ascii-characters in path-info

2007-03-10 tommi@tntnet.org

 - revert signalhandlers for SIGPIPE and SIGABRT, which were lost when
    modularized
 - standard-components static and unzip set mime-type now

2007-01-24 tommi@tntnet.org

 - move process-handling from class Tntnet to a separate class Process

2006-12-03 tommi@tntnet.org

 - print full path of dependencies in ecppc -M
 - debug-log when fetching scoped variables

2006-11-23 tommi@tntnet.org

 - Option "-I dir" for ecppc, ecppl, ecppll

2006-11-20 tommi@tntnet.org

 - use epoll-interface when available

2006-11-18 tommi@tntnet.org

 - make sdk and demos optional in build-system
 - fix bug, which made keep-alive-timeout unnecessary short

2006-11-17 tommi@tntnet.org

 - Remove global factory-symbol from shared libraries. This makes it possible to
    have components with identical names in different libraries.

2006-11-16 tommi@tntnet.org

 - VMapUrl (virtual host specific mapping)

2006-11-05 tommi@tntnet.org

 - changed some less informative log-entries from info to debug
 - added logging of file-size in static pages
 - reading tntnet.conf from current directory in non-root accounts
 - using port 8000 as default-port in non-root accounts

2006-09-22 tommi@tntnet.org

 - major bugfix: MaxRequestSize was not checked for 0 in POST-requests.
    the result was, that POST-requests did not work in the default
    configuration at all.
 - Version 1.5.3

2006-09-09 tommi@tntnet.org

 - fix crash in cgi-library when using thread-scope in cgi-programs

2006-08-22 tommi@tntnet.org

 - tntnet has now a complete set of man-pages

2006-08-19 tommi@tntnet.org

 - increase maximum limits for better default scalability

2006-07-09 tommi@tntnet.org

 - thread-scope variables
 - new demo "alldemos", which links to all other demos

2006-07-03 tommi@tntnet.org

 - cookies are case-insensitive (see rfc 2109)

2006-06-25 tommi@tntnet.org

 - make http-headers case-insensitive as per spec
 - don't delete components any more - they don't eat so much memory
    and it is impossible to know, when components aren't needed any more

2006-06-20 tommi@tntnet.org

 - graceful shutdown of ssl-connections (gnutls and openssl)

2006-06-16 tommi@tntnet.org

 - new demo-applications calcmvc, which shows a simple mvc-pattern, and
    calcajax, which demonstrates, how to use ajax with tntnet

2006-06-10 tommi@tntnet.org

 - port to gnutls

2006-06-08 tommi@tntnet.org

 - take first commandline-argument as configurationfile
 - remove unnecessery virtual destructors (although this triggers some
    compiler-warnings)

2006-05-24 tommi@tntnet.org

 - fix linking with openssl for Open-BSD (and possibly others)
 - try harder to shut down listener

2006-05-08 tommi@tntnet.org

 - send charset in content-type-header with HTTP/1.1

2006-04-29 tommi@tntnet.org

 - improved namespace-support for components

2006-04-26 tommi@tntnet.org
 - support for IPv6

2006-04-12 tommi@tntnet.org

 - new demo newsdb, which reads news from a database using tntdb
 - add openssl-license and allow tntnet to be linked with openssl
 - fix names of standard-components (components in tntnet.so)

2006-04-04 tommi@tntnet.org

 - ANSI-C++-fixes
 - make SIGTERM a graceful shutdown

2006-03-24 tommi@tntnet.org

 - include #line-directives into generated code to help finding
    syntax errors in components

2006-03-23 tommi@tntnet.org

 - fix ssl
 - delay closing standard-handles for better error-reporting at startup
 - fix internationalization

2006-03-02 tommi@tntnet.org

 - locale-cache
 - poll before read, which reduces system calls even more

2006-02-16 tommi@tntnet.org

 - dramatic performance-improvement by optimization of locale-handling

2006-01-25 tommi@tntnet.org

 - add support for locales

2006-01-15 tommi@tntnet.org
 - Simplified constant data-handling for i18n
 - i18n is now controled with <%i18n>-tags

2005-12-31 tommi@tntnet.org

 - components can be compiled into cgi-programs

2005-12-09 tommi@tntnet.org

 - new demo "controls" to demonstrate usage of end-tags
 - new configuration-variables ListenBacklog, ListenRetry, EnableCompression

2005-12-08 tommi@tntnet.org

 - tntnet now supports gzip-encoding

2005-12-02 tommi@tntnet.org

 - end-tags for component-calls
 - documentation-updates and converted to open-document-format

2005-12-01 tommi@tntnet.org

 - fixed SSL-problems - need to mutex-lock SSL-read and -write-calls

2005-11-08 tommi@tntnet.org

 - store comploader in objectpool for later reuse.
 - derive workerthread from DetachedThread and delete itself on exit

2005-11-04 tommi@tntnet.org

 - new health-check - if a thread takes too long for processing (default: 10
    minutes), the thread is considered hanging and tntnet is restarted
    automatically.

2005-10-22 tommi@tntnet.org

 - delay initialization of logging after changing user and group. This ensures
    that logfiles are created with the right permissions.
 - increase defaults for MinThreads from 5 to 10 and MaxThreads from 10 to 100.
    Threads are not that expensive and it should not hurt to create much more.

2005-10-18 tommi@tntnet.org

 - components with compressed data did not work any more - fixed

2005-09-26 tommi@tntnet.org

 - one level of indirection of factory-pointer removed.
 - detection of cxxtools- and zlib-headers fixed. Missing headers trigger a
    error at configure-time.

2005-09-15 tommi@tntnet.org

 - components are created with a factory instead of a create-method.
    This way there is no need to convert a void* to a function-pointer, what
    is not defined in c++.

2005-08-23 tommi@tntnet.org

 - documentation update (see doc/tntnet.sxw)
 - initscript update - tntnet reload

2005-08-22 tommi@tntnet.org

 - new namingconventions: classfiles start with uppercase, methods with lowercase
 - use cxxtools-1.4.0

2005-06-27 tommi@tntnet.org

 - fixed ssl-threading problem

2005-06-22 tommi@tntnet.org

 - dependencygeneration fixed (no *.h-dependency any more unless requested)
 - no escape of '&' in sout()
 - fixed upload.ecpp-demo
 - fixed ecppl/ecppll

2005-06-13 tommi@tntnet.org

 - components are generated in .cpp-files only by default (no .h-files)
 - bugfix: component-type was not filled
 - unsave html-character-output in <$...$> and <?...?...?> is escaped

2005-06-02 tommi@tntnet.org

 - scope-variables
 - automatic session-handling
 - removed boost dependency

2005-05-17 tommi@tntnet.org

 - version 1.3.1 released

2005-05-17 tommi@tntnet.org

 - monitor-process calls listen before fork of worker instead of worker.

2005-05-03 tommi@tntnet.org

 - better startup-handling: parent-process wait for child to start
    successfully and listen to ports

2005-05-09 tommi@tntnet.org

 - Bug: peeraddress was cleared at keep-alive
 - init-scripts starts tntnet on restart even when not running

2005-03-03 tommi@tntnet.org

 - logs remote ip-address in category debug

2005-02-10 tommi@tntnet.org

 - new syntax for calling subcomponents

2005-01-23 tommi@tntnet.org

 - better scalability by creating a poller-thread, which monitors
    multiple idle connections instead of having a worker-thread
    for each connection.
 - worker-threads are dynamically stopped and started
 - Version 1.3.0 released

2005-01-12 tommi@tntnet.org

 - version 1.2.3 released
 - some protection against DoS-attacks (MaxRequestSize, MaxBodySize,
    MaxHeaderSize)
 - support for Cookies
 - tnt::savepoint

2004-12-14 tommi@tntnet.org

 - version 1.2.2 released
 - Bug in Keep-Alive fixed

2004-12-05 tommi@tntnet.org

 - version 1.2.1 released
 - Content-MD5-header
 - moved logging-wrapper to cxxtools (1.2.1)
 - typed arguments

2004-11-25 tommi@tntnet.org

 - version 1.2.0 released
 - use cxxtools-1.2.0

2004-11-24 tommi@tntnet.org

 - add missing CR in HTTP-Header

2004-11-22 tommi@tntnet.org

 - init-script checks, if tntnet is really running when pid-file is found

2004-11-12 tommi@tntnet.org

 - version 1.1.3 released
 - generate tntnet.conf with autoconf to get autoconf-parameters in

2004-11-11 tommi@tntnet.org

 - added missing tntnet.so.*

2004-11-03 tommi@tntnet.org

 - version 1.1.2 released
 - improved autoconf/automake-buildsystem
 - minor feature-improvements and bugfixes

2004-10-25 tommi@tntnet.org

 - version 1.1.1 released
 - buldsystem changed to autoconf/automake

2004-09-20 tommi@tntnet.org

 - resolved: server might crash under high load, because I linked it
    with the non-multithreaded regex-library

2004-09-16 tommi@tntnet.org

 - new build for compatibility with cxxtools 1.1

2004-09-07 tommi@tntnet.org

 - fixed HTTP-header

2004-08-31 tommi@tntnet.org

 - version 1.1 released
 - ecpp-components read LANG from request first.

2004-03-25 tommi@tntnet.org

 - initial release 1.0

