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