Releases: JadeMatrix/SHOW
Releases · JadeMatrix/SHOW
v0.8.6 — alpha
Changes in this version:
- CMake
- Added modern CMake configuration & package installation
- Fixed UnitTest++ package detection
- Include CTest explicitly and use its
BUILD_TESTING
option - Use GNUInstallDirs to set up where to install stuff
- Added documentation build configuration
- Improved unit tests build configuration, splitting them up into individual executables so they work better with CTest
- Removed reference to in-source build in examples README
- Tweaked some documentation
- Improved base64 decoding & added option to ignore incorrect padding
- Removed .gitignore as out-of-source builds are preferred
- Sphinx doc generation now pulls SHOW version from "show.hpp"
- Made the
show::connection::xsgetn()
implementation possibly more efficient
v0.8.5 — alpha
Changes in this version:
- Fixed SHOW not building on strict C++11-compliant compilers
- Fixed "show/multipart.hpp" not compiling under GCC 4.8.5
- Added project version to CMakeLists.txt
- Added use of the "Content-Disposition" header to fileserve example
- Added a unit test revealing a memory error for moved connections
- Fixed a memory error when cleaning up moved connections
- Updated multithreaded server example to use a moved connection instead of a
std::unique_ptr<connection>
- Switched connection buffers from raw
char*
tostd::unique_ptr<std::array<char,N>>
for automatic memory management - Updated some phrasing in the docs/README
v0.8.4 — alpha
Changes in this version:
- Added multipart content parsing utility in
show/multipart.hpp
- Added example program demonstrating multipart parsing utilities
- Added a header file of useful constants in
show/constants.hpp
- Fixed a typo in the documentation: _ → -
- Clarified in the documentation that
show:connection_interrupted
does not inherit fromstd::exception
- Marshalled header names are now normalized to standard Upper-Dashed-Case
- Style — general code cleanup, mainly favoring curly-brace initialization in favor of "assignment" initialization
- Fixed a buffer overflow when getting the client's IP address
- Fixed a few typos that prevented the fileserver example from compiling under C++17 (
std::filesystem
version) - Fixed some incorrect unit tests
- Fixed some header parsing bugs that were revealed by correcting some false-positive unit tests
- Fixed
show::url_encode()
overzealously encoding numeric ASCII characters - Made some minor updates & corrections to documentation (brace-initializing, public inheritance)
- Split
run_checks_against_response()
test util into two functions - Added move construction/assignment support for core SHOW classes, along with associated unit tests
- Renamed CMake project to "SHOW Tests & Examples"
- Added CMake custom target for all examples
v0.8.3 — alpha
Changes in this version:
- Added unit tests based on UnitTest++
- Removed
noexcept
fromshow::base64_encode()
- Fixed
show::base64_decode
breaking on padded inputs - Moved base64 test constants to their own header file for reuse across multiple tests
- Fixed multi-line header parsing unit tests checking for the wrong header name; also added two more
- Fixed multi-line header parsing unit tests checking for incorrectly concatenated values
- Changed
std::shared_ptr
→std::unique_ptr
(typo) in multiple clients example - Fixed bitwise-or used instead of bitwise-and for ASCII lowercasing
- Reintroduced
show::response_marshall_error
to handle invalid headers passed toshow::response
's constructor - Fixed some edge cases parsing request paths
- Fixed multi-line headers being improperly parsed
- Fixed request parsing not failing on invalid "Content-Length" headers
- Fixed
show::url_decode()
not failing on some invalid encoded sequences - Various code style changes
v0.8.2 — alpha
Changes in this version:
- Fixed some broken links in the Sphinx documentation (MarkDown-style)
- Tweaked README (";" → "—")
- Style — capitalized CMake function names
- Fixed mistaken labelling of the "any IP" address as the loopback address
- Style — removed redundant variable names in function declarations
- Fixed "show/base64.hpp" no longer compiling as
show::base64_decode_error
inherited from the now-missingshow::exception
v0.8.1 — alpha
Changes in this version:
- Fixed a bug where
connection::uflow()
(incrementing) was used instead ofconnection::underflow()
(non-incrementing), causingrequest
to not act as a well-formedstd::streambuf
- Replaced the last few comparisons with
traits_type::eof()
to usetraits_type::not_eof()
, which is more correct - Reworded a bit of the tutorial to be more friendly
- Decreased required CMake version to 3.6, as that's the latest available in EPEL for CentOS
- Made return type of
request::connection()
namespace-explicit as it made GCC choke - Revised examples to make them simpler and fix typos
- Added accessors to
connection
for the server address & port in addition to the ones for the client - Fixed the "hello world" example sometimes hanging on flushing the incoming request
v0.8.0 — alpha
Changes in this version:
- Moved base64 utilities to their own header file, as core SHOW has no dependencies on them
- Moved base64 utilities documentation
- Adjusted the API more in line with the standard library's style:
const&
members →const& ()
accessors,*_t
→*_type
- Improved exception handling in examples (
const
-correctness, etc.) - Added
request::flush()
for skipping unread request contents - Code formatting fixes
show::connection_timeout
andshow::client_disconnected
now inherit from a common parent classshow::connection_interrupted
to improve code complexity if the programmer doesn't care about the nature of the interruption- Added note that multiple responses are allowed under certain conditions in HTTP/1.1
- Tweaked wording & markup in base64 documentation
- Renamed
content_length_flag_type
to simplycontent_length_flag
, as it doesn't name a type alias - Tweaked const-correctness of accessors
- Updated docs for v0.8.0 accessor changes
- Tweaked introduction text in README & docs
- Added doc entry for
show::connection_interrupted
- Removed
show::exception
, and SHOW exceptions now inherit fromstd::runtime_error
instead - Changed the version information to be a namespace instead of an anonymous struct
- Constructor for
show::response
now takes aconnection&
instead of arequest&
- Cleaned up & rewrote parts of the README, and moved a relevant paragraph to the tutorial Sphinx doc
v0.7.3 — alpha
Changes in this version:
- Incremented version to 0.7.3
- Added Sphinx docs for show-cpp.readthedocs.io
request::content_length
was accidentally defined as a non-const
reference (as of right now this is a non-issue in v0.8.0)- Removed
noexcept
specifiers as they're not as useful as I originally thought - Fixed
request::request(connection&)
sometimes throwingurl_decode_error
(#12) - Removed unused exception type
response_marshall_error
- Moved the tutorial from the README to the tutorial doc
- Style: removed some unneeded argument names in function declarations
- Reworded the first paragraph of the README
v0.7.2 — alpha
Changes in this version:
- Fixed duplicate symbol errors for base64 character set constants
v0.7.1 — alpha
Changes in this version:
- Fixed multi-threaded example because I misunderstood the semantics of
std::thread::joinable()
- Improved some wording in the README
- Added
inline
keyword to function implementations to improve usability in more complex projects