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
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
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
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
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
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
Vinnie Falco
77f3bb0764
Fix moved-from executor in idle ping timeout
...
fix #1599
2019-05-04 18:47:44 -07: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
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
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
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
90d7434847
decorator ctor is explicit
2019-04-03 11:16:38 -07:00
Vinnie Falco
7c084509d6
decorator constructor is constrained
2019-04-02 16:49:05 -07:00
Vinnie Falco
8ec1a4d90f
Fix websocket keep-alive ping expiration
2019-04-01 18:14:25 -07:00
Denis Glazachev
24ccdd243a
Fix some typos
2019-03-30 11:12:04 -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
Damian Jarek
dc52df351a
Enable more split compilation in websocket and http
...
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com >
2019-03-10 13:23:22 -07:00
Damian Jarek
b9aad3d06c
Fix completion handler invocation signatures
...
Completion handlers should be called with the exact same signature as
provided to `async_result`.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com >
2019-03-07 12:56:40 -08:00
Vinnie Falco
45353a7f04
handler_ptr is deprecated (API Change):
...
* `handler_ptr` is deprecated and should not be used.
Actions Required:
* Replace use of `handler_ptr` with `stable_async_base`
and `allocate_stable`.
2019-03-06 10:38:08 -08:00
Vinnie Falco
e073a9e7fc
Tidy up docs
2019-03-05 20:15:07 -08:00
Vinnie Falco
9f2b0ce1db
Rename to buffer_bytes
2019-03-05 11:09:53 -08:00
Vinnie Falco
6ccdcdf51d
buffer_size is in buffer_traits.hpp
2019-03-05 11:09:50 -08:00
Vinnie Falco
8e2620e2b1
Doc tidy
2019-03-05 08:00:14 -08:00
Vinnie Falco
e4342b51b2
SSL teardowns are in an associated namespace
2019-03-04 18:33:24 -08:00
Damian Jarek
8f83b4e611
Fix UB in decorator:
...
- don't assume layout or size overhead of classes with
virtual members (use split vtable)
- don't use SOO for types with throwing move
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com >
2019-03-04 14:44:15 -08:00
Vinnie Falco
4eb137f8ea
Fix decorator for certain sizes
2019-03-03 17:13:56 -08:00
Eelis van der Weegen
9992701a4a
Fix ubsan false positive:
...
* Avoid calling stream() on partially constructed object.
Fixes #1495 , fix #1496
2019-03-03 13:36:31 -08:00
Vinnie Falco
62878255fb
Workaround for msvc-14.0
2019-03-03 12:52:35 -08:00
Vinnie Falco
ef5282ebcf
Tidy up websocket service
2019-02-27 16:44:04 -08:00
Vinnie Falco
92ad50a8e7
Destroy abandoned websocket ops on shutdown
...
fix #1358
2019-02-27 16:44:01 -08:00
Vinnie Falco
031e13c253
Add websocket service
2019-02-27 16:42:19 -08:00
Vinnie Falco
05b5843e19
Next layer is a base class
2019-02-27 14:48:31 -08:00
Vinnie Falco
8f9eed1faf
stream_base::timeout::suggested is a nested function
2019-02-27 06:52:45 -08:00
Vinnie Falco
7953ac281f
Pass references as pointers to async_initiate
2019-02-26 07:21:05 -08:00
Vinnie Falco
ab9a4c66e0
Doc work
2019-02-26 07:21:04 -08:00
Vinnie Falco
0647c902ac
role_type is in boost/beast/core/role.hpp (API Change):
...
This enumeration is now part of the library core and
not specific to websocket.
2019-02-26 07:20:46 -08:00
Vinnie Falco
81f33a0f89
Rename to async_base, stable_async_base
2019-02-26 07:20:08 -08:00
Vinnie Falco
59bda5d9c6
basic_parser is abstract, not CRTP (API Change):
...
* `basic_parser` now uses pure virtual member functions instead
of the curiously recurring template pattern.
Actions Required:
* Change uses of the `basic_parser` type to omit the `Derived`
template parameter
* Classes derived from `basic_parser` no longer need to friend
the base.
* Virtual functions in the derived class may be marked `override`.
2019-02-23 11:15:59 -08:00
Vinnie Falco
094f5ec5cb
Better treatment of SSL short reads:
...
fix #38
This improves the behavior when encountering a short read:
* Any stream error encountered during a read is converting into
`http::error::partial_message` if some data was received but
the message is incomplete.
* Examples squelch SSL short read errors from the logs.
2019-02-23 08:56:59 -08:00
Vinnie Falco
d4dddec1c0
Reduce template instantiations
2019-02-23 08:56:57 -08:00
Vinnie Falco
46eb006757
Tidy up docs
2019-02-22 19:46:29 -08:00
Vinnie Falco
955354b9dd
Enable split Beast compilation for tests
2019-02-22 17:27:27 -08:00
Vinnie Falco
c5af2e7fcc
Fixes to some CI targets
2019-02-22 15:39:34 -08:00