1Release Notes v1.12 2=== 3### Objectives: *TO BE DEFINED* 4 5Changes 6------- 7 8- Support for flawed CGI interpreters returning only <LF> instead of <CR><LF> 9- Add NO_FILESYSTEM flag for (embedded) system without any file system 10- Several fixes for server side Lua scripts 11- Disable SSL renegotiation for new OpenSSL version 12- Allow to force TLSv1.3 (disable TLSv1.2) 13- Prefer pre-compressed *.gz file, if it already exists 14- Fix some #include statements for various compilers / OS / SDK versions 15- Support for Linux Standard Base (LSB) 16- Fixes to mg_get_*_info() API functions 17- Fix some bugs/deficiencies in examples and tests 18- Fix some static source code analysis warnings 19- Add Conan package build 20- Fix include for Lua pages in "Kepler Syntax" 21- Replace some uses of deprecated Linux and OpenSSL API functions 22- Improved documentation and examples 23- Fixes for timeout handling 24- Fixes for the request queue (rare loss of requests) 25- Client side SNI 26- Update version number 27 28 29Release Notes v1.11 30=== 31### Objectives: *Support multiple domains and certificates, support websocket ping-pong, on-the-fly compression, additional API functions* 32 33Changes 34------- 35 36- Add API function to send file body for C and Lua 37- Fix several warnings from different compilers and static code analyzers 38- Drop Symbian support from the code 39- Improve examples 40- Timeout for CGI scripts 41- Fix for requests using IPv6 addresses as hostname 42- Shared data for Lua scripts and Lua server pages 43- Add API function for 30x redirect 44- Script for Linux bash auto-completion 45- Add HTTP JSON C callback example 46- Add helper function for HTTP 200 OK response 47- Allow Kepler Syntax for Lua Server pages 48- Update duktape to 2.2.0 and Lua to 5.3.4 49- Optional support for on-the-fly compression (if zlib is available and USE_ZLIB is set) 50- Add method to replace mg\_cry and log\_access by own implementation 51- Fixes for IPv6 support 52- Add server support for websocket ping pong protocol 53- Fix misspellings in source code and documentation 54- Add error msg to http_error callback 55- Move unit test to a new directory 56- Remove remote\_ip request\_info member (it has been legacy since several versions) 57- Use gmtime_r instead of gmtime, if available 58- Add some functions to C++ wrapper 59- Support multiple domains with different certificate files (TLS server name identification, SNI) 60- Provide client peer certificate (X509) in mg\_client\_cert structure 61- Add new callback (get\_external\_ssl\_ctx) to provide pre-initialized TLS context 62- Improve unit tests 63- Fix ssl init for HTTPS clients 64- Update version number 65 66 67Release Notes v1.10 68=== 69### Objectives: *OpenSSL 1.1 support, add server statistics and diagnostic data* 70 71Changes 72------- 73 74- Add missing `mg_` or `MG_` to symbols in civetweb.h. Symbols without will be removed a future version. 75- Add HTTPS server configuration example 76- Lua Pages: mg.include should support absolute, relative and virtual path types 77- Add API function for HTTP digest authentication 78- Improved interface documentation 79- Support parameters for Lua background scripts 80- Use new connection queue implementation (previously ALTERNATIVE\_QUEUE) as default 81- Add USE\_SERVER\_STATS define, so the server collects statistics data 82- Convert system\_info text output and all other diagnostic strings to JSON format 83- Add experimental function to query the connection status (may be dropped again) 84- Add document on proposed future interface changes (for comments) 85- Officially drop Symbian support 86- Ignore leading blank lines in multipart messages (for Android upload service) 87- Rewrite some functions, in particular request parsing 88- CORS preflight directly in the server, with additional config options 89- Solve some warnings from different static source code analysis tools 90- Collect server status data 91- Allow hostname in listening\_ports 92- Make maximum request size configurable 93- Allow multiple Sec-Websocket-Protocol 94- Add configuration option to send additional headers 95- Add configuration option for Strict-Transport-Security 96- Mark "file in memory" feature is a candidate for deletion 97- Improve examples 98- Fix timeout error when sending larger files 99- Add mg\_send\_chunk interface function 100- Allow to separate server private key and certificate chain in two different files 101- Support for multipart requests without quotes (for some C# clients) 102- Initialize SSL in mg\_init\_library, so https client functions can be used when no server is running 103- Allow "REPORT" HTTP method for REST calls to scripts 104- Allow to compile civetweb.c with a C++ compiler 105- Lua: Remove internal length limits of encode/decode functions 106- Allow sub-resources of index script files 107- Add config parameter allow\_index\_script\_resource the aforementioned feature 108- Remove deprecated "uri" member of the request from the interface 109- Improve documentation 110- Make auth domain check optional (configuration) 111- Update unit test framework to check 0.11.0 (C89/C90 compilers still need a patched version) 112- Limit depth of mg.include for Lua server pages 113- Additional unit tests 114- OpenSSL 1.1 support 115- Update version number 116 117 118Release Notes v1.9.1 119=== 120### Objectives: *Bug fix* 121 122Changes 123------- 124 125- Add "open website" button for pre-built Windows binaries 126- Fix for connections closed prematurely 127- Update to a new check unit test framework and remove patches required for previous version 128- Update version number 129 130 131Release Notes v1.9 132=== 133### Objectives: *Read SSI client certificate information, improve windows usability, use non-blocking sockets, bug fixes* 134 135Changes 136------- 137 138- Add library init/exit functions (call is now optional, but will be required in V1.10) 139- Windows: Show system information from the tray icon 140- Windows: Bring overlaid windows to top from the tray icon 141- Add Lua background script, running independent from server state 142- Move obsolete examples into separated directory 143- Change name of CMake generated C++ library to civetweb-cpp 144- Add option to set linger timeout 145- Update Duktape and Lua (third-party code) 146- Add continuous integration tests 147- Add API documentation 148- Limit recursions in .htpasswd files 149- Fix SCRIPT_NAME for CGI directory index files (index.php) 150- Use non-blocking sockets 151- stdint.h is now required and no longer optional 152- Rewrite connection close handling 153- Rewrite mg_fopen/mg_stat 154- Enhanced tray icon menu for Windows 155- Add subprotocol management for websocket connections 156- Partially rewrite timeout handling 157- Add option keep_alive_timeout_ms 158- Improve support for absolute URIs 159- Allow some additional compiler checks (higher warning level) 160- Add option for case sensitive file names for Windows 161- Short notation for listening_ports option when using IPv4 and IPv6 ports 162- Make usage of Linux sendfile configurable 163- Optimize build matrix for Travis CI 164- Retry failing TLS/HTTPS read/write operations 165- Read client certificate information 166- Do not tolerate URIs with invalid characters 167- Fix mg_get_cookie to ignore substrings 168- Fix memory leak in form handling 169- Fix bug in timer logic (for Lua Websockets) 170- Updated version number 171 172Release Notes v1.8 173=== 174### Objectives: *CMake integration and continuous integration tests, Support client certificates, bug fixes* 175 176Changes 177------- 178 179- Replace mg_upload by mg_handle_form_request 180- CGI-scripts must receive EOF if all POST data is read 181- Add API function to handle all kinds of HTML form data 182- Do not allow short file names in Windows 183- Callback when a new thread is initialized 184- Support for short lived certificates 185- Add NO_CACHING compile option 186- Update Visual Studio project files to VS2015; rename directory VS2012 to VS 187- Sec-Wesocket-Protocol must only return one protocol 188- Mark some examples and tests as obsolete 189- Remove no longer maintained test utils 190- Add some default MIME types and the mg_send_mime_file API function. 191- Client API using SSL certificates 192- Send "Cache-Control" headers 193- Add alternative to mg_upload 194- Additional configuration options 195- Fix memory leaks 196- Add API function to check available features 197- Add new interface to get listening ports 198- Add websocket client interface and encode websocket data with a simple random number 199- Support SSL client certificates 200- Add configuration options for SSL client certificates 201- Stand-alone server: Add command line option -I to display information about the system 202- Redirect stderr of CGI process to error log 203- Support absolute URI; split uri in mg_request_info to request_uri and local_uri 204- Some source code refactoring, to improve maintainability 205- Use recursive mutex for Linux 206- Allow CGI environment to grow dynamically 207- Support build for Lua 5.1 (including LuaJIT), Lua 5.2 and Lua 5.3 208- Improve examples and documentation 209- Build option CIVETWEB_SERVE_NO_FILES to disable serving static files 210- Add Server side JavaScript support (Duktape library) 211- Created a "civetweb" organization at GitHub. 212- Repository moved from https://github.com/bel2125/civetweb to https://github.com/civetweb/civetweb 213- Improved continuous integration 214- CMake support, continuous integration with Travis CI and Appveyor 215- Adapt/port unit tests to CMake/Travis/Appveyor 216- Bug fixes, including issues from static code analysis 217- Add status badges to the GitHub project main page 218- Updated version number 219 220Release Notes v1.7 221=== 222### Objectives: *Examples, documentation, additional API functions, some functions rewritten, bug fixes and updates* 223 224Changes 225------- 226 227- Format source with clang_format 228- Use function 'sendfile' for Linux 229- Fix for CRAMFS in Linux 230- Fix for file modification times in Windows 231- Use SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR for Windows 232- Rewrite push/pull functions 233- Allow to use Lua as shared objects (WITH_LUA_SHARED) 234- Fixes for many warnings 235- URI specific callbacks and different timeouts for websockets 236- Add chunked transfer support 237- Update LuaFileSystem 238- Update Lua to 5.2.4 239- Fix build for MinGW-x64, TDM-GCC and clang 240- Update SQLite to 3.8.10.2 241- Fix CGI variables SCRIPT_NAME and PATH_TRANSLATED 242- Set TCP_USER_TIMEOUT to deal faster with broken connections 243- Add a Lua form handling example 244- Return more differentiated HTTP error codes 245- Add log_access callback 246- Rewrite and comment request handling function 247- Specify in detail and document return values of callback functions 248- Set names for all threads (unless NO_THREAD_NAME is defined) 249- New API functions for TCP/HTTP clients 250- Fix upload of huge files 251- Allow multiple SSL instances within one application 252- Improve API and user documentation 253- Allow to choose between static and dynamic Lua library 254- Improve unit test 255- Use temporary file name for partially uploaded files 256- Additional API functions exported to C++ 257- Add a websocket client example 258- Add a websocket client API 259- Update websocket example 260- Make content length available in request_info 261- New API functions: access context, callback for create/delete, access user data 262- Upgraded Lua from 5.2.2 to 5.2.3 and finally 5.2.4 263- Integrate LuaXML (for testing purposes) 264- Fix compiler warnings 265- Updated version number 266 267Release Notes v1.6 268=== 269### Objectives: *Enhance Lua support, configuration dialog for windows, new examples, bug fixes and updates* 270 271Changes 272------- 273 274- Add examples of Lua pages, scripts and websockets to the test directory (bel) 275- Add dialog to change htpasswd files for the Windows standalone server (bel) 276- Fix compiler warnings and warnings from static code analysis (Danny Al-Gaaf, jmc-, Thomas, bel, ...) 277- Add new unit tests (bel) 278- Support includes in htpasswd files (bel) 279- Add a basic option check for the standalone executable (bel) 280- Support user defined error pages (bel) 281- Method to get POST request parameters via C++ interface (bel) 282- Re-Add unit tests for Linux and Windows (jmc-, bel) 283- Allow to specify title and tray icon for the Windows standalone server (bel) 284- Fix minor memory leaks (bel) 285- Redirect all memory allocation/deallocation through mg functions which may be overwritten (bel) 286- Support Cross-Origin Resource Sharing (CORS) for static files and scripts (bel) 287- Win32: Replace dll.def file by export macros in civetweb.h (CSTAJ) 288- Base64 encode and decode functions for Lua (bel) 289- Support pre-loaded files for the Lua environment (bel) 290- Server should check the nonce for http digest access authentication (bel) 291- Hide read-only flag in file dialogs opened by the Edit Settings dialog for the Windows executable (bel) 292- Add all functions to dll.def, that are in the header (bel) 293- Added Lua extensions: send_file, get_var, get_mime_type, get_cookie, url_decode, url_encode (bel) 294- mg_set_request_handler() mod to use pattern (bel, Patch from Toni Wilk) 295- Solved, tested and documented SSL support for Windows (bel) 296- Fixed: select for Linux needs the nfds parameter set correctly (bel) 297- Add methods for returning the ports civetweb is listening on (keithel) 298- Fixes for Lua Server Pages, as described within the google groups thread. (bel) 299- Added support for plain Lua Scripts, and an example script. (bel) 300- A completely new, and more illustrative websocket example for C. (bel) 301- Websocket for Lua (bel) 302- An optional websocket_root directory, including URL rewriting (bel) 303- Update of SQLite3 to 3.8.1. (bel) 304- Add "date" header field to replies, according to the requirements of RFC 2616 (the HTTP standard), Section 14.18 (bel) 305- Fix websocket long pull (celeron55) 306- Updated API documentation (Alex Kozlov) 307- Fixed Posix locking functions for Windows (bel2125) 308- Updated version number 309 310Release Notes v1.5 311=== 312### Objectives: *Bug fixes and updates, repository restoration* 313 314Changes 315------- 316 317- Corrected bad mask flag/opcode passing to websocket callback (William Greathouse) 318- Moved CEVITWEB_VERSION define into civetweb.h 319- Added new simple zip deployment build for Windows. 320- Removed windows install package build. 321- Fixes page violation in mod_lua.inl (apkbox) 322- Use C style comments to enable compiling most of civetweb with -ansi. (F-Secure Corporation) 323- Allow directories with non ASCII characters in Windows in UTF-8 encoded (bel2125) 324- Added Lua File System support (bel2125) 325- Added mongoose history back in repository thanks to (Paul Sokolovsky) 326- Fixed keep alive (bel2125) 327- Updated of MIME types (bel2125) 328- Updated lsqlite (bel2125) 329- Fixed master thread priority (bel2125) 330- Fixed IPV6 defines under Windowe (grenclave) 331- Fixed potential dead lock in connection_close() (Morgan McGuire) 332- Added WebSocket example using asynchronous server messages (William Greathouse) 333- Fixed the getcwd() warning (William Greathouse) 334- Implemented the connection_close() callback (William Greathouse) 335- Fixed support URL's in civetweb.c (Daniel Oaks) 336- Allow port number to be zero to use a random free port (F-Secure Corporation) 337- Wait for threads to finish when stopping for a clean shutdown (F-Secure Corporation) 338- More static analysis fixes against Coverity tool (F-Secure Corporation) 339- Travis automated build testing support added (Daniel Oaks) 340- Updated version numbers. 341- Added contributor credits file. 342 343Release Notes v1.4 344=== 345### Objectives: *New URI handler interface, feature enhancements, C++ extensions* 346The main idea behind this release is to bring about API consistency. All changes 347are backward compatible and have been kept to a minimum. 348 349Changes 350------- 351 352- Added mg_set_request_handler() which provides a URI mapping for callbacks. 353 This is a new alternative to overriding callbacks.begin_request. 354- Externalized mg_url_encode() 355- Externalized mg_strncasecmp() for utiliy 356- Added CivetServer::getParam methods 357- Added CivetServer::urlDecode methods 358- Added CivetServer::urlEncode methods 359- Dealt with compiler warnings and some static analysis hits. 360- Added mg_get_var2() to parse repeated query variables 361- Externalized logging function cry() as mg_cry() 362- Added CivetServer::getCookie method (Hariprasad Kamath) 363- Added CivetServer::getHeader method (Hariprasad Kamath) 364- Added new basic C embedding example 365- Conformed source files to UNIX line endings for consistency. 366- Unified the coding style to improve reability. 367 368Release Notes v1.3 369=== 370### Objectives: *Buildroot Integration* 371 372Changes 373------- 374 375- Made option to put initial HTMLDIR in a different place 376- Validated build without SQLITE3 large file support 377- Updated documentation 378- Updated Buildroot config example 379 380Release Notes v1.2 381=== 382### Objectives: *Installation Improvements, buildroot, cross compile support* 383The objective of this release is to make installation seamless. 384 385Changes 386------- 387 388- Create an installation guide 389- Created both 32 and 64 bit windows installations 390- Added install for windows distribution 391- Added 64 bit build profiles for VS 2012. 392- Created a buildroot patch 393- Updated makefile to better support buildroot 394- Made doc root and ports configurable during the make install. 395- Updated Linux Install 396- Updated OS X Package 397- Improved install scheme with welcome web page 398 399Known Issues 400----- 401 402- The prebuilt Window's version requires [Visual C++ Redistributable for Visual Studio 2012](http://www.microsoft.com/en-us/download/details.aspx?id=30679) 403 404Release Notes v1.1 405=== 406### Objectives: *Build, Documentation, License Improvements* 407The objective of this release is to establish a maintable code base, ensure MIT license rights and improve usability and documentation. 408 409Changes 410------- 411 412- Reorangized build directories to make them more intuitive 413- Added new build rules for lib and slib with option to include C++ class 414- Upgraded Lua from 5.2.1 to 5.2.2 415- Added fallback configuration file path for Linux systems. 416 + Good for having a system wide default configuration /usr/local/etc/civetweb.conf 417- Added new C++ abstraction class CivetServer 418- Added thread safety for and fixed websocket defects (Morgan McGuire) 419- Created PKGBUILD to use Arch distribution (Daniel Oaks) 420- Created new documentation on Embeddeding, Building and yaSSL (see docs/). 421- Updated License file to include all licenses. 422- Replaced MD5 implementation due to questionable license. 423 + This requires new source file md5.inl 424- Changed UNIX/OSX build to conform to common practices. 425 + Supports build, install and clean rules. 426 + Supports cross compiling 427 + Features can be chosen in make options 428- Moved Cocoa/OSX build and packaging to a separate file. 429 + This actually a second build variant for OSX. 430 + Removed yaSSL from the OSX build, not needed. 431- Added new Visual Studio projects for Windows builds. 432 + Removed Windows support from Makefiles 433 + Provided additional, examples with Lua, and another with yaSSL. 434- Changed Zombie Reaping policy to not ignore SIGCHLD. 435 + The previous method caused trouble in applciations that spawn children. 436 437Known Issues 438----- 439 440- Build support for VS6 and some other has been deprecated. 441 + This does not impact embedded programs, just the stand-alone build. 442 + The old Makefile was renamed to Makefile.deprecated. 443 + This is partcially do to lack fo testing. 444 + Need to find out what is actually in demand. 445- Build changes may impact current users. 446 + As with any change of this type, changes may impact some users. 447 448Release Notes v1.0 449=== 450 451### Objectives: *MIT License Preservation, Rebranding* 452The objective of this release is to establish a version of the Mongoose software distribution that still retains the MIT license. 453 454Changes 455------- 456 457- Renamed Mongoose to Civetweb in the code and documentation. 458- Replaced copyrighted images with new images 459- Created a new code repository at https://github.com/civetweb/civetweb 460- Created a distribution site at https://sourceforge.net/projects/civetweb/ 461- Basic build testing 462