Commit graph

64 commits

Author SHA1 Message Date
eidheim
0d8caeca15 Modernised all CMakeLists.txt files, and made it easier to use Simple-Web-Server as a sub-project 2017-11-07 11:45:17 +01:00
eidheim
6e0a1ec9e8 Fixes issue mentioned in #164: remote endpoint address and port was not correctly set. Request::remote_endpoint_address and Request::remote_endpoint_port are now functions instead of variables in order to reduce unnecessary instructions. 2017-11-05 18:48:21 +01:00
eidheim
9cf3dd68ab Removed unnecessary: return 0; 2017-09-26 09:39:20 +02:00
eidheim
69f945f686 Fixes #155: added max streambuf config items to limit large requests/responses if needed 2017-09-25 09:58:50 +02:00
eidheim
9b3c1a0b89 Applied clang-format to status_code_test.cpp 2017-09-08 14:58:55 +02:00
knowledge4igor
6f9b8b7248 Add tests for status codes 2017-09-08 14:58:55 +02:00
knowledge4igor
3ab6cd8a39 Change 'typedef' constructions to type aliases 2017-09-05 01:32:21 +03:00
eidheim
a3d70bbcb5 Fixed HttpHeader::parse signature, and added ContentDisposition::parse 2017-09-04 15:55:26 +02:00
eidheim
7dd2d2108a Added noexcept 2017-07-22 12:50:40 +02:00
eidheim
3ba494e0ac Minor comment cleanup 2017-07-21 12:54:17 +02:00
eidheim
e3789b6d4d ScopeRunner::stop now returns if count is already negative 2017-07-20 18:32:35 +02:00
eidheim
474fab90f3 Renamed ScopesContinue to ScopeRunner, and some related cleanup 2017-07-20 17:21:19 +02:00
eidheim
8f5a644a2a Minor addition to ScopesContinue test 2017-07-20 11:53:19 +02:00
eidheim
70e8c3104c Renamed ContinueScopes to ScopesContinue 2017-07-20 11:31:58 +02:00
eidheim
35f835a67b Cancel handlers feature: replaced readers-writer lock with a spinlock implementation 2017-07-20 10:04:05 +02:00
eidheim
b89f5635a5 Moved request and response message parsing to utility.hpp 2017-07-19 08:03:23 +02:00
eidheim
eeaf66cf2c Fixes #142: a new socket is created when a https connection is reconnected, since a second SSL handshake cannot be made on the same socket. Also now removing failed connections from the connections collection. 2017-07-15 08:45:06 +02:00
eidheim
c03e378e69 Comments addition and cleanup 2017-07-10 11:12:10 +02:00
eidheim
d8b8716a17 Session and Connection cleanup 2017-07-10 10:51:24 +02:00
eidheim
6c2c8d680b No longer stores pointer to Server/Client instance in Session objects. Some other cleanups as well. 2017-07-08 22:21:29 +02:00
eidheim
f3f527467f Now close connections when Server::stop is called 2017-07-08 11:47:05 +02:00
eidheim
490e33e2d1 Client::close renamed to Client::stop 2017-07-07 23:35:14 +02:00
eidheim
7d5599b8e5 Added Server::stop test 2017-07-07 22:23:39 +02:00
eidheim
06d3c701e1 Fixed io_test (out of stack?), also fixed concurrent sync requests count on request error. 2017-07-07 19:37:20 +02:00
eidheim
fd764d908c Synchronous client request calls is now safe to use concurrently 2017-07-07 17:16:53 +02:00
eidheim
9b5063f422 Replaced Server/Client::shared_from_this with asio callback checks if the Server/Client has been destroyed. Also added SharedMutex to utility.hpp. 2017-07-07 11:25:06 +02:00
eidheim
d9416c2566 Added Client::close, and Client::connections and Client::connections_mutex are no longer shared_ptrs 2017-07-04 23:25:30 +02:00
eidheim
68f1e8413a Reverted resource/response function parameter types shared_ptr& to shared_ptr. No real value added here, just more complicated code. Compiler might also optimise the now const lambda captures. 2017-07-04 12:04:07 +02:00
eidheim
0662cbdfb7 Added timeout to Server::Response::send, and some cleanup 2017-07-04 11:21:31 +02:00
eidheim
30f4f94a03 ServerBase now derives from and use std::enable_shared_from_this 2017-07-03 18:00:49 +02:00
eidheim
026f47f195 ClientBase now derives from and use std::enable_shared_from_this 2017-07-03 18:00:24 +02:00
eidheim
1992bbb4b4 Preparation for std::enable_shared_from_this: Server- and Client-constructors are no longer public, use ::create instead 2017-07-03 15:02:35 +02:00
eidheim
b3a1d48c0a Callback shared_ptr parameters are now shared_ptr& 2017-07-03 14:25:48 +02:00
eidheim
0c9cb000b4 Server::Request::path is split into path and query_string 2017-07-03 14:25:48 +02:00
eidheim
2d3062265d Added longer Base64 decode/encode test 2017-06-29 12:46:54 +02:00
eidheim
e50d2fc63a Added .clang-format file and applied style to source files 2017-06-26 15:23:29 +02:00
eidheim
98d9617244 Added QueryString class with create and parse functions to utility.hpp 2017-06-25 16:43:49 +02:00
eidheim
1d9e900f44 Added Percent::encode 2017-06-25 14:32:38 +02:00
eidheim
48d74a974a Server::Response::write convenience functions now always add Content-Length header field if it does not exists and if chunked transfer encoding is not used 2017-06-25 09:21:00 +02:00
eidheim
362c1a2591 Now closes unwanted client connections when a request is finished. Also added additional tests 2017-06-25 07:20:03 +02:00
eidheim
6b7fd993cf Added convenience function Client::Response::Content::string() 2017-06-22 22:00:59 +02:00
eidheim
4efdc095bd Added convenience write functions to Server::response 2017-06-22 21:46:01 +02:00
eidheim
ba4eec7ebe Created Utility.hpp and moved some code into this file. Also improved parse_query_string. 2017-06-22 12:08:56 +02:00
eidheim
1d34b7f3de Minor change in io_test.cpp 2017-06-19 12:37:50 +02:00
eidheim
e1aebba344 Fixes #114: added support for async client requests. Also includes some cleanup, support for parallel requests, and client reconnect 2017-06-17 11:52:13 +02:00
eidheim
111aeeb7fc Renamed case insensitive function and classes, and added test for case_insensitive_equal 2017-06-10 11:17:49 +02:00
eidheim
cc15aac704 Added tests for case_insensitive_equals and case_insensitive_hash 2017-06-07 19:28:21 +02:00
eidheim
ec63c4345e Cleanup of #127: using standalone asio. 2017-06-07 19:27:34 +02:00
eidheim
550bbfe9d7 Finished query string parsing implementation (PR #109) 2017-05-27 09:07:13 +02:00
eidheim
549bc646bb Case insensitive header cleanup. Also cleanup and additions to parse_test 2016-12-31 10:34:03 +01:00