Skip to content

Releases: drogonframework/drogon

v1.8.0

31 Aug 16:58
574a60f
Compare
Choose a tag to compare

API changes list

  • Add ‘not like‘ criteria.

  • Add HttpResponse::newStreamResponse().

  • Add the same site option for session cookie.

  • Add support for custom SQL query.

Changed

  • Update issue templates.

  • Enable automatic reconnect in mysql.

  • Add typename for clang-14.

  • A workaround for redis sync exec.

  • Resolve redis server hostname from config file.

  • Add username option to redis databases.

  • Return nullptr if a plugin is not loaded when getting it.

  • Support controller registration in plugin.

  • Check mysql-optionsv support in cmake.

  • Check if host header is set before setting.

  • Clear all database connections before quitting.

  • Add namespace to views when using drogon_ctl.

  • Support pipeline mode on PostgreSQL 14+.

  • Add content type to multipart file upload.

  • Make orm::Result compatible with C++ STL container concepts.

  • Throw exceptions instead of exiting when loading configuration fails.

  • Rename BUILD_TRANTOR_SHARED to BUILD_SHARED_LIBS.

  • Support compressed request.

  • Prevent sending multiple responses for a single request.

  • Remove the virtual specifier from functions marked with override.

  • Remove redundancies from the CMake action.

  • Ensure requiring a semi-colon after macros.

  • Omit redundant virtual specifiers.

  • Refactor orm::SqlBinder.

  • Implement toJson to convert std::vector to Json::Value.

  • Resolve real ip from HttpRequest.

  • Delete the unmaintained test script.

  • Change the listener port of the cookie test.

  • Use a raw string literal for the drogon banner.

  • Change timeout of pipeline test for the CI environment.

  • Accept "postgres" for DbClient type as well.

  • Log remote real address in AccessLogger.

  • Support coroutine filter.

  • Refactor db_test.cc.

  • Use nullopt instead of the no-argument constructor.

  • Set the running flag to false after calling the quit() method.

  • Fix doc link in README files.

Fixed

  • Fix XXXControllers created on MSVC even if specified not to do so.

  • To avoid accessing a null point, make sure result == OK before accessing the response ptr.

  • Fix a bug when stopping redis service.

  • Fix mutex lock missing.

  • Fix tolower with cfi sanitizer.

  • Add move constructor to fix clang-14 compile error.

  • Fix HttpClient dns cache.

  • Fix bug when resolving redis server hostname.

  • Reset timer afters relaunching on Linux.

  • Fix some configuration file issues.

  • Fix HttpFile unittest error on Windows.

  • Fix core dump causing by logging in destructor.

  • Fixing link error when linking with static c-ares.

  • Remove redundant resource release.

  • Install missing header file apply.h.

  • Fix deleteFutureByPrimaryKey compile fail.

  • Fix compilation failure without database support.

  • Fix Mapper::updateBy() async api.

  • Fix no BUILD_CTL with tests.

  • Fix some bugs in RedisClient.

  • Fix a misuse of std::move.

  • Fix a bug when creating models with composite keys in sqlite3.

  • Fix a bug when converting the content-length string to size_t.

  • Fix a bug when parsing multipart/form-data.

  • Export the getVersion method for Windows.

  • Add a pre-compilation macro in the pg pipeline test code.

v1.7.5

19 Feb 10:44
Compare
Choose a tag to compare

API changes list

  • Add toString for drogon::ReqResult.

  • Add max-age, samesite options to Cookie.

  • Enable setup output of logs to files at any time.

Changed

  • Use operator<< to convert ReqResult to string.

  • Remove sudo from build.sh.

  • Remove sudo from dependencies in Dockerfile.

  • Avoid attempt linking to std::fs when target does not exist.

  • Destroy fastdb client on quit.

  • Check HTTP client is not sending requests in sync mode on the same event loop.

  • Start listening after beginning advices.

  • Allow using json_cpp in other sublibraries.

  • Accept system lib for uuid on macOS.

  • Add Not In to ORM Criteria.

Fixed

  • Fix WS test potentially can get stuck.

  • Fix a bug in model generation.

  • Prevent malformed upload path causing arbitrary write.

  • Fix missing "using namespace drogon::orm;" at autogenerated restful controllers.

v1.7.4

11 Dec 02:30
Compare
Choose a tag to compare

API Change List

  • Support setting client certificate and SSL options on HTTP client

  • Add more method for mapper

  • Add overloads for SqlBinder::operator<< with non-const ref parameter

Changes

  • Use decay_t instead of remove_cvref_t

  • Prevent drogon_ctl create_view appending empty new lines to resulting

  • Add an example for using coroutines of redis clients

  • Export some symbols for Windows

  • Mark all awaiters as nodiscard

  • Handle SIGINT too

  • Support CoroMapper method chaining

  • Remove setting c++17 in FindFilesystem

Fixed

  • Fix Drogon not building caused by FindFilesystem

  • Fix deprecated warning when using openssl 3

  • Fix coroutine object destructing before coroutine ends in async_run

  • Fix build fail on CentOS8

  • Fix some compiler warnings

  • Fix the error with multiple results when calling a procedure in mysql

  • Fix an error when binding a function pointer to SqlBinder

  • Fix orm tests

  • Fix CI to actually build in C++14

  • Fix a race condition when resetting ws

  • Fix an error of std::bad_function_call

  • Update Trantor (fix sending partial files)

v1.7.3

17 Oct 03:52
Compare
Choose a tag to compare

API Change List

  • Support sending files by range

  • Allow outside access to the file path of an HTTP response

  • Support custom MIME types and extensions

  • Add the getOptionalParameter method

  • Add async_run

Changes

  • Experimental HaikuOS Support

  • Improve AccessLogger

  • Add Alpine Dockerfile

  • Add option to disable brotli if desired by the builder

Fixed

  • Fix a bug in the getIOLoop method

  • Return on redis connection errors

  • Fix(MutliPart): Does not respect quotes in Content-Disposition header

  • Fix(cmake): error in FindFilesystem

  • Fix(style): Change the NotFound page text color

  • Fix a race condition in testing

v1.7.2

24 Aug 13:13
Compare
Choose a tag to compare

@an-tao Is busy so I'm making the release in place of him.

API Change List

  • Add port() and host() to HttpClient

  • Add stop() method to the WebSocketClient class

Changes

  • Enables higher level of warnings when building on UNIX with GCC

  • Generic optimizations

  • Add redis example

  • Added support for paths containing unicode characters on Windows

  • Load ParseAndAddDrogonTests in DrogonConfig

  • Add BUILD_DOC to cmake options

  • Add websocket server example

  • CMake: Add CPack for .deb and .rpm package generation

  • cmake: Use GNUInstallDirs to figure out install dirs.

Fixed

  • Fix WS client example not working with integration_test

  • Fix WS client example error when encountering bad IP addresses

  • CacheFile supports >2GB files on 64-bit Windows

  • drogon_ctl now emits error on failing to create view from CSP

  • Added the make program to Ubuntu docker environment

  • Correctly check the case-insensitive value of the upgrade header of responses in websocket connections

  • Fix incorrect MD5 hash when using internal MD5 implementation when input size == block size+1

  • Fix test success message incorrectly shown for a failed test when -s is flag present

  • Force using boost::filesystem when building for Android

  • Escape connection string in drogon_ctl create model

  • Fix some memory leak and race conditions in WebSocketClient

v1.7.1

24 Jun 06:50
Compare
Choose a tag to compare

Changes

  • Updated Dockerfile to Ubuntu 20.04 & Fixed Timezone Hangup.

  • Add jsonstore example.

  • Fix some typos.

Fixed

  • Fix single layer directory traversal in StaticFileRouter.

v1.7.0

18 Jun 08:08
Compare
Choose a tag to compare

API changes list

  • Add the PreSendingAdvice to AOP.

  • Make Json::Value as a SQL parameters type.

  • Add the int type for the Row index parameter.

  • Add SSL_CONF_cmd support.

  • Add the setCustomStatusCode method.

Changes

  • Fix sync_wait/co_future use-after-free.

  • Add the AccessLogger plugin.

  • Make AsyncTask only destruct when the coroutine reaches end of executions.

  • Add Drogon test framework.

  • Improve WebSocket mask handling.

  • Add minimal server side examples.

  • Optimize HttpControllersRouter for cases where regex is not needed.

  • Create controller instances after running instead of after being called.

Fixed

  • Move resolverPtr when destroying an HttpClientImpl object.

  • Modify the way to create sqlite3 client.

  • Fix a bug when a network failure occurs on Redis connections.

  • Fix a bug of string_view for MSVC.

  • Fix 'build.sh -tshared'.

  • Fix compiler warnings.

  • Fix CacheMap crash in CI tests.

v1.6.0

15 May 10:15
Compare
Choose a tag to compare

API changes list

  • Add option to set default handler.

  • Add the setTimeout() method to the DbClient class and the RedisClient class.

  • Add the validateCert parameter to the newWebSocketClient method.

Changed

  • A few mini changes to drogon_ctl command.

  • Improve the MultiPartParser class.

  • Add GNU -Werror & fix warnings.

  • Enhancements on files part.

  • Add version/soversion to shared library.

  • Disallow coroutines to be resolved as plain subroutine handlers.

  • Send the content-length header even if the body(POST,PUT,OPTIONS,PATCH) is empty.

  • Use make_exception_ptr instead of throw/catch when possible.

  • Remove duplicated inclusion.

  • Print error before terminating in AsyncTask.

  • Allow users to override drogon Find modules.

  • Use two-phase construction for the DbClientImpl and the RedisClientImpl.

  • Add support 'select ' for redis.

Fixed

  • Fix a bug of the Transaction class.

  • Copy CoroMapper.h to installation location.

  • Remove the related request from the buffer if it's not sent after the timeout.

  • Fix ORM with SQLite3 not compiling on Arch Linux.

  • Fix an error when constructing RedisClientImpl objects.

  • Fix coroutine frame leak upon assigning to awaitable.

  • Set running flag to true before installing plugins.

  • Fix double free in coroutine exception handling.

v1.5.1

10 Apr 12:31
Compare
Choose a tag to compare

Fixed

  • Fix a bug of reflection failure.

v1.5.0

10 Apr 01:40
Compare
Choose a tag to compare

API changes list

  • Add option to disable signal handling.

  • Added newFileResponse Support for buffers in memory.

  • Add a method to HttpRequest to set the user_agent header.

  • Catch exceptions thrown by handlers.

Changed

  • Add convert method to models.

  • Add Arch Dockerfile.

  • Add Redis support.

  • Print error and exit when IP parsing failed in server startup.

  • Use a canonical way of calling max() function on Windows.

  • Remove an assertion statement in the HttpClientImpl class.

  • Send ping messages by default for WebSockets.

  • Use canonical cmake logic for cross-compilation.

  • set make job count to the number of threads in GitHub Actions workflow.

  • Use lambda instead of std::bind in HttpServer.

  • Add exports macro to allow Shared Library with hidden symbols by default.

  • Remove repeated class names on relationships from the model generator.

Fixed

  • Fix compile warnings in SQL client.

  • Fix compilation errors for the TimeFilter example.

  • Fix build.sh missing nproc error in build for macOS.

  • Fix a bug when creating sqlite3 models.

  • Fix two building corner cases, CMake quality of life improvements.

  • Add CoroMapper to models' friends.