Commit Graph

645 Commits

Author SHA1 Message Date
antao 0a990f4331 Make a patch to support the ossp UUID Library 2019-12-09 17:22:38 +08:00
An Tao 5bb54cd4cf
Fix a bug in compressing by zlib (#308) 2019-12-07 01:26:12 +08:00
An Tao 5c1c73d9b6
Add the SecureSSLRedirector plugin (#306) 2019-11-30 08:35:40 +08:00
An Tao 2784a91dcb
Handle gzip errors safely (#305) 2019-11-29 00:28:12 +08:00
An Tao 93c0d7e9da
Reset the flag used to parse json to false before recycling HttpRequest objects (#304) 2019-11-28 23:33:50 +08:00
Philip Woods 0fa61cded3 path is now explicitly set to '/' when setting JSESSIONID (#301) 2019-11-28 09:15:27 +08:00
An Tao 40ffb2d2af
Modify some code styles (#298) 2019-11-21 11:27:47 +08:00
An Tao d46a041cba
Modify the Cookie class (#296) 2019-11-15 10:26:21 +08:00
antao 944d1e786d Delete useless log output 2019-11-05 14:28:17 +08:00
Marwan Rabbâa fc8abadaeb fix(compilation on alpine): Replace non standard u_short alias (#292) 2019-11-03 23:32:37 +08:00
An Tao a71e37d86e
Modify some type names to meet the Google Style (#291) 2019-11-01 19:19:25 +08:00
An Tao dbf20200fc
Add the headers configuration option for static files (#290) 2019-10-31 15:47:12 +08:00
An Tao e7b6ba27bb
Make user can use a custom type parameter instead of the first parameter in handlers of HttpControllers (#284) 2019-10-19 14:27:34 +08:00
An Tao 3a3a5636e8
Add type conversion methods to the HttpRequest and HttpResponse classes (#283) 2019-10-18 22:26:20 +08:00
An Tao 228bac1cfb
Make user can use any string as a placeholder's name in routing patterns (#282) 2019-10-17 17:12:52 +08:00
An Tao d830c4f057
Fix some race conditions (#280)
* Fix a race condition of static files

* Fix a race condition of 404 pages
2019-10-17 09:23:14 +08:00
Daniel Mensinger ddc41f7907 Add option to disable setting the 404 status code (#277) 2019-10-11 21:54:01 +08:00
An Tao 8f5c757ce2
Modify the quit() method (#276) 2019-10-11 17:24:28 +08:00
An Tao df82728a45
Add interfaces for accessing content of attachments. (#274) 2019-10-08 15:46:48 +08:00
An Tao e8a6bdc245
Fix some race conditions (#270) 2019-10-04 14:17:48 +08:00
Daniel Mensinger 656bd2462b Do not use smart pointers in thread storage (#269) 2019-10-03 19:22:37 +08:00
An Tao d6e5c1959c
Modify some code of responses cache (#268) 2019-10-03 17:50:55 +08:00
An Tao 323bf0693a
Use the IOThreadStorage for responses caching and fast database clients storage (#267) 2019-10-03 10:17:54 +08:00
Daniel Mensinger daf72d3059 Ensure AutoInit can only be used with std::shared_ptr (#266) 2019-10-03 01:47:51 +08:00
Daniel Mensinger ffb8a9d0e4 Thread storage (#265) 2019-10-02 22:29:25 +08:00
An Tao f9d7f589a2
Add the getCurrentThreadIndex() method (#264) 2019-10-01 20:33:25 +08:00
An Tao 5605d7d351
Fix a error in setThreadNum method (#263) 2019-10-01 01:40:22 +08:00
An Tao 56b9a320b5
Fix a error in HttpClient (#262) 2019-10-01 00:58:30 +08:00
An Tao 70eda27427
Add the ability to create restful API controllers (#244)
* Add the ability to create restful API controllers

* Update the model.json template file

* Modify the 'create controller' command of the drogon_ctl

* access column values by column array indexes instead of column names when constructing an instance of a model class

* Fix a bug of mysql database

* Add some static SQL into models

* Add validations to models

* Add setToNull method to models

* Support 'where in' substatement

* Delay rendering from json to the response body. This allows users to modify the json object before sending a response.

* Add synchronous method to the HttpClient class
2019-09-30 21:34:30 +08:00
An Tao 2cdc060ed7
Add a setCustomContentTypeString() method to the HttpRequest class (#261) 2019-09-30 09:27:34 +08:00
Armstrong 1414704b44 add per request attribute store (#259) 2019-09-28 21:48:06 +08:00
An Tao eed9c06250
Fix some compilation warnings (#257) 2019-09-27 16:05:38 +08:00
Daniel Mensinger 795079531a cmake: use export namespace for Drogon::Drogon (#255)
* cmake: use ${PROJECT_NAME} instead of drogon everywere

* cmake: use export namespace instead of dummy library
2019-09-26 19:33:58 +08:00
Armstrong ae01eb5ded fix url decode (#256)
* urldecode: should always unescaped chars
2019-09-26 10:06:09 +08:00
An Tao 569f1677ce
Fix bug with parsing json (#253) 2019-09-23 18:14:58 +08:00
antao 543d1a8c80 Fix a bug when HTTP method is PUT 2019-09-16 13:01:40 +08:00
An Tao 9855fc9b4f
Fix bugs in HTTP view examples (#246) 2019-09-16 10:10:23 +08:00
An Tao fff40952a3
Modify the method to generate the 404 page (#240) 2019-09-11 15:14:40 +08:00
An Tao aaaba8aa97
Fix a bug of models (#239) 2019-09-10 15:14:57 +08:00
An Tao 5d3fda57a0
Remove ClassTraits.h (#235) 2019-09-07 21:00:51 +08:00
An Tao 195bc5299e
Add comments for doxygen (#233) 2019-09-06 23:10:36 +08:00
An Tao 473b1c86f0
Fix a bug in the HttpServer class (#232) 2019-09-03 15:03:12 +08:00
An Tao eb894396c7
Use find('x') instead of find(x) in a string search (#230) 2019-09-01 12:06:19 +08:00
An Tao aa26e9a903
Modify the CMakeLists to modern cmake style (#229) 2019-08-31 08:27:57 +08:00
An Tao a0b68fb3c9
Optimize request headers processing (#228) 2019-08-27 13:55:52 +08:00
An Tao 7186a74590
Add a WebSocket test (#227) 2019-08-26 17:53:02 +08:00
An Tao 9f330f310d
Add a synchronous join point for AOP (#226) 2019-08-26 09:00:20 +08:00
An Tao ba49a0e0e6
Update README (#225)
* Update README

* Update CMakeLists.txt
2019-08-24 22:44:37 +08:00
An Tao 043c484a64
Make the framework API support chained calls (#223) 2019-08-24 14:44:25 +08:00
An Tao c3cb70f415
Optimize performance (#222) 2019-08-24 13:12:04 +08:00
An Tao b5a142a10e
Fix bugs in default return values of functions (#220) 2019-08-22 22:23:50 +08:00
An Tao f940b6f2cd
Modify some stuff (#216) 2019-08-17 20:05:32 +08:00
An Tao a6e2d4f007
Modify the drogon_ctl (#213) 2019-08-16 13:11:21 +08:00
An Tao da285cd4d2
Reduce dependencies between declarations (#212) 2019-08-15 20:59:16 +08:00
An Tao 673d74191e
Optimize DNS in HttpClient and WebSocketClient (#211) 2019-08-14 04:03:29 +08:00
An Tao a0f5570f8b
Modify HttpClient and WebSocketClient (#210) 2019-08-13 17:32:52 +08:00
An Tao 982e272703
Modify HttpClient and WebSocketClient, using the asynchronous DNS method (#209) 2019-08-13 10:35:01 +08:00
An Tao c705990fe5
Add the DrogonConfig.cmake (#207)
Add DrogonConfig.cmake so that users can use drogon with the `find_package(Drogon)` command.
2019-08-08 15:17:09 +08:00
An Tao 60ecbb945e
Optimizations (#206) 2019-08-03 01:59:54 +08:00
An Tao e566d9c451
Support PostgreSQL batch mode (#203) 2019-08-01 13:01:54 +08:00
An Tao ba7d788184
Add options for 'Server' header and 'Date' header (#202) 2019-07-31 19:44:32 +08:00
antao 40087fba9c Remove config.h
Modify the CMakeLists.txt

Remove the USE_ORM macro

Update trantor

Remove some std::dynamic_pointer_cast calls
2019-07-29 14:53:41 +08:00
VayuDev c8a22127d5 Added missing wasm ContentType (#198) 2019-07-27 00:42:19 +08:00
An Tao 986ef8dda7
Optimize pipelining (#197)
* Optimize pipelining

* Optimize the DbClientLockFree class
2019-07-25 16:30:42 +08:00
An Tao 33577b9666
Format some files for good code style (#196) 2019-07-16 20:00:20 +08:00
An Tao 9af87bb1c0
Add some managers to reduce the size of the HttpAppFrameworkImpl code (#194) 2019-07-12 16:47:21 +08:00
An Tao 6e8c718a52
Modify some comments in simple_example (#193) 2019-07-11 19:39:23 +08:00
antao 7d7537b562 Make all listeners share IO threads in the MacOS system 2019-07-09 17:23:06 +08:00
antao 7b31671576 Add the setContentTypeCodeAndCustomString() method to the HttpResponse class 2019-07-09 09:37:04 +08:00
antao bcac1d4899 Make the number of the connections of Fast DB Clients configurable 2019-07-08 18:21:18 +08:00
antao 47c6bc20f4 Optimize the htmlTranslate method 2019-07-08 13:49:01 +08:00
antao 07c0f7571b Modify the handling of CORS 2019-07-04 19:51:28 +08:00
moneroexamples 5618fdaee8 uses default constructor of string_view to reset _statusMessage 2019-06-29 19:20:42 +08:00
antao 65173e7e97 Update trantor 2019-06-27 15:37:41 +08:00
antao eafe88cef1 Modify the parser of HTTP requests 2019-06-27 12:51:32 +08:00
antao a84b559ae9 Add some comments to the WebSocketConnection class 2019-06-18 17:00:03 +08:00
antao bcc46e12ea Fix a bug of the IsPlugin class 2019-06-17 14:36:42 +08:00
antao ad2a27e849 Add stress testing command to drogon_ctl 2019-06-14 09:04:59 +08:00
an-tao 7c518594d0 Add setBody methods to the HttpRequest class 2019-06-11 21:48:16 +08:00
antao 9f779f2636 Update CacheFile class to adapt linux 2019-06-06 16:51:12 +08:00
antao e714ae875e Use a temporary file instead of memory to store a large Http body recieved by drogon 2019-06-06 14:59:49 +08:00
antao cdcddc8ddb Modify containers of AOP 2019-06-05 09:28:39 +08:00
antao 335f852aab Add some necessary headers in preflight responses for CORS 2019-06-01 07:11:47 +08:00
antao 01b1fb32d6 Add some new overload versions of the getHandlerArgumentValue() function 2019-05-31 16:44:19 +08:00
antao 92e64a79ec Fix a bug that occurs when a path argument contains spaces 2019-05-31 09:43:23 +08:00
antao 3452a2fa1c Modify some code to get a good style 2019-05-23 18:57:45 +08:00
antao fc7505122f Update the submodule trantor 2019-05-23 16:07:08 +08:00
antao c17591ef49 Make some inline functions out-line 2019-05-23 10:47:15 +08:00
antao a4c0e33782 Make the HttpClient class support cookies 2019-05-21 22:10:05 +08:00
antao bf7a612069 Add the StaticFileRouter class 2019-05-20 15:16:28 +08:00
antao 11b6d20a69 clang-format 2019-05-18 20:39:57 +08:00
antao e5fe92c67a Change the line length limit to 80 characters 2019-05-18 11:11:45 +08:00
antao be08aba9d1 Add .clang-format 2019-05-17 22:49:09 +08:00
antao bb0acd341f Modify the HttpRequestParser class to improve performance 2019-05-16 17:29:37 +08:00
antao 04a92f2b54 Remove unused InnerIpFilter.cc 2019-05-16 16:39:36 +08:00
antao 3e1886a84e Add the forward() method to the framework 2019-05-09 16:27:39 +08:00
antao e696553b3d Change the callback type in Filters and AOP Advices to the r-reference type 2019-05-09 13:57:33 +08:00
antao 00049c0d23 Change the type of the callback in HTTP request handlers to r-reference type 2019-05-09 11:25:25 +08:00
antao 66c6441c96 Return index.html to the client requesting '/' 2019-05-07 23:19:26 +08:00
antao c48f2ca118 Disable cookies on 404 pages 2019-05-07 22:08:05 +08:00
antao a85c64ac69 Add two configuration options: the client_max_body_size and the client_max_websocket_message_size 2019-05-07 14:04:37 +08:00
antao 0a27394cca Change version to 0.9.33 2019-05-05 15:43:17 +08:00
antao 2efa183b93 Implement gzip_static 2019-05-03 14:44:20 +08:00
antao e48692939c Modify some interfaces 2019-04-29 14:47:23 +08:00
antao 78ff8a1837 Add the content() method into the HttpRequest class 2019-04-28 18:14:39 +08:00
an-tao 87c51d1b53 Check whether the port is in use 2019-04-27 14:45:06 +08:00
antao 0b96089a0a Update the submodule trantor 2019-04-27 12:17:46 +08:00
antao 0e14406b31 Modify shared library loading 2019-04-26 13:43:59 +08:00
antao 4116888880 Handle demangle error 2019-04-26 11:02:20 +08:00
antao 8d1617d1a7 Update the submodule trantor 2019-04-24 18:04:32 +08:00
antao 189c537c29 Support host strings with IPv6 address in the HttpClient class 2019-04-24 16:48:03 +08:00
antao 32c14631fa Add the getHandlersInfo() method 2019-04-24 14:38:07 +08:00
antao 863084f26a Add a diagram for AOP join points 2019-04-22 16:11:28 +08:00
an-tao f6411812d5 Modify AOP 2019-04-18 23:18:13 +08:00
antao 1bc07c5197 Add support for AOP 2019-04-18 18:37:31 +08:00
antao e517f07685 Add some methods using std::chrono_literals 2019-04-14 14:02:37 +08:00
antao d5e8bd0b73 Add the OPTIONS method for CORS 2019-04-12 21:45:43 +08:00
antao 1e6a532ed3 Add the setCustom404Page() method 2019-04-09 11:03:16 +08:00
antao e87c9a75f6 Modify the implementation of WebSocket 2019-04-08 16:37:24 +08:00
antao 6af398ff5a Add FastDbClient instances into the main event loop 2019-04-07 13:49:35 +08:00
antao 3a587ab90b Modify the pipeling test 2019-04-07 12:15:02 +08:00
antao b96eb04859 Add WebSocket client support 2019-04-07 00:46:22 +08:00
antao 66c518949d Make WebSocket suitable for Firefox browser 2019-04-05 13:33:02 +08:00
antao d2bb1c10a7 Fix a websocket issue in Linux 2019-04-05 11:36:04 +08:00
antao 62fad73bc9 Enhance HttpClient to support pipelining 2019-04-05 01:50:29 +08:00
an-tao e128a27c58 Modifying URL encoding of HTTP requests 2019-04-03 00:17:30 +08:00
antao d216a663aa Modify the HttpController template to be able to specify absolute paths in HttpController 2019-03-31 19:32:16 +08:00
antao 737c9bba8b Provides a way for users to create and initialize controllers and filters with non-default constructors. 2019-03-30 23:09:22 +08:00
antao aad06fdc3a Add support for plugins 2019-03-29 15:34:14 +08:00
antao 65c101bee0 Add the getLoop() method to the HttpAppFramework class 2019-03-26 10:45:39 +08:00
antao d12b49cab0 Remove the loop() interface 2019-03-25 20:32:35 +08:00
antao 66456eae1a 1. Add the getCustomCOnfig() method.
2. Add some comments.
2019-03-25 17:44:22 +08:00
antao 894b634b22 Adjust the execution order inside the run() method
Modify the configuration of fast database clients
Modify the ConfigLoader class
2019-03-23 11:26:21 +08:00
antao db72840fc2 Move utility functions to the utils namespace 2019-03-21 17:47:45 +08:00
antao fecec81975 1.Remove an unnecessary null pointer check
2.Fix a compilation error for older g++
    3.Update README.md
2019-03-20 11:46:27 +08:00
antao 7ae533671c Add matchedPathPattern() interface in the HttpRequest class
Change version to 0.9.31
2019-03-18 10:44:38 +08:00
antao afdb7d26da Fix a compilation warning 2019-03-17 21:09:05 +08:00
antao db266d9aad Modify HttpRequestParser to handle invalid requests 2019-03-15 16:55:36 +08:00
antao 053c760d27 Rename the InnerIpFilter class 2019-03-14 11:25:12 +08:00
an-tao 0e447a1f9e Adapt ipv6 2019-03-13 23:44:53 +08:00
antao 250781ac08 Add configuration options that limit the number of keep-alive requests 2019-03-12 18:22:13 +08:00
antao aa539f85cd Modify some functions 2019-03-12 13:52:10 +08:00
antao 801cb8aa35 Modify some database classes 2019-03-07 11:56:20 +08:00
antao b39dd52a87 Modify some comments 2019-03-06 15:57:05 +08:00
antao 2e24d8c7f5 Optimize the 'setMethod' function in the HttpRequestImpl class 2019-03-06 12:51:29 +08:00
antao 1e1bcbf781 Remove unnecessary comparisons from regular expression matching and change version to 0.9.28 2019-03-05 11:19:10 +08:00
antao 7232536aee Delay parsing parameters untils needed 2019-03-05 11:08:14 +08:00
an-tao bbd840bd3b Modify the httpserver class to support processing multiple requests at once 2019-03-04 23:17:29 +08:00
antao 56ae5f459f Do some optimization 2019-03-02 12:25:08 +08:00
antao e0147fac8b Add an interface to set the 'Server' header field 2019-03-02 09:27:45 +08:00