All Versions
11
Latest Version
Avg Release Cycle
259 days
Latest Release
391 days ago

Changelog History
Page 1

  • v1.13 Changes

    September 30, 2020

    Summary

    ⚡️ Various updates and fixes, additional API functions

    🔄 Changes

    • ➕ Add arguments for CGI interpreters
    • 👌 Support multiple CGi interpreters
    • Buffering HTTP response headers, including API functions mg_response_header_* in C and Lua
    • ➕ Additional C API functions
    • 🛠 Fix some memory leaks
    • Extended use of atomic operations (e.g., for server stats)
    • ➕ Add fuzz tests
    • 0️⃣ Set OpenSSL 1.1 API as default (from 1.0)
    • ➕ Add Lua 5.4 support and deprecate Lua 5.1
    • Provide additional Lua API functions
    • 🛠 Fix Lua websocket memory leak when closing the server
    • ✂ Remove obsolete "file in memory" implementation
    • 👌 Improvements and fixes in documentation
    • 🛠 Fixes from static source code analysis
    • ➕ Additional unit tests
    • 🛠 Various small bug fixes
    • 👍 Experimental support for some HTTP2 features (not ready for production)
    • 👍 Experimental support for websocket compression
    • ✂ Remove legacy interfaces declared obsolete since more than 3 years
    • ⚡️ Update version number
  • v1.12 Changes

    March 17, 2020

    Summary

    📚 Multiple improvements and extensions in various areas, including compatibility enhancements, additional Lua scripting features and documentation.

    🔄 Changes

    • ⚡️ Updates/improvements for LuaXML
    • ⚡️ Updates and tests for JSON for Lua
    • 👍 BoringSSL support
    • ➕ Add Remark: Do not use Git for Windows V2.24 (but <= V2.23 or >= V2.25)
    • 🏁 Format configuration dialogs for Windows
    • ➕ Add option "hide_tray" to start without Windows systray icon
    • URI checking according to "remove_dot_segments" algorithm from RFC
    • 👍 Experimental support for a new server and client start API
    • ➕ Additional callbacks to initialize external SSL context
    • More cache control options for static files
    • Trace function for Lua server pages
    • Access to client certificate data for Lua pages
    • 👍 Allow to configure SOMAXCONN (max. number of waiting connections)
    • 🏗 Include some build options for Zephyr
    • 👌 Support for flawed CGI interpreters returning only instead of
    • ➕ Add NO_FILESYSTEM flag for (embedded) system without any file system
    • 🛠 Several fixes for server side Lua scripts
    • Disable SSL renegotiation for new OpenSSL version
    • 👍 Allow to force TLSv1.3 (disable TLSv1.2)
    • Prefer pre-compressed *.gz file, if it already exists
    • 🛠 Fix some #include statements for various compilers / OS / SDK versions
    • 👌 Support for Linux Standard Base (LSB)
    • Fixes to mg_get_*_info() API functions
    • 🛠 Fix some bugs/deficiencies in examples and tests
    • 🛠 Fix some static source code analysis warnings
    • ➕ Add Conan package build
    • 🛠 Fix include for Lua pages in "Kepler Syntax"
    • 🐧 Replace some uses of deprecated Linux and OpenSSL API functions
    • 👌 Improved documentation and examples
    • 🛠 Fixes for timeout handling
    • 🛠 Fixes for the request queue (rare loss of requests)
    • Client side SNI
    • ⚡️ Update version number
  • v1.11 Changes

    September 10, 2018

    Major Features

    👌 Support multiple domains and certificates, support websocket ping-pong, on-the-fly compression, additional API functions

    🔄 Changes

    • ➕ Add API function to send file body for C and Lua
    • 🛠 Fix several warnings from different compilers and static code analyzers
    • ⬇️ Drop Symbian support from the code
    • 👌 Improve examples
    • ⏱ Timeout for CGI scripts
    • 🛠 Fix for requests using IPv6 addresses as hostname
    • Shared data for Lua scripts and Lua server pages
    • ➕ Add API function for 30x redirect
    • 🐧 Script for Linux bash auto-completion
    • ➕ Add HTTP JSON C callback example
    • ➕ Add helper function for HTTP 200 OK response
    • 👍 Allow Kepler Syntax for Lua Server pages
    • ⚡️ Update duktape to 2.2.0 and Lua to 5.3.4
    • 👍 Optional support for on-the-fly compression (if zlib is available and USE_ZLIB is set)
    • 🌲 Add method to replace mg_cry and log_access by own implementation
    • 🛠 Fixes for IPv6 support
    • ➕ Add server support for websocket ping pong protocol
    • 🛠 Fix misspellings in source code and documentation
    • ➕ Add error msg to http_error callback
    • 🚚 Move unit test to a new directory
    • Remove remote_ip request_info member (it has been legacy since several versions)
    • 👉 Use gmtime_r instead of gmtime, if available
    • ➕ Add some functions to C++ wrapper
    • 👌 Support multiple domains with different certificate files (TLS server name identification, SNI)
    • Provide client peer certificate (X509) in mg_client_cert structure
    • Add new callback (get_external_ssl_ctx) to provide pre-initialized TLS context
    • 👌 Improve unit tests
    • 🛠 Fix ssl init for HTTPS clients
    • ⚡️ Update version number
  • v1.10 Changes

    September 26, 2017

    Major Features

    👍 OpenSSL 1.1 support, add server statistics and diagnostic data

    🔄 Changes

    • Add missing mg_ or MG_ to symbols in civetweb.h. Symbols without will be removed a future version.
    • ➕ Add HTTPS server configuration example
    • 👍 Lua Pages: mg.include should support absolute, relative and virtual path types
    • ➕ Add API function for HTTP digest authentication
    • 👌 Improved interface documentation
    • 👌 Support parameters for Lua background scripts
    • 0️⃣ Use new connection queue implementation (previously ALTERNATIVE_QUEUE) as default
    • Add USE_SERVER_STATS define, so the server collects statistics data
    • Convert system_info text output and all other diagnostic strings to JSON format
    • ➕ Add experimental function to query the connection status (may be dropped again)
    • ➕ Add document on proposed future interface changes (for comments)
    • 👍 Officially drop Symbian support
    • Ignore leading blank lines in multipart messages (for Android upload service)
    • 📜 Rewrite some functions, in particular request parsing
    • CORS preflight directly in the server, with additional config options
    • ⚠ Solve some warnings from different static source code analysis tools
    • Collect server status data
    • 👍 Allow hostname in listening_ports
    • 🔧 Make maximum request size configurable
    • 👍 Allow multiple Sec-Websocket-Protocol
    • ➕ Add configuration option to send additional headers
    • ➕ Add configuration option for Strict-Transport-Security
    • Mark "file in memory" feature is a candidate for deletion
    • 👌 Improve examples
    • 🛠 Fix timeout error when sending larger files
    • Add mg_send_chunk interface function
    • 👍 Allow to separate server private key and certificate chain in two different files
    • 👌 Support for multipart requests without quotes (for some C# clients)
    • Initialize SSL in mg_init_library, so https client functions can be used when no server is running
    • 👍 Allow "REPORT" HTTP method for REST calls to scripts
    • 👍 Allow to compile civetweb.c wih a C++ compiler
    • 🚚 Lua: Remove internal length limits of encode/decode functions
    • 👍 Allow sub-resources of index script files
    • Add config parameter allow_index_script_resource the aforementioned feature
    • ✂ Remove deprecated "uri" member of the request from the interface
    • 👌 Improve documentation
    • 🔧 Make auth domain check optional (configuration)
    • ⚡️ Update unit test framework to check 0.11.0 (C89/C90 compilers still need a patched version)
    • Limit depth of mg.include for Lua server pages
    • ➕ Additional unit tests
    • 👍 OpenSSL 1.1 support
    • ⚡️ Update version number
  • v1.9.1 Changes

    January 04, 2017

    Bug fix version

    🔄 Changes

    • 🛠 Fix for connections closed prematurely
    • ⚡️ Update to a new check unit test framework and remove patches required for previous version
    • ➕ Add "open website" button for pre-built Windows binaries (so end users can easily check for new versions)
    • ⚡️ Update version number
  • v1.9 Changes

    December 30, 2016

    🔋 Features

    🏁 Read SSI client certificate information, improve windows usability, use non-blocking sockets, bug fixes

    🔄 Changes

    • ➕ Add library init/exit functions (call is now optional, but will be required in V1.10)
    • 🏁 Windows: Show system information from the tray icon
    • 🏁 Windows: Bring overlaid windows to top from the tray icon
    • ➕ Add Lua background script, running independent from server state
    • 🚚 Move obsolete examples into separated directory
    • 🔄 Change name of CMake generated C++ library to civetweb-cpp
    • ➕ Add option to set linger timeout
    • ⚡️ Update Duktape and Lua (third-party code)
    • ➕ Add continuous integration tests
    • ➕ Add API documentation
    • Limit recursions in .htpasswd files
    • 🛠 Fix SCRIPT_NAME for CGI directory index files (index.php)
    • 👉 Use non-blocking sockets
    • stdint.h is now required and no longer optional
    • Rewrite connection close handling
    • Rewrite mg_fopen/mg_stat
    • ✨ Enhanced tray icon menu for Windows
    • ➕ Add subprotocol management for websocket connections
    • ⏱ Partially rewrite timeout handling
    • Add option keep_alive_timeout_ms
    • 👌 Improve support for absolute URIs
    • 👍 Allow some additional compiler checks (higher warning level)
    • ➕ Add option for case sensitive file names for Windows
    • Short notation for listening_ports option when using IPv4 and IPv6 ports
    • 🐧 Make usage of Linux sendfile configurable
    • ⚡️ Optimize build matrix for Travis CI
    • Retry failing TLS/HTTPS read/write operations
    • Read client certificate information
    • Do not tolerate URIs with invalid characters
    • Fix mg_get_cookie to ignore sub-strings
    • 🛠 Fix memory leak in form handling
    • 🛠 Fix bug in timer logic (for Lua Websockets)
    • ⚡️ Updated version number
  • v1.8 Changes

    May 27, 2016

    🔋 Features

    ⚡️ CMake integration, new unit tests based on the check framework, continuous integration with Travis CI and AppVeyor, code analysis with Coverity, some additional API functions, bug fixes and updates

    🔄 Changes

    • Replace mg_upload by mg_handle_form_request
    • CGI-scripts must receive EOF if all POST data is read
    • ➕ Add API function to handle all kinds of HTML form data
    • 🏁 Do not allow short file names in Windows
    • Callback when a new thread is initialized
    • 👌 Support for short lived certificates
    • ➕ Add NO_CACHING compile option
    • ⚡️ Update Visual Studio project files to VS2015; rename directory VS2012 to VS
    • Sec-Wesocket-Protocol must only return one protocol
    • ✅ Mark some examples and tests as obsolete
    • ✂ Remove no longer maintained test utils
    • Add some default MIME types and the mg_send_mime_file API function.
    • Client API using SSL certificates
    • Send "Cache-Control" headers
    • ➕ Add alternative to mg_upload
    • ➕ Additional configuration options
    • 🛠 Fix memory leaks
    • ➕ Add API function to check available features
    • ➕ Add new interface to get listening ports
    • ➕ Add websocket client interface and encode websocket data with a simple random number
    • 👌 Support SSL client certificates
    • ➕ Add configuration options for SSL client certificates
    • 💻 Stand-alone server: Add command line option -I to display information about the system
    • 🌲 Redirect stderr of CGI process to error log
    • Support absolute URI; split uri in mg_request_info to request_uri and local_uri
    • ♻️ Some source code refactoring, to improve maintainability
    • 🐧 Use recursive mutex for Linux
    • 👍 Allow CGI environment to grow dynamically
    • 👌 Support build for Lua 5.1 (including LuaJIT), Lua 5.2 and Lua 5.3
    • 👌 Improve examples and documentation
    • Build option CIVETWEB_SERVE_NO_FILES to disable serving static files
    • ➕ Add Server side JavaScript support (Duktape library)
    • Created a "civetweb" organization at GitHub.
    • 🚚 Repository moved from https://github.com/bel2125/civetweb to https://github.com/civetweb/civetweb
    • 👌 Improved continuous integration
    • 👷 CMake support, continuous integration with Travis CI and Appveyor
    • ✅ Adapt/port unit tests to CMake/Travis/Appveyor
    • 🐛 Bug fixes, including issues from static code analysis
    • ➕ Add status badges to the GitHub project main page
    • ⚡️ Updated version number
  • v1.7 Changes

    July 05, 2015

    🔋 Features

    ✨ Enhanced examples and documentation, additional API functions, some functions rewritten, bug fixes and updates

    🔄 Changes

    • Format source with clang_format
    • 🐧 Use function 'sendfile' for Linux
    • 🛠 Fix for CRAMFS in Linux
    • 🛠 Fix for file modification times in Windows
    • Use SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR for Windows
    • Rewrite push/pull functions
    • Allow to use Lua as shared objects (WITH_LUA_SHARED)
    • 🛠 Fixes for many warnings
    • URI specific callbacks and different timeouts for websockets
    • ➕ Add chunked transfer support
    • ⚡️ Update LuaFileSystem
    • ⚡️ Update Lua to 5.2.4
    • 🛠 Fix build for MinGW-x64, TDM-GCC and clang
    • ⚡️ Update SQLite to 3.8.10.2
    • Fix CGI variables SCRIPT_NAME and PATH_TRANSLATED
    • 👉 Set TCP_USER_TIMEOUT to deal faster with broken connections
    • ➕ Add a Lua form handling example
    • Return more differentiated HTTP error codes
    • ➕ Add log_access callback
    • Rewrite and comment request handling function
    • Specify in detail and document return values of callback functions
    • Set names for all threads (unless NO_THREAD_NAME is defined)
    • 🆕 New API functions for TCP/HTTP clients
    • 🛠 Fix upload of huge files
    • 👍 Allow multiple SSL instances within one application
    • 👌 Improve API and user documentation
    • 👍 Allow to choose between static and dynamic Lua library
    • 👌 Improve unit test
    • 👉 Use temporary file name for partially uploaded files
    • ➕ Additional API functions exported to C++
    • ➕ Add a websocket client example
    • ➕ Add a websocket client API
    • ⚡️ Update websocket example
    • 👉 Make content length available in request_info
    • 🆕 New API functions: access context, callback for create/delete, access user data
    • ⬆️ Upgraded Lua from 5.2.2 to 5.2.3 and finally 5.2.4
    • ↔ Integrate LuaXML (for testing purposes)
    • 🛠 Fix compiler warnings
    • ⚡️ Updated version number
  • v1.6 Changes

    June 27, 2014

    🔋 Features

    ✨ Enhance Lua support, configuration dialog for windows, new examples, bug fixes and updates

    🔄 Changes

    • ➕ Add examples of Lua pages, scripts and websockets to the test directory
    • ➕ Add dialog to change htpasswd files for the Windows standalone server
    • 🛠 Fix compiler warnings and warnings from static code analysis
    • ➕ Add new unit tests
    • 👌 Support includes in htpasswd files
    • ➕ Add a basic option check for the standalone executable
    • 👌 Support user defined error pages
    • Method to get POST request parameters via C++ interface
    • 🐧 Re-Add unit tests for Linux and Windows
    • 👍 Allow to specify title and tray icon for the Windows standalone server
    • 🛠 Fix minor memory leaks
    • Redirect all memory allocation/deallocation through mg functions which may be overwritten
    • 👌 Support Cross-Origin Resource Sharing (CORS) for static files and scripts
    • Win32: Replace dll.def file by export macros in civetweb.h
    • Base64 encode and decode functions for Lua
    • 👌 Support pre-loaded files for the Lua environment
    • Server should check the nonce for http digest access authentication
    • 🏁 Hide read-only flag in file dialogs opened by the Edit Settings dialog for the Windows executable
    • ➕ Add all functions to dll.def, that are in the header
    • Added Lua extensions: send_file, get_var, get_mime_type, get_cookie, url_decode, url_encode
    • mg_set_request_handler() mod to use pattern
    • 🏁 Solved, tested and documented SSL support for Windows
    • 🛠 Fixed: select for Linux needs the nfds parameter set correctly
    • ➕ Add methods for returning the ports civetweb is listening on
    • 🛠 Fixes for Lua Server Pages, as described within the google groups thread
    • ➕ Added support for plain Lua Scripts, and an example script
    • A completely new, and more illustrative websocket example for C
    • Websocket for Lua
    • An optional websocket_root directory, including URL rewriting
    • ⚡️ Update of SQLite3 to 3.8.1.
    • ➕ Add "date" header field to replies, according to the requirements of RFC 2616 (the HTTP standard), Section 14.18
    • 🛠 Fix websocket long pull
    • 📚 Updated API documentation
    • 🛠 Fixed Posix locking functions for Windows
    • ⚡️ Updated version number
  • v1.5

    October 13, 2013