Commit Graph

647 Commits

Author SHA1 Message Date
Martin Chang
4ca90f2415
Don't send content type in a 304 response (#630) 2020-11-18 22:31:55 +08:00
An Tao
4ce2d25d55
Return 400 if the content-length is invalid (#629) 2020-11-18 15:09:25 +08:00
Joakim L. Gilje
886dfc3648
Support OpenBSD (#626)
Co-authored-by: an-tao <antao2002@gmail.com>
2020-11-15 12:18:01 +08:00
An Tao
4f9ee82153
Modify the WebSocketTest controller to create a simple chat room (#625) 2020-11-14 11:48:40 +08:00
An Tao
7e8beacd1d
Fix error when receiving response without content-length header (#623) 2020-11-11 21:50:43 +08:00
An Tao
dbf21f7dbc
Fix a bug when creating sqlite3 database models (#618) 2020-10-27 21:26:01 +08:00
An Tao
de37a0ae29
Add the Host and Sec-WebSocket-Version headers when connecting to a websocket server (#615) 2020-10-25 08:36:40 +08:00
An Tao
43e7b3fec0
Add --path-to-namespace option to drogon_ctl for creating views (#607) 2020-10-12 21:51:39 +08:00
An Tao
34d2fe45c3
Modify the procedure of the app().run() method (#603) 2020-10-09 15:02:05 +08:00
VayuDev
de0d793fc7
Fix HttpServer::isWebSocket to detect lowercase "upgrade" connection value (#594)
* Fix HttpServer::isWebSocket to detect lowercase "upgrade" connection value

The websocket library boost-beast sends the following http header:
'Connection: upgrade', while almost anything else uses:
'Connection: Upgrade'. Drogon used to only recognize the latter as
websocket request, now it recognizes both.

* Fix HttpServer::isWebSocket to detect case-insenstive "websocket"
upgrade value

This was a bug as previously, we only accepted the exact string
"websocket", although the standard specifies that it should be
case-insensetive.

Co-authored-by: VayuDev <vayudev@protonmail.com>
2020-10-04 22:53:33 +08:00
An Tao
0fe3f6fd8f
Use explicit lambda capture lists (#590) 2020-10-02 11:45:07 +08:00
An Tao
465d2ebfe8
Disable TLS1.0/1.1 on HTTPS by default (#588) 2020-10-01 23:40:46 +08:00
L0ric0
6fca7067da
Add ConfigLoader::ConfigLoader(const Json::Value &data) (#579) 2020-09-18 21:12:46 +08:00
an-tao
c320527f9d Delete a confusing log output 2020-09-17 23:12:33 +08:00
Martin Chang
c4ff98e620
remove execution permission on /tmp/drogon.lock (#575) 2020-09-16 00:59:19 +08:00
An Tao
4c9463eeb7
Modify session handling (#568)
* Change thread unsafe interfaces to safe.

* Fix some compiler warnings
2020-09-15 08:28:04 +08:00
Jiannan Liu
6f7a062221
Suppress sanitizer warning (#572)
Add default initializer for HttpConstraint::method_ member variable to avoid the following warning given by gcc's undefined behavior sanitizer (-fsanitize=undefined):

drogon/lib/inc/drogon/utils/HttpConstraint.h:30:7: runtime error: load of value 32767, which is not a valid value for type 'HttpMethod'
2020-09-14 15:11:53 +08:00
An Tao
a32170b9a3
Modify the documentation of the method fileData() (#566) 2020-09-12 13:59:04 +08:00
An Tao
11cabfb546
Remove the useless method stat() from the PluginBase class (#563) 2020-09-10 08:45:23 +08:00
An Tao
e032f9bd0e
Add getListeners() method to the HttpAppFramework class (#559) 2020-09-07 00:51:07 +08:00
Martin Chang
3a00ffde47
Add support for status code 418 (#557) 2020-09-03 21:11:25 +08:00
An Tao
a10e6bfb1c
Modify methods related to headers (#552) 2020-08-26 20:28:19 +08:00
An Tao
7117d96016
Fix an issue of simple_reverse_proxy when handling chunked transfer-e… (#549)
* Fix an issue of simple_reverse_proxy when handling chunked transfer-encoding
2020-08-25 08:07:43 +08:00
An Tao
f1a7462c4c
Modify the Result class in orm (#541) 2020-08-16 20:00:14 +08:00
An Tao
c4d727cbe6
Fix compilation warning of sprintf function (#537) 2020-08-14 08:10:56 +08:00
An Tao
3a10db99c7
Set the response Access-Control-Allow-Headers header correctly for OPTIONS requests (#534) 2020-08-13 21:41:29 +08:00
An Tao
960309e615
Resolve an issue when sending big files (>=2gB) on Windows (#529) 2020-08-09 19:20:51 +08:00
An Tao
fda2719dd4
Fix the session bug introduced in PR #523 (#528) 2020-08-06 19:35:30 +08:00
An Tao
43a21ddc9c
Provide users with a method to change the session ID of a session (#523) 2020-08-03 19:18:47 +08:00
An Tao
820715cd62
Set session to requests for websockets (#521) 2020-07-31 09:25:20 +08:00
An Tao
34cefefce4
Modify parseContentType function (#518) 2020-07-25 10:01:06 +08:00
An Tao
5bd85170bf
Fix a bug when saving uploaded files on Windows (#514) 2020-07-17 13:18:52 +08:00
An Tao
c8640700ea
Add the getJsonError method (#507)
* Add the getJsonError method to the HttpRequest and the HttpResponse classes
2020-07-09 19:50:30 +08:00
An Tao
9d3efeac67
Optimize the HttpResponse class (#505) 2020-07-06 08:39:20 +08:00
An Tao
f871d1607d
Modify static files router and 404 pages generator (#497)
1.Except for the GET method, it is forbidden to use any other method for accessing static files.
2.Use following sequence to create 404 pages.
 * try to use user customized 404 handler;
 * try to use user customized error handler;
 * use default handler to create 404 pages;
2020-07-02 09:59:17 +08:00
An Tao
306c072af7
Add a timeout parameter when sending HTTP requests (#493) 2020-06-27 09:45:14 +08:00
An Tao
8f6269b208
Add a method to disable unicode escaping in json string (#491) 2020-06-24 08:11:32 +08:00
An Tao
ccd51d289e
Destroy DNS resolver of HttpClient in the correct thread (#490) 2020-06-22 19:55:24 +08:00
An Tao
3424d3f2c4
Add a way to set the character set when creating DbClient objects (#486) 2020-06-20 20:21:14 +08:00
An Tao
a9f4bff519
Properly handle chunked encoding requests. (#479) 2020-06-16 20:36:31 +08:00
itgenie98
2607f35687
Fix CORS for new HTTP PATCH method (#477)
* Fix CORS for new HTTP PATCH method, also fix HttpRequestImpl::appendToBuffer, to be able to send PATCH requests

* Fix simple_example_test to work with updated CORS
2020-06-15 10:05:05 +08:00
itgenie98
14b5ec08ee
Add HTTP PATCH method (#476) 2020-06-14 21:57:25 +08:00
An Tao
2457f9b413
Add a method for the TERM signal handling (#475) 2020-06-14 17:36:10 +08:00
An Tao
e7b7618c37
Use string_view to parse multipart/form-data requests (#469) 2020-06-10 11:11:24 +08:00
adrian
fd2a612945
add digest filter in examples (#462)
* add digest filter in examples

* Add getMd5() function to the public API

Co-authored-by: Adrián Ortiz Gutiérrez <aortiz@MacBook-Pro.local>
Co-authored-by: antao <antao2002@gmail.com>
2020-06-07 14:43:05 +08:00
ihmc3jn09hk
bbef8780fd
Fix a bug in ListenerManager::getIOLoop() (#461)
Co-authored-by: antao <antao2002@gmail.com>
2020-06-06 12:59:54 +08:00
An Tao
e015439740
Add a new joinpoint of AOP for modification on each HTTP response (#460) 2020-06-06 12:25:21 +08:00
An Tao
ecb3d3f74f
Make app().run() method callable on a non-main thread (#457) 2020-06-06 12:24:06 +08:00
VayuDev
d4d5adf88b
Added additional formats for getHttpDate function and fixed undefined behavior upon error (#453) (#456)
This patch adds support for the RFC 850 and asctime format. If an error
occurs, we now return a date with the epoch value of -1 and warn instead of
triggering undefined behavior. This is checked by a new set of tests.

Co-authored-by: VayuDev <vayudev@protonmail.com>
Co-authored-by: antao <antao2002@gmail.com>
2020-06-05 20:57:36 +08:00
An Tao
5faab6b414
Modify the WebSocketConnection class (#452)
* Add getContextRef method to the WebSocketConnection class

* Expose some functions on Windows

* Send a close message when closing a web socket connection
2020-06-04 19:11:07 +08:00