Commit graph

67 commits

Author SHA1 Message Date
eidheim
5a7c021dab Added MSVC support to cmake files (not tested, but hopefully it works). Some tests are disabled due to lacking MSVC options. 2017-11-14 19:44:40 +01:00
eidheim
2860f76139 HttpHeader::FieldValue::SemicolonSeparated renamed to HttpHeader::FieldValue::SemicolonSeparatedAttributes, and cleanup of HttpHeader::FieldValue::SemicolonSeparatedAttributes::parse, attribute values are now also percent-decoded 2017-11-08 11:30:21 +01:00
eidheim
f55eb4af65 Changed ContentDisposition::parse to HttpHeader::FieldValue::SemicolonSeparated::parse. This function can now also parse Set-Cookie header field values 2017-11-07 22:15:06 +01:00
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