Commit Graph

10850 Commits

Author SHA1 Message Date
Vinnie Falco
2a014df60d Merge Beast subtree:
Merge commit 'ba7031cb3b4840c1135515eccd77b002f2ceae9f'
2016-04-29 05:24:18 -04:00
Nik Bougalis
e4f0b36f61 Set version to 0.32.0-b7 2016-04-26 18:00:58 -07:00
Nik Bougalis
b7c34d8a96 Improve validation of JSON-formatted ledgers during load 2016-04-26 17:59:29 -07:00
Nik Bougalis
b5dbd7942f Correctly handle connections that fail security checks (RIPD-1114):
* Return error code 400 to the peer along with a descriptive message
* Release the slot and decrement IP connection counters.
2016-04-26 17:59:28 -07:00
wilsonianb
5e5d5fdee4 Make wallet_propose seed generation consistent:
Allow 'seed' or 'seed_hex' if 'key_type' is not specified.
Use legacy passphrase seed generation if 'key_type' is specified.
2016-04-26 17:59:09 -07:00
Miguel Portilla
89c05efe22 Remove UTF8_checker from WSClient unit test. 2016-04-26 17:57:20 -07:00
Edward Hennis
e5bf824c3b Stricter checking on integer json inputs. 2016-04-26 17:57:20 -07:00
Edward Hennis
b509263ef5 Make fee command public (RIPD-1113) 2016-04-26 17:57:19 -07:00
seelabs
13ec104154 Update dependency scripts for Ubuntu 16.04 2016-04-26 17:57:19 -07:00
Vinnie Falco
1c8c3207fe Set version to 0.32.0-b6 2016-04-22 12:56:22 -04:00
Vinnie Falco
ba7031cb3b Complete examples in beast html documentation 2016-04-22 12:49:02 -04:00
Vinnie Falco
7e88fdd0f1 Complete examples in beast html documentation 2016-04-22 12:49:02 -04:00
Vinnie Falco
af3d721f82 Reduce requirements to C++11 only 2016-04-22 11:59:03 -04:00
Vinnie Falco
e09249abad Reduce requirements to C++11 only 2016-04-22 11:59:03 -04:00
sublimator
0061f03cef Add Travis support 2016-04-22 11:38:11 -04:00
sublimator
53c82d54ea Add Travis support 2016-04-22 11:38:11 -04:00
Vinnie Falco
5602a24b22 Fix basic_streambuf:
prepare() is rewritten to operate more simply; the state of
the container is always consistent even between internal operations.
2016-04-21 15:17:04 -04:00
Vinnie Falco
f4cbb9d8e9 Fix basic_streambuf:
prepare() is rewritten to operate more simply; the state of
the container is always consistent even between internal operations.
2016-04-21 15:17:04 -04:00
Howard Hinnant
df82a734af Fix includes, remove unused type checks 2016-04-21 11:22:06 -04:00
Howard Hinnant
2179ea85f8 Fix includes, remove unused type checks 2016-04-21 11:22:06 -04:00
Vinnie Falco
f5299209d4 Set version to 0.32.0-b5 2016-04-20 13:15:00 -04:00
Vinnie Falco
ca2384f230 beast doc/test work 2016-04-20 12:01:26 -04:00
Vinnie Falco
9c88f76338 beast doc/test work 2016-04-20 12:01:26 -04:00
Vinnie Falco
f07cd8ceb4 Reorganize source files 2016-04-20 12:01:25 -04:00
Vinnie Falco
4469ff4b9a Reorganize source files 2016-04-20 12:01:25 -04:00
Vinnie Falco
54f6f0ceba Beast.WebSocket:
Beast.WebSocket provides developers with a robust WebSocket
implementation built on Boost.Asio with a consistent asynchronous
model using a modern C++ approach.
2016-04-20 12:01:24 -04:00
Vinnie Falco
2cb3834bbb Beast.WebSocket:
Beast.WebSocket provides developers with a robust WebSocket
implementation built on Boost.Asio with a consistent asynchronous
model using a modern C++ approach.
2016-04-20 12:01:24 -04:00
Vinnie Falco
2e302a43aa Add SHA1 algorithm 2016-04-20 12:01:23 -04:00
Vinnie Falco
5e8d028da2 Add SHA1 algorithm 2016-04-20 12:01:23 -04:00
Vinnie Falco
8b62c23ab6 Beast.HTTP:
New classes are introduced to represent HTTP messages and their
associated bodies. The parser interface is reworked to use CRTP,
error codes, and trait checks.

New classes:

* basic_headers

  Models field/value pairs in a HTTP message.

* message

  Models a HTTP message, body behavior defined by template argument.
  Parsed message carries metadata generated during parsing.

* parser

  Produces parsed messages.

* empty_body, string_body, basic_streambuf_body

  Classes used to represent content bodies in various ways.

New functions:

* read, async_read, write, async_write

  Read and write HTTP messages on a socket.

New concepts:

* Body: Represents the HTTP Content-Body.
* Field: A HTTP header field.
* FieldSequence: A forward sequence of fields.
* Reader: Parses a Body from a stream of bytes.
* Writer: Serializes a Body to buffers.

basic_parser changes:

* add write methods which throw exceptions instead
* error_code passed via parameter instead of return value
* fold private member calls into existing callbacks
* basic_parser uses CRTP instead of virtual members
* add documentation on Derived requirements for CRTP

impl/http-parser changes:

* joyent renamed to nodejs to reflect upstream changes
2016-04-20 12:01:15 -04:00
Vinnie Falco
bcbe22c780 Beast.HTTP:
New classes are introduced to represent HTTP messages and their
associated bodies. The parser interface is reworked to use CRTP,
error codes, and trait checks.

New classes:

* basic_headers

  Models field/value pairs in a HTTP message.

* message

  Models a HTTP message, body behavior defined by template argument.
  Parsed message carries metadata generated during parsing.

* parser

  Produces parsed messages.

* empty_body, string_body, basic_streambuf_body

  Classes used to represent content bodies in various ways.

New functions:

* read, async_read, write, async_write

  Read and write HTTP messages on a socket.

New concepts:

* Body: Represents the HTTP Content-Body.
* Field: A HTTP header field.
* FieldSequence: A forward sequence of fields.
* Reader: Parses a Body from a stream of bytes.
* Writer: Serializes a Body to buffers.

basic_parser changes:

* add write methods which throw exceptions instead
* error_code passed via parameter instead of return value
* fold private member calls into existing callbacks
* basic_parser uses CRTP instead of virtual members
* add documentation on Derived requirements for CRTP

impl/http-parser changes:

* joyent renamed to nodejs to reflect upstream changes
2016-04-20 12:01:15 -04:00
Vinnie Falco
3461bafaa2 Beast.Asio:
New classes:

  class async_completion:
    Helper class for implementing asynchronous initiation functions.
    See n3964:
        Library Foundations for Asynchronous Operations, Revision 1
        http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3964.pdf

  class basic_streambuf:
    Meets the requirements of Streambuf.

  class buffered_readstream:
    Buffers a ReadStream with a ConstBufferSequence.

  class consuming_buffers:
    Adapts a BufferSequence which wraps the underlying buffer
    sequence and presents fewer bytes, with the retained bytes
    occurring at the end of the sequence.

  class handler_alloc:
    A C++ Allocator the uses asio handler allocation hooks.

  class static_streambuf:
    An implementation of the Streambuf concept that uses a
    fixed size buffer with size determined at compile-time.

  class streambuf_readstream:
    Buffers a ReadStream with a Streambuf.

New functions:

  append_buffers()
    Returns a new BufferSequence which efficiently concatenates
    two or more buffer sequences together.

  prepare_buffers()
    Shortens a buffer sequence. The bytes excluded are at the
    end of the underlying buffer sequence.

  boost::asio::read_until()
    A copy of boost::asio::read_until overloads, modified to work
    with a beast::asio::basic_streambuf.

Debugging:

  buffers_to_string()

    Convert a ConstBufferSequence to a human readable string
    suitable for diagnostics.

type_check.h:

  Metafunctions for checking asio concepts:
    AsyncReadStream, AsyncWriteStream
    SyncReadStream, SyncWriteStream
    ConstBufferSequence, MutableBufferSequence
    Streambuf
    Handler

Changes:

* All symbols moved up a namespace level.
* streambuf provides all move and copy special members,
  behavior of moved from objects is well-defined.

Fixes:

* Fix basic_streambuf iterator category.
2016-04-20 05:16:38 -04:00
Vinnie Falco
f25b448a49 Beast.Asio:
New classes:

  class async_completion:
    Helper class for implementing asynchronous initiation functions.
    See n3964:
        Library Foundations for Asynchronous Operations, Revision 1
        http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3964.pdf

  class basic_streambuf:
    Meets the requirements of Streambuf.

  class buffered_readstream:
    Buffers a ReadStream with a ConstBufferSequence.

  class consuming_buffers:
    Adapts a BufferSequence which wraps the underlying buffer
    sequence and presents fewer bytes, with the retained bytes
    occurring at the end of the sequence.

  class handler_alloc:
    A C++ Allocator the uses asio handler allocation hooks.

  class static_streambuf:
    An implementation of the Streambuf concept that uses a
    fixed size buffer with size determined at compile-time.

  class streambuf_readstream:
    Buffers a ReadStream with a Streambuf.

New functions:

  append_buffers()
    Returns a new BufferSequence which efficiently concatenates
    two or more buffer sequences together.

  prepare_buffers()
    Shortens a buffer sequence. The bytes excluded are at the
    end of the underlying buffer sequence.

  boost::asio::read_until()
    A copy of boost::asio::read_until overloads, modified to work
    with a beast::asio::basic_streambuf.

Debugging:

  buffers_to_string()

    Convert a ConstBufferSequence to a human readable string
    suitable for diagnostics.

type_check.h:

  Metafunctions for checking asio concepts:
    AsyncReadStream, AsyncWriteStream
    SyncReadStream, SyncWriteStream
    ConstBufferSequence, MutableBufferSequence
    Streambuf
    Handler

Changes:

* All symbols moved up a namespace level.
* streambuf provides all move and copy special members,
  behavior of moved from objects is well-defined.

Fixes:

* Fix basic_streambuf iterator category.
2016-04-20 05:16:38 -04:00
Vinnie Falco
874bbd0b8a C++17 compatibility:
* std::void_t
* std::bool_constant
2016-04-20 05:16:37 -04:00
Vinnie Falco
73ddda4651 C++17 compatibility:
* std::void_t
* std::bool_constant
2016-04-20 05:16:37 -04:00
Vinnie Falco
a433804ee6 unit_test::suite fix warning 2016-04-20 05:16:33 -04:00
Vinnie Falco
08171dad5e unit_test::suite fix warning 2016-04-20 05:16:33 -04:00
Vinnie Falco
f60eeaf08c unit_test::thread fixes:
* Fail on exception in unit_test::thread
* Add unit_test:🧵:detach()
2016-04-20 05:16:32 -04:00
Vinnie Falco
7b3550c46e unit_test::thread fixes:
* Fail on exception in unit_test::thread
* Add unit_test:🧵:detach()
2016-04-20 05:16:32 -04:00
Vinnie Falco
db8fb177b8 Remove unused or obsolete classes and files 2016-04-20 05:16:32 -04:00
Vinnie Falco
203739f7a4 Remove unused or obsolete classes and files 2016-04-20 05:16:32 -04:00
Nik Bougalis
735c341fae Set version to 0.32.0-b4 2016-04-19 17:17:46 -07:00
Edward Hennis
7bb9264c3d Update Travis to Boost 1.60 2016-04-19 17:17:32 -07:00
seelabs
4b8d227922 Better numerical stability for deferred credits:
Before this change, the deferred credits algorithm took the current
balance and subtracted the recorded credits. Conceptually, this is the
same as taking the original balance, adding all the credits,
subtracting all the debits, and subtracting all the credits. The new
algorithm records the original balance and subtracts the debits. This
prevents errors that occur when the original balance and the recorded
credits have large differences in magnitude.

Additionally, XRP credits were recorded incorrectly in the deferred
credits table (the line was between the sender and receiver, rather than
the root account).
2016-04-19 17:17:23 -07:00
Nik Bougalis
4124850481 Merge remote-tracking branch 'upstream/release' into develop 2016-04-19 17:17:08 -07:00
Nik Bougalis
637fee5ecc Set version to 0.31.0 2016-04-19 17:01:48 -07:00
Nik Bougalis
47eb4da080 Check file handle limit on startup (RIPD-442, RIPD-1024):
Calculate the number of file descriptors that are needed during
execution based on the configuration file, with a hard floor
of 1024, adjusting the limit if possible. Refuse to run if enough
fds are not available.

Additionally, allow administrators to limit the number of incoming
connections a configured port will accept. By default no limit is
imposed.
2016-04-19 17:01:33 -07:00
Nik Bougalis
79ca82c078 Improve watchdog start logic 2016-04-19 17:01:25 -07:00
Miguel Portilla
d2a787805a Fix secured Websocket closing.
Websocketpp was incorrectly handling close before or during protocol negotiation. This issue addresses lingering CLOSE_WAIT file descriptors.
2016-04-19 17:01:15 -07:00
David Schwartz
d2071b7ea7 Small Websocket cleanups. 2016-04-19 17:01:09 -07:00