Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Beast to 1.0.0-b13 #1847

Merged
merged 51 commits into from Sep 16, 2016
Merged

Update Beast to 1.0.0-b13 #1847

merged 51 commits into from Sep 16, 2016

Conversation

vinniefalco
Copy link
Contributor

@vinniefalco vinniefalco commented Sep 15, 2016

This changes the behavior of beast::unit_test::dstream on Windows, and could affect console output on Linux and Mac so please check that. Otherwise, it brings the Beast subtree up to version 1.0.0-b13, which has already passed reviews and tests (see https://github.com/vinniefalco/Beast/) There should be no functional changes. Aside from the subtree, all the rippled code changes are in the top 2 commits.

vinniefalco and others added 30 commits June 20, 2016 11:12
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.
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(...);
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.
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.
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>
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.
This macro is used in the unit test framework to assist in
reporting the file and line number of test failures.
This fixes up support for building both 32 and 64 bit targets, especially on Windows.
The 'resource' parameter in the call to stream::handshake is
used when building the HTTP request to perform the upgrade.
vinniefalco and others added 21 commits August 26, 2016 13:06
Also fixes a bug where suite::log was incorrectly flushed.
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;
    ```
These directories are removed, to make it easier for developers
to delete the entire directory contents when rebuilding CMake targets
after a configuration change.
* non-Windows dstream is a simple reference alias
* dstream constructor takes a target ostream argument
* dstream inherits the unitbuf setting of the target stream
git-subtree-dir: src/beast
git-subtree-mainline: 7c90b9e
git-subtree-split: 2f9a844
@mellery451 mellery451 self-assigned this Sep 15, 2016
@codecov-io
Copy link

Current coverage is 64.41% (diff: 100%)

Merging #1847 into develop will decrease coverage by <.01%

@@            develop      #1847   diff @@
==========================================
  Files           704        704          
  Lines         50747      50747          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
- Hits          32696      32691     -5   
- Misses        18051      18056     +5   
  Partials          0          0          

Sunburst

Powered by Codecov. Last update 35fa20a...8e9f959

@seelabs
Copy link
Collaborator

seelabs commented Sep 15, 2016

I tested these changes on Linux. The console output for the unit tests is fine. I also checked the cmake builds for both beast and rippled and reviewed the changes in tidy up cmakelists and Better dstream. 👍 from me.

However, these changes effect windows more than linux. I'd count this as 1/2 a review.

@mellery451
Copy link
Contributor

I ran Test.py on OSX and this all passes. The unit test output looks normal to me. Also reviewed the CMake changes. 👍

@vinniefalco vinniefalco added the Passed Passed code review & PR owner thinks it's ready to merge. Perf sign-off may still be required. label Sep 16, 2016
@vinniefalco vinniefalco merged commit 8e9f959 into XRPLF:develop Sep 16, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Passed Passed code review & PR owner thinks it's ready to merge. Perf sign-off may still be required.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants