Commit Graph

1894 Commits

Author SHA1 Message Date
An Tao
ac0a1b873e
Fix a bug after removing content-length header in some responses (#2176) 2024-10-02 16:42:40 +08:00
Muhammad
912f1d803c
Optimize query params and allow for empty values (#2171) 2024-09-26 15:47:58 +08:00
An Tao
13d7148764
Remove websocketResponseTest from windows shared library env (#2170) 2024-09-25 20:16:40 +08:00
Chad Barth
b0c5331bc1
Remove content-length header from 101 Switching Protocols response (#2164) 2024-09-25 17:52:41 +08:00
Christopher T
c9f5754423
Add support for escaped identifiers in Postgresql (#2167) 2024-09-23 16:00:50 +08:00
an-tao
31fb18fb46 Update trantor 2024-09-20 16:22:09 +08:00
toge
f918ead0ae
include exception header for std::exception_ptr (#2159) 2024-09-19 10:11:04 +08:00
Muhammad
fee34095a2
Add Hodor whitelists (#2154) 2024-09-19 09:56:11 +08:00
Omar Mohamed Khallaf
2911a7c08a
Fix coroutine continuation handle (#2163)
Using coroutines directly by the user e.g. declaring a function with
drogon::Task<> return type, will have it's continuation set to nullptr.

Returning nullptr causes a segfault and it must be checked before
returning e.g. the snippet form https://en.cppreference.com/w/cpp/coroutine/noop_coroutine

```cpp
struct final_awaiter
{
    std::coroutine_handle<>
        await_suspend(std::coroutine_handle<promise_type> h) noexcept
    {
        // final_awaiter::await_suspend is called when the execution of the
        // current coroutine (referred to by 'h') is about to finish.
        // If the current coroutine was resumed by another coroutine via
        // co_await get_task(), a handle to that coroutine has been stored
        // as h.promise().previous. In that case, return the handle to resume
        // the previous coroutine.
        // Otherwise, return noop_coroutine(), whose resumption does nothing.

        if (auto previous = h.promise().previous; previous)
            return previous;
        else
            return std::noop_coroutine();
    }
};
```

This commit default initializes the continuation handle to no op coroutine and
avoids the check.

Signed-off-by: Omar Mohamed <mohamed.omar67492@gmail.com>
2024-09-19 09:52:51 +08:00
Muhammad
1b4653577f
Revert original path to its initial behavior (#2157) 2024-09-17 11:54:33 +08:00
Muhammad
bbcad71458
Add in-place base64 encode and decode (#2153) 2024-09-14 09:57:07 +08:00
Muhammad
beec858eba
Partially revert commit 93d8fb425d (#2156) 2024-09-13 17:34:23 +08:00
Muhammad
93d8fb425d
Fix forwarding with space in url by encoding (#2155) 2024-09-13 09:46:06 +08:00
antao
73406d1225 Bump version to 1.9.7 2024-09-10 23:12:02 +08:00
Ponder
6bafdf30fd
Feature: TcpServer hot reload SSL file (#2150) 2024-09-10 11:38:56 +08:00
元路
59919f33ef
Refine SQLite3 error types with new exception handling (#2145)
Signed-off-by: yuanlu <2573580691@qq.com>
2024-09-06 15:37:09 +08:00
an-tao
1326205483 Change a log level 2024-08-23 11:34:50 +08:00
Omar Mohamed Khallaf
80ec7d9211
Use correct libraries when compiling statically (#2136)
When compiling statically, cmake pulls shared libraries as dependencies
for drogon e.g. libpq.so instead of libpq.a. This causes linkage errors
when compiling the whole program.

The flag USE_STATIC_LIBS_ONLY should set the CMAKE_FIND_LIBRARY_SUFFIXES
to the appropriate suffix on different platforms, thus find_* commands
find the right library.
2024-08-22 15:46:47 +08:00
fantasy-peak
5b5d1906bf
Add requestsBufferSize function (#2124) 2024-08-14 11:15:33 +08:00
Muhammad
206ef0d881
Modernize cookies (#2112) 2024-08-08 22:23:28 +08:00
fantasy-peak
c46f149c2c
Add coroutine mutex (#2095) 2024-08-08 15:17:06 +08:00
Bohdan Tsehelnyk
0546032edc
change stoi to stoul (#2115) 2024-08-06 17:16:06 +08:00
Bohdan Tsehelnyk
f743cfd4d1
add quotes (#2116) 2024-08-06 17:15:01 +08:00
Muhammad
500d44faac
Allow MultiPartParser to be movable (#2107) 2024-07-23 11:52:52 +03:00
antao
e786907478 Bump version to 1.9.6 2024-07-20 23:35:17 +08:00
Nitromelon
5d4523a3a6
Support request stream (#2055) 2024-07-03 11:31:39 +08:00
fantasy-peak
dfacd1b454
Add setsockopt to HttpServer (#2086) 2024-07-02 10:04:56 +08:00
Chuck
85b918f9e9
Update README.md (#2080)
A few minor typos.
2024-06-21 10:04:11 +08:00
fantasy-peak
7b8d0085b1
Delay parsing json for HttpClient (#2077) 2024-06-20 00:09:08 +08:00
An Tao
f6913f6328 Add an example of prometheus (#2076) 2024-06-19 14:13:15 +08:00
Martin Chang
a2f759e4cd
Update trantor (#2074) 2024-06-17 18:59:57 +08:00
Nitromelon
ad2b7e13e1
Fix typo in yaml config. (#2069) 2024-06-15 10:27:51 +08:00
An Tao
b04dfd7f96
Fix some compilation warnings (#2066) 2024-06-13 17:11:03 +08:00
Muhammad
de5a4a5f57
Allow MultiPartParser to parse PATCH requests (#2062) 2024-06-09 18:46:57 +03:00
An Tao
8bdb9b2fa6
Bump version to 1.9.5 (#2057) 2024-06-08 20:31:23 +08:00
fantasy-peak
0a889e921d
Add registerMiddleware (#2052) 2024-06-04 17:05:52 +08:00
TYUTthelastone
9a96a20c6e
Add regex support for websocket controller (#1779) 2024-06-04 11:27:00 +08:00
Nitromelon
f37a1d036f
Fix pg client name; Add testcase. (#2043) 2024-05-29 00:23:43 +08:00
Nitromelon
c4c95918bf
Fix wrong parameter order. (#2040) 2024-05-27 19:10:05 +08:00
Martin Chang
6726df139d
fix codespell error (#2038) 2024-05-26 14:08:18 +08:00
Jonathan S. Fonseca
150735848d
Intention to present an alternative to improve the aforementioned method (#2034) 2024-05-25 21:30:01 +08:00
Nitromelon
155ae9ad65
Support postgresql connection options (#1972) 2024-05-23 14:03:28 +08:00
Nitromelon
306df8a8fb
Install gcc in ci. (#2028) 2024-05-22 14:48:12 +08:00
Nitromelon
82c46f13f8
Fix CI on windows (#2025) 2024-05-10 14:11:28 +08:00
an-tao
5f75222243 Add the conan badge to readme files 2024-05-10 10:59:32 +08:00
Nitromelon
5b7cefd32c Support per-method middlewares. (#2015) 2024-05-10 10:59:32 +08:00
Tanglong3bf
abbcf6023d
Fix an error in the yaml format config file (#2020)
There is an error in the `app.log.use_spdlog` item in the default
config file in the yaml format.
While fixing this error, other minor problems in the config files were
fixed.
For example, some spelling errors and missing items in yaml format.
At the same time, different config files are modified to store the same
content.
2024-05-07 14:00:15 +08:00
antao
b5cd748a12 Bump version to 1.9.4 2024-05-04 22:42:15 +08:00
Nitromelon
439ddd8dbe
Bypass clang thread_local error. (#2016) 2024-04-29 11:32:30 +08:00
Alexey Gerasimchuck
e79d5170b4
Implemented database reconnection loop (#2003) 2024-04-24 10:09:05 +08:00