Dont forget to update the release number also in QtWebApp.pro and httpserver/httpglobal.cpp. 1.7.3 25.04.2017 Wait until all data are sent before closing connections. 1.7.2 17.01.2017 Fixed compile error with MSVC. 1.7.1 10.11.2016 Fixed a possible memory leak in case of broken Multipart HTTP Requests. 1.7.0 08.11.2016 Introduced namespace "stefanfrings". Improved performance a little. 1.6.7 10.10.2016 Fix type of socketDescriptor in qtservice library. Add support for INFO log messages (new since QT 5.5). Improve indentation of log messages. 1.6.6 25.07.2016 Removed useless mutex from TemplateLoader. Add mutex to TemplateCache (which is now needed). 1.6.5 10.06.2016 Incoming HTTP request headers are now processed case-insensitive. Add support for the HttpOnly flag of cookies. 1.6.4 27.03.2016 Fixed constructor of Template class did not load the source file properly. Template loader and cache were not affected. 1.6.3 11.03.2016 Fixed compilation error. Added missing implementation of HttpRequest::getPeerAddress(). 1.6.2 06.03.2016 Added mime types for some file extensions. 1.6.1 25.01.2016 Fixed parser of boundary value in multi-part request, which caused that QHttpMultipart did not work on client side. 1.6.0 29.12.2015 Much better output buffering, reduces the number of small IP packages. 1.5.13 29.12.2015 Improved performance a little. Add support for old HTTP 1.0 clients. Add HttpResposne::flush() and HttpResponse::isConnected() which are helpful to support SSE from HTML 5 specification. 1.5.12 11.12.2015 Fix program crash when using SSL with a variable sized thread pool on Windows. Changed name of HttpSessionStore::timerEvent() to fix compiler warnings since Qt 5.0. Add HttpRequest::getRawPath(). HttpSessionStore::sessions is now protected. 1.5.11 21.11.2015 Fix project file for Mac OS. Add HttpRequest::getPeerAddress() and HttpResponse::getStatusCode(). 1.5.10 01.09.2015 Modified StaticFileController to support ressource files (path starting with ":/" or "qrc://"). 1.5.9 06.08.2015 New HttpListener::listen() method, to restart listening after close. Add missing include for QObject in logger.h. Add a call to flush() before closing connections, which solves an issue with nginx. 1.5.8 26.07.2015 Fixed segmentation fault error when closing the application while a HTTP request is in progress. New HttpListener::close() method to simplifly proper shutdown. 1.5.7 20.07.2015 Fix Qt 5.5 compatibility issue. 1.5.6 22.06.2015 Fixed compilation failes if QT does not support SSL. 1.5.5 16.06.2015 Improved performance of SSL connections. 1.5.4 15.06.2015 Support for Qt versions without OpenSsl. 1.5.3 22.05.2015 Fixed Windows issue: QsslSocket cannot be closed from other threads than it was created in. 1.5.2 12.05.2015 Fixed Windows issue: QSslSocket cannot send signals to another thread than it was created in. 1.5.1 14.04.2015 Add support for pipelining. 1.5.0 03.04.2015 Add support for HTTPS. 1.4.2 03.04.2015 Fixed HTTP request did not work if it was split into multipe IP packages. 1.4.1 20.03.2015 Fixed session cookie expires while the user is active, expiration time was not prolonged on each request. 1.4.0 14.03.2015 This release has a new directory structure and new project files to support the creation of a shared library (*.dll or *.so). 1.3.8 12.03.2015 Improved shutdown procedure. New config setting "host" which binds the listener to a specific network interface. 1.3.7 14.01.2015 Fixed setting maxMultiPartSize worked only with file-uploads but not with form-data. 1.3.6 16.09.2014 Fixed DualFileLogger produces no output. 1.3.5 11.06.2014 Fixed a multi-threading issue with race condition in StaticFileController. 1.3.4 04.06.2014 Fixed wrong content type when the StaticFileController returns a cached index.html. 1.3.3 17.03.2014 Improved security of StaticFileController by denying "/.." in any position of the request path. Improved performance of StaticFileController a little. New convenience method HttpResponse::redirect(url). Fixed a missing return statement in StaticFileController. 1.3.2 08.01.2014 Fixed HTTP Server ignoring URL parameters when the request contains POST parameters. 1.3.1 15.08.2013 Fixed HTTP server not accepting connections on 64bit OS with QT 5. 1.3.0 20.04.2013 Updated for compatibility QT 5. You may still use QT 4.7 or 4.8, if you like. Also added support for logging source file name, line number and function name. 1.2.13 03.03.2013 Fixed Logger writing wrong timestamp for buffered messages. Improved shutdown procedure. The webserver now processes all final signals before the destructor finishes. 1.2.12 01.03.2013 Fixed HttpResponse sending first part of data repeatedly when the amount of data is larger than the available memory for I/O buffer. 1.2.11 06.01.2013 Added clearing the write buffer when accepting a new connection, so that it does not send remaining data from an aborted previous connection (which is possibly a bug in QT). 1.2.10 18.12.2012 Reduced memory usage of HttpResponse in case of large response. 1.2.9 29.07.2012 Added a mutex to HttpConnectionHandlerPool to fix a concurrency issue when a pooled object gets taken from the cache while it times out. Modified HttpConnectionHandler so that it does not throw an exception anymore when a connection gets closed by the peer in the middle of a read. 1.2.8 22.07.2012 Fixed a possible concurrency issue when the file cache is so small that it stores less files than the number of threads. 1.2.7 18.07.2012 Fixed HttpRequest ignores additional URL parameters of POST requests. Fixed HttpRequest ignores POST parameters of body if there is no Content-Type header. Removed unused tempdir variable from HttpRequest. Added mutex to cache of StaticFileController to prevent concurrency problems. Removed HTTP response with status 408 after read timeout. Connection gets simply closed now. 1.2.6 29.06.2012 Fixed a compilation error on 64 bit if super verbose debugging is enabled. Fixed a typo in static file controller related to the document type header. 1.2.5 27.06.2012 Fixed error message "QThread: Destroyed while thread is still running" during program termination. 1.2.4 02.06.2012 Fixed template engine skipping variable tokens when a value is shorter than the token. 1.2.3 26.12.2011 Fixed null pointer error when the HTTP server aborts a request that is too large. 1.2.2 06.11.2011 Fixed compilation error on 64 bit platforms. 1.2.1 22.10.2011 Fixed a multi-threading bug in HttpConnectionHandler. 1.2.0 05.12.2010 Added a controller that serves static files, with cacheing. 1.1.0 19.10.2010 Added support for sessions. Separated the base classes into individual libraries. 1.0.0 17.10.2010 First release