Commit Graph

758 Commits

Author SHA1 Message Date
Vinnie Falco
d5cd3e829b Don't over-allocate in http::basic_fields 2019-07-01 12:49:03 -07:00
Damian Jarek
5f0939e771 Simplify websocket::detail::prng:
- Use a regular function pointer for dynamic dispatch.
- Remove `prng::ref` - it did not benefit the default case
  (TLS avaialable) and actually made the no-TLS case slower, because
  the time spent in the generator is dominated by mutex locking.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-07-01 12:49:01 -07:00
Damian Jarek
a7e932b13c
Remove redundant includes in websocket
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-07-01 19:43:43 +02:00
Damian Jarek
fea681b459
Deduplicate websocket::read_size_hint definition
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-25 04:21:52 +02:00
Damian Jarek
10b8f90749
Set version to 260
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-24 11:07:45 -07:00
Damian Jarek
9847fd6e69 Remove redundant includes in core
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-24 11:07:41 -07:00
Damian Jarek
7e8af58307 Move detail::base64 helpers to tests
These functions were only used in tests.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-24 11:07:41 -07:00
Damian Jarek
1635df0e11 Simplify generation of sec-websocket-key
The result of `g()` is a random number, therefore it's not necessary
to care about endianness in this case.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-24 11:07:41 -07:00
Damian Jarek
b8b04f8f39 Cleanup transitive includes in beast/core/detail/type_traits.hpp
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-24 11:07:41 -07:00
Damian Jarek
153408eb5b
More split compilation in websocket/detail/mask.hpp
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-23 16:58:15 +02:00
Damian Jarek
1a720c8354
Qualify calls to beast::iequals in basic_parser.ipp
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-23 16:58:15 +02:00
Damian Jarek
50ce5f7396
More split compilation in rfc7230.hpp
* Moved `find` and `exists` to the `ipp` file.
* Fixed missing include file in MSVC.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-23 09:50:16 +02:00
Damian Jarek
048fe16fa3
Set version to 259
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 11:37:25 -07:00
Vinnie Falco
61721544f0 Style tidying 2019-06-19 11:37:20 -07:00
Damian Jarek
214fa12f21
Use beast::read_size in detail::read
This allows using the read size hint and deduplicates a fairly
complicated piece of code.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:36 +02:00
Damian Jarek
f10dc38ae6
Replace uses of net::coroutine with asio::coroutine
`asio::coroutine` is an extension, which is not part of
the Networking TS, so the `net` alias is not appropriate in this case.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:35 +02:00
Damian Jarek
a0d5baf22a
Improve performance of http::string_to_verb
`operator==` performs better than the hand-written comparison routine.

fix #1636

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:35 +02:00
Damian Jarek
da61b4e52c
Move char_buffer into a separate file
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:34 +02:00
Damian Jarek
a7ae580568
Remove unused includes from test::stream
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:34 +02:00
Damian Jarek
edca7dd18e
Remove redundant use of asio::coroutine in flat_stream
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:34 +02:00
Damian Jarek
a7ff1a41e7
Remove redundant instation of static_string in websocket
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:33 +02:00
Damian Jarek
d5f5f1467f
Enable split compilation in http::basic_fields
Moved functions,that are independent of template argument, into
an *.ipp file.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-19 17:53:33 +02:00
Damian Jarek
833243d948
Remove the use of static_string from http::fields
The `temporary_buffer<A>` class template replaces the use of
`static_string` in `http::fields`, simplifying `set_chunked_impl` and
`set_keep_alive_impl`.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-04 15:31:18 +02:00
Damian Jarek
76842d637f
Reduce the number of instantiations of filter_token_list
Not using lambdas in this case reduced the number of instantiations of
the algorithm by a factor of 4x at no (observable) runtime cost.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-03 18:05:52 +02:00
Damian Jarek
6af4c01e56
Set version to 258
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-06-01 18:16:27 +02:00
Damian Jarek
d52b4e4bd3
Fix clang inititalization warning in websocket
Clang suggests using double braces when initializing a single subobject
of an aggregate.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-31 02:04:36 +02:00
Damian Jarek
52668cf730
Set version to 257
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-29 21:14:18 +02:00
Vinnie Falco
e9781b225e
Fix flat_buffer copy members
fix #1621
2019-05-29 21:14:14 +02:00
Damian Jarek
8198571555
Use if statement in basic_stream:
An `if` statement is cheaper to instantiate without additional runtime
cost when optimizations are enabled.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-27 22:15:49 +02:00
Damian Jarek
894ab45052
Remove experimental/unit_test/thread.hpp
The file has been unused in Beast for a few releases.

Actions required:
- Copy the `thread` class into your project.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-27 22:13:13 +02:00
Damian Jarek
15232fcf69
Set version to 256
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-20 15:34:22 +02:00
Vinnie Falco
be460675bc
Preserve operation_aborted on partial message 2019-05-20 15:34:22 +02:00
Damian Jarek
3fa468f840
Add 1-element specialization for buffers_cat
`buffers_cat` now supports 1 or more buffers sequences.

Close #1280

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-20 15:33:43 +02:00
Damian Jarek
9909fada29
allocator_traits::construct is used for user-defined types:
It should only be called when constructing a user-provided type.

Close #1332

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-20 15:29:21 +02:00
Damian Jarek
e98fc22bec
Remove redundant template in service_base
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-19 22:32:43 +02:00
Damian Jarek
0f77bd7149
Remove the use of bind_executor in basic_stream:
Use the executor hook instead of `bind_executor` to avoid template
instantiations.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-19 22:32:43 +02:00
Damian Jarek
dcf3db7f83
Remove redundant use of static_string
This avoids an instantiation and copy of the data when adding the Server
header field.

Close #1613

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-19 22:32:43 +02:00
Damian Jarek
c254b4fcfb
Remove uses of the deprecated buffers function
Fix: 1607
Close: 1608

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-19 22:32:37 +02:00
Vinnie Falco
d1dabebd83
Set version to 255 2019-05-04 18:48:14 -07:00
Vinnie Falco
77f3bb0764 Fix moved-from executor in idle ping timeout
fix #1599
2019-05-04 18:47:44 -07:00
Damian Jarek
18befa5f8c
Set version to 254
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-04 17:30:25 +02:00
Damian Jarek
dbadb79a75
Silence gcc-8 warning:
The warning was caused by a false positive triggered by boost::optional.
Reference:
https://github.com/boostorg/optional/issues/72

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-04 17:30:25 +02:00
Damian Jarek
7a388b7da6
Fix uninitalized memory use in deflate_stream
Reference in original zlib:
https://github.com/madler/zlib/pull/393

Resolves: #1586

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-04 17:30:23 +02:00
Damian Jarek
fd52df9206
Fix data race in test stream
Resolve: #1594

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-05-02 19:39:22 +02:00
Vinnie Falco
41040a21f0
Set version to 253 2019-04-20 10:19:37 -07:00
Damian Jarek
45aaf22acd Relax requirements for vector_body:
fix: #1567

std::byte is not an arithmetic type, which caused compilation to fail
when it was used in vector_body.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-04-20 10:19:31 -07:00
Vinnie Falco
e53ccf251c Fix min/max on MSVC
fix #1578
2019-04-19 11:36:00 -07:00
Vinnie Falco
0a334d96d1 member get_executor const-correctness
fix #1559
2019-04-19 11:18:55 -07:00
Vinnie Falco
db118f4dc4 Fix async_detect_ssl handler type
close #1569
2019-04-18 18:22:24 -07:00
Vinnie Falco
6e70c4260f
Set version to 252 2019-04-18 16:42:30 -07:00
Vinnie Falco
71de05d3cc More std::string_view fixes 2019-04-18 16:15:42 -07:00
Vinnie Falco
00603397a9
Set version to 251 2019-04-15 08:22:08 -07:00
Damian Jarek
2cfe3ba1b8 Replace static_string in parser
close #1574

This change yields a modest performance improment of 1-2% by replacing
the exception-based handling of buffer overflow with one based on
regular conditional checks.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-04-15 08:21:48 -07:00
Damian Jarek
b7a8fb5178 Fix compilation on MSVC with std::string_view
close #1573

std::string_view::iterator is not necessarily a raw pointer.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-04-15 08:21:48 -07:00
Damian Jarek
8703038e37 launder pointers:
close #1570

`std::launder` must be used whenever placement-new of an unknown type
is performed and the result of the placement-new expression is discarded.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-04-15 08:21:48 -07:00
Vinnie Falco
0345aa194d
Set version to 250 2019-04-11 12:18:10 -07:00
Mohamed El Housseine
ebe52537ea Set parser status and flags even if body_limit_ has been reached
close #1556
2019-04-08 17:14:46 -07:00
Damian Jarek
bc9f63f10d Cleanup endianness conversions:
close #1544

- Use Boost.Endian conversions functions.
- Remove existing private conversion functions.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-04-08 17:14:04 -07:00
Vinnie Falco
5e88637752
Set version to 249 2019-04-08 15:13:46 -07:00
Vinnie Falco
1de60a0462 Move friend function template definition 2019-04-08 15:13:12 -07:00
Vinnie Falco
b701d72ddb
Set version to 248 2019-04-06 13:24:56 -07:00
Simon Ebner
7e78863074
Don't use a moved-from handler:
close #1560

* Obtain the executor from the handler prior
  to transferring ownership.
2019-04-06 13:23:12 -07:00
Vinnie Falco
ea40d0262a
Set version to 247 2019-04-05 05:09:09 -07:00
Damian Jarek
ce986118f8
Fix async_base immediate completion
`complete(false, ...)` used the wrong executor when an async operation
completed immediately, potentially executing the completion handler on
the IO executor in some cases.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-04-05 05:08:31 -07:00
Vinnie Falco
50d5b965dd
Set version to 246 2019-04-03 11:16:52 -07:00
Vinnie Falco
90d7434847 decorator ctor is explicit 2019-04-03 11:16:38 -07:00
Vinnie Falco
15256f5ea7
Set version to 245 2019-04-02 16:49:09 -07:00
Vinnie Falco
7c084509d6 decorator constructor is constrained 2019-04-02 16:49:05 -07:00
Vinnie Falco
a4974e18ba
Set version to 244 2019-04-02 05:28:13 -07:00
Vinnie Falco
8ec1a4d90f Fix websocket keep-alive ping expiration 2019-04-01 18:14:25 -07:00
Vinnie Falco
27c572fbfa Tidy up declval in some traits 2019-04-01 17:35:44 -07:00
Vinnie Falco
d8bc714030
Set version to 243 2019-03-30 14:15:02 -07:00
Denis Glazachev
058294e908 Fix http::message constructor constraint 2019-03-30 14:14:59 -07:00
Vinnie Falco
4f464ccaeb Tidy up file_stdio for VS2015 2019-03-30 14:14:59 -07:00
Denis Glazachev
24ccdd243a Fix some typos 2019-03-30 11:12:04 -07:00
Vinnie Falco
658e678673 Set version to 242 2019-03-29 20:42:44 -07:00
Vinnie Falco
4e90183bda Check defined(BOOST_MSVC) 2019-03-29 20:42:44 -07:00
Vinnie Falco
a7faf03694 Fix http::message constructor constraint 2019-03-29 20:42:44 -07:00
Vinnie Falco
965c21615a MSVC uses ::fopen_s 2019-03-29 20:42:44 -07:00
Vinnie Falco
3c82717fed test::stream has deprecated lowest_layer for ssl 2019-03-29 17:31:18 -07:00
Vinnie Falco
b39a297b41
Set version to 241 2019-03-29 15:05:38 -07:00
Vinnie Falco
51db4d491a basic_parser::content_length is stable (API Change):
fix #1375

* The value returned from `basic_parser::content_length`
  no longer changes as the body of the message is received.

Actions Required:

* Call `basic_parser::content_length_remaining` instead
  of `basic_parser::content_length`.
2019-03-29 15:05:30 -07:00
Vinnie Falco
5154233350
Set version 240 2019-03-27 09:13:53 -07:00
Vinnie Falco
ed9d861545 Fix ssl_stream teardown 2019-03-27 09:13:32 -07:00
Vinnie Falco
2c141cd4ad
Set version to 239 2019-03-24 11:05:28 -07:00
Damian Jarek
5a0b4d7ebe More split compilation in HTTP
close #1541

- Remove unused private functions: `skip_ows_rev`, `skip_obs_fold`.
- Enable split compilation in `http/detail/rfc7230.hpp`.
- More split compilation in `basic_parser`.
- Remove some unnecessary includes.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-03-24 11:05:24 -07:00
Vinnie Falco
b95bd46b49
Set version to 238 2019-03-24 09:18:06 -07:00
Vinnie Falco
61fcd9ef6f Refactor Jamfiles to work with release layout 2019-03-24 09:18:02 -07:00
Vinnie Falco
4e82719640
Set version to 237 2019-03-23 17:50:49 -07:00
Vinnie Falco
b01d692ad7
Set version to 236 2019-03-22 10:09:32 -07:00
Vinnie Falco
f5d08d7b2c Set version to 235 2019-03-21 17:23:49 +01:00
Vinnie Falco
1f18b2712c
Set version to 234 2019-03-19 12:31:39 -07:00
Vinnie Falco
0c3ca62590
Set version to 233 2019-03-14 12:13:18 -07:00
Damian Jarek
8869ec5681
Use secure TLS/SSL versions:
TLS1.2 can be used instead, it is available in all currently
supported versions of OpenSSL.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-03-14 09:56:50 -07:00
Gregor Jasny
0033b7c1e4
Android: Use compiler pre-defined __ANDROID__
The ANDROID define us usually originationg from he build system
(like CMake, ndk-build, etc.). But some buildsystems like Bazel
do not set it which brakes Android platform detection.

Better use __ANDROID__ (like boost predef does) which is
predefined by the compiler if targeting Android.
2019-03-14 09:55:22 -07:00
Vinnie Falco
fdfd666e23
Set version to 232 2019-03-13 06:48:44 -07:00
Vinnie Falco
fdc83c981b Fix basic_stream lowest_layer for ssl 2019-03-12 18:58:24 -07:00
Vinnie Falco
b7c3c1eb1a Fix file_win32_write_op async initiation 2019-03-12 18:07:19 -07:00
Vinnie Falco
554701845c Fix close_socket for net::basic_socket changes 2019-03-12 16:20:36 -07:00
Vinnie Falco
3c878479d0
Set version to 231 2019-03-12 13:44:51 -07:00