Commit Graph
96 Commits
Author SHA1 Message Date
Evgeniy d5d8e2fcd2 Fix error handling in server examples 2017-07-20 08:12:09 -07:00
Vinnie Falco 0c0b2f2545 Add missing rebind to handler_alloc 2017-07-20 08:12:09 -07:00
Vinnie Falco dfea8ff266 Set version to 1.0.0-b13 2017-07-20 08:12:09 -07:00
Vinnie Falco f8bb91862e Better dstream:
* non-Windows dstream is a simple reference alias
* dstream constructor takes a target ostream argument
* dstream inherits the unitbuf setting of the target stream
2017-07-20 08:12:09 -07:00
Vinnie Falco af46a1162a Tidy up CMakeLists 2017-07-20 08:12:09 -07:00
Vinnie Falco a443be208c Remove bin and bin64 directories:
These directories are removed, to make it easier for developers
to delete the entire directory contents when rebuilding CMake targets
after a configuration change.
2017-07-20 08:12:09 -07:00
Vinnie Falco fda1493565 Set version to 1.0.0-b12 2017-07-20 08:12:09 -07:00
Vinnie Falco 59cb3ee098 Use -p to print suites from unit test main 2017-07-20 08:12:09 -07:00
Vinnie Falco 28cabc5e28 Add BEAST_EXPECTS test failure macro:
New overloads of suite::expect take the file and line number
as individual parameters, cleaning up the file name output
by showing only the filename part (to not leak the full path,
which might contain sensitive information).

A new macro BEAST_EXPECTS allows an additional reason
string as well as reporting the file and line. Typical usage:

    ```
    error_code ec;
    ...
    if(! BEAST_EXPECTS(! ec, ec.message()))
        return;
    ```
2017-07-20 08:12:09 -07:00
Vinnie Falco f144619e7c Fix unit test runner to output all case names:
Also fixes a bug where suite::log was incorrectly flushed.
2017-07-20 08:12:09 -07:00
Vinnie Falco 4bb0b9d0d9 Tidy up whitespace 2017-07-20 08:12:09 -07:00
Vinnie Falco 5f8f6c0b75 Update README, rename CHANGELOG 2017-07-20 08:12:09 -07:00
Vinnie Falco 187d0c954a Set version to 1.0.0-b11 2017-07-20 08:12:09 -07:00
Keaton Okkonen b7201be164 Update README.md (fix #62) 2017-07-20 08:12:09 -07:00
Vinnie Falco 605845e4c6 Rename websocket echo servers (fix #46) 2017-07-20 08:12:09 -07:00
Vinnie Falco 3938e5d9ed Rename to DynamicBuffer (fix #47) 2017-07-20 08:12:09 -07:00
Vinnie Falco 3518e4861b Number error codes from 1 (fix #54) 2017-07-20 08:12:09 -07:00
Vinnie Falco 796f20314c Update HTTP documentation (fix #61, #60, #59) 2017-07-20 08:12:09 -07:00
Vinnie Falco c17f467601 Restyle sources 2017-07-20 08:12:09 -07:00
Vinnie Falco 9c11d3fc33 Set URI in generated WebSocket Upgrade requests (fix #64):
The 'resource' parameter in the call to stream::handshake is
used when building the HTTP request to perform the upgrade.
2017-07-20 08:12:09 -07:00
Vinnie Falco e75fb7a4d4 Fix integer warnings in 64-bit Windows build 2017-07-20 08:12:09 -07:00
Vinnie Falco 2c4bdf933e Update documentation and images 2017-07-20 08:12:09 -07:00
Vinnie Falco f3f4e2b425 Tidy up 32 and 64 bit build support (fix #49):
This fixes up support for building both 32 and 64 bit targets, especially on Windows.
2017-07-20 08:12:07 -07:00
Nik Bougalis cbf1af97c5 Print the testcase header prior to logging (fix #56) 2017-07-20 08:12:07 -07:00
Vinnie Falco fc677536bf Set version to 1.0.0-b10 2017-07-20 08:12:07 -07:00
Vinnie Falco 306cdf22d0 Update README.md for CppCon 2016 2017-07-20 08:12:07 -07:00
Vinnie Falco a345327c7b Add WebSocket implementation comparison doc 2017-07-20 08:12:07 -07:00
Vinnie Falco b2ea40c757 Add BEAST_EXPECT macro:
This macro is used in the unit test framework to assist in
reporting the file and line number of test failures.
2017-07-20 08:12:07 -07:00
Ties Jan Hefting c07ba6aeeb Fix warnings 2017-07-20 08:12:07 -07:00
Vinnie Falco 728e7f648f Set version to 1.0.0-b9 2017-07-20 08:12:07 -07:00
wilsonianb 3ec83b31d9 Handle undefined VARIANT in cmake 2017-07-20 08:12:07 -07:00
Vinnie Falco e6f1a765a1 Set version to 1.0.0-b8 2017-07-20 08:12:07 -07:00
Vinnie Falco 1947cb4e30 Fix rfc2616 Section 4.2 compliance:
basic_headers no longer combines fields with the same name by appending
a comma and concatenating the two values together. This was breaking
certain header fields which expect each value to be distinct, such as
the "Set-Cookie" header.

Now the container behaves more like a multi set with respect to insertion
of multiple values with the same field name. Additional member functions
are provided to provide extra functionality.
2017-07-20 08:12:07 -07:00
Vinnie Falco 98adfdb79c Update Example code in documentation 2017-07-20 08:12:07 -07:00
Jack Bond-Preston d005b97c0b Fix to_string.hpp include path in example code 2017-07-20 08:12:07 -07:00
wilsonianb a2fb4b099b Build coverage and usan Travis CI targets with CMake 2017-07-20 08:12:07 -07:00
seelabs bc1eca81df Add cmake and clang build to travis 2017-07-20 08:12:07 -07:00
Casey Bodley 28bd98073e Use Threads::Threads interface library in cmake
in addition to passing ${CMAKE_THREAD_LIBS_INIT} to the linker, this
interface library will also add -pthread to the compile options when
supported

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2017-07-20 08:12:07 -07:00
Vinnie Falco 908ac75f7c Set Beast version to 1.0.0-b7 2017-07-20 08:12:07 -07:00
Vinnie Falco 344e4c942c Add skip_body parser option 2017-07-20 08:12:07 -07:00
Vinnie Falco 8b71afa63f Remove extraneous header file status.hpp 2017-07-20 08:12:07 -07:00
Vinnie Falco 2b212e8844 Add usage example to rfc7230 javadocs 2017-07-20 08:12:07 -07:00
Vinnie Falco 19f15046b0 Fixes and documentation for teardown and use with SSL:
This solves a problem where clang and gcc locate the deleted
version of teardown and async_teardown instead of the overloaded
version. It requires overloads to add `teardown_tag` into the signature
so that the rules for argument dependent lookup can find the
right function. Improve documentation of teardown requirements

The documentation is updated to clearly explain the need for including
<beast/websocket/ssl.hpp> to use SSL streams with WebSocket.

The default implementations of teardown and async_teardown now use
static_assert to alert the user of improper usage, with comments
providing guidance for resolving the error.
2017-07-20 08:12:07 -07:00
Vinnie Falco a6cb4fdfb2 Remove deprecated example http::stream wrapper 2017-07-20 08:12:07 -07:00
Vinnie Falco 5dd9bacff0 Simplify HTTP crawler example 2017-07-20 08:12:07 -07:00
Vinnie Falco b42c928d5e Fixes and simplifications to HTTP example server:
The example HTTP server is updated to provide the correct MIME-type.
It no longer uses the now-deprecated http::stream class, since that
implementation does not provide flow control. A new example async_write
function is provided in the asynchronous server for managing the
lifetime of a message sent asynchronously.

The logging is thread-safe, and a bug causing connections to
malfunction is fixed.
2017-07-20 08:12:07 -07:00
Vinnie Falco 64206b5612 Qualify some calls:
This fixes a problem where a call to read() is ambiguous because
the argument list contains objects from both boost::asio and
beast::http.

Users invoking read may need to do so fully qualified, by writing:
    beast::http::read(...);
2017-07-20 08:12:07 -07:00
Vinnie Falco 62219add69 Initialize Writer in prepare:
Writer requires a call to Writer::init to call content_length. This
changes prepare to correctly call init. A consequences is that
prepare can now throw unexpectedly for user-defined writers that
can fail their initialization.
2017-07-20 08:12:07 -07:00
Vinnie Falco 227c2b131d Set Beast version to 1.0.0-b6 2017-07-20 08:12:07 -07:00
Vinnie Falco 589e18c199 rfc7230 compliance, limits, and tests for basic_parser_v1:
New parser set_option function for controlling independent size limits
on headers and body. By default request and response parsers are set up
with reasonable limits to prevent resource exhaustion attacks.

* Parser adheres strictly to rfc7230
* Increased test coverage
* Headers and body maximum size limit options
2017-07-20 08:12:07 -07:00