Commit Graph

65 Commits

Author SHA1 Message Date
Vinnie Falco
cc198db10e serializing file_body is not const 2017-07-20 08:15:30 -07:00
Vinnie Falco
e06a055503 BodyReader, BodyWriter use two-phase init (API Change):
These types now perform error-based initialization in
a separate init() functions instead of in the constructor.

Actions Required:

* Modify instances of user-defined BodyReader and BodyWriter
  types to perfrom two-phase initialization, as per the
  updated documented type requirements.
2017-07-20 08:15:30 -07:00
Christopher Kohlhoff
8179019590 Use file_body for valid requests, string_body otherwise. 2017-07-20 08:15:30 -07:00
Andrzej Krzemieński
d6bac17bff remove redundant flush() from example:
`<<std::endl` already flushes the stream; no need for a separate call.
2017-07-20 08:15:30 -07:00
Vinnie Falco
e81026614a Remove common/file_body.hpp 2017-07-20 08:15:30 -07:00
Vinnie Falco
37461a1c4c Fixes for gcc-4.8 2017-07-20 08:15:30 -07:00
Vinnie Falco
c01dddc4ac Verify certificates in SSL clients 2017-07-20 08:15:30 -07:00
Vinnie Falco
f5ae60613f serializer::next replaces serializer::get (API Change):
Actions Required:

* Use serializer::next instead of serializer::get at call sites
2017-07-20 08:15:29 -07:00
Vinnie Falco
b0e52dd246 Refactor header and message constructors:
fix #581

* request and response headers now have convenience
  constructors so important fields like method, target,
  result, and version may be set upon construction.

Actions Required:

* Evaluate each message constructor call site and
  adjust the constructor argument list as needed.
2017-07-20 08:15:29 -07:00
chriskohlhoff
7e61a48607 Various improvements to http_server_fast.cpp:
fix #578

- Receive request in a single read
- Use fields_alloc for response
- Fix command line usage information
- Add command line option to spin the io_service
2017-07-20 08:15:29 -07:00
Vinnie Falco
a281ca5384 Documentation tidying 2017-07-20 08:15:29 -07:00
Vinnie Falco
6b6c2e0f93 Add websocket-server-async example 2017-07-20 08:15:29 -07:00
Vinnie Falco
c12ded9abc Add http-server-threaded example 2017-07-20 08:15:29 -07:00
Vinnie Falco
09df24ec62 Refactor file_body for best practices 2017-07-20 08:15:29 -07:00
Vinnie Falco
a2ca4e41ca Tidy up set payload in http-server-fast 2017-07-20 08:15:29 -07:00
Vinnie Falco
8910ab44ae Tidy up http_sync_port error check 2017-07-20 08:15:29 -07:00
octopus-prime
ebfc3f4537 Fix buffer overflow handling for string_body and mutable_body
fix #553, fix #558
2017-07-20 08:15:29 -07:00
Vinnie Falco
c149321013 Return std::size_t from Body::writer::put (API Change)
`put` returns the number of bytes actually transferred
from the input buffers.

Actions Required:

* Return the number of bytes actually transferred from the
  input buffers in user defined `Body::writer::put` functions.
2017-07-20 08:15:29 -07:00
Vinnie Falco
2878b38b64 Call prepare_payload in HTTP example 2017-07-20 08:15:29 -07:00
Vinnie Falco
2843a497a0 Documentation revision
fix #567, fix #572
2017-07-20 08:15:29 -07:00
octopus-prime
9fe7f6e415 Fix HEAD response in file_service 2017-07-20 08:15:29 -07:00
octopus-prime
b5b1295d0c Add const_body, mutable_body to examples 2017-07-20 08:15:29 -07:00
Vinnie Falco
8207a53113 Adjust buffer size in fast server 2017-07-20 08:15:29 -07:00
Vinnie Falco
beead1a297 Split common tests to a new project 2017-07-20 08:15:29 -07:00
Vinnie Falco
edeb44617b Remove BodyReader::is_deferred (API Change):
The is_deferred nested type is removed from the BodyReader
requirements.

Performance for sending messages with `file_body` was cut
almost in half with is_deferred as `std::true_type` since
it caused double the number of socket writes. If the
deferred behavior is absolutely necessary, callers can get
the same effect by manually sending the headers first.

Actions Required:

* Callers who need the behavior of is_deferred as `std::true_type`
  should manually construct a serializer and serialize the header
  first, followed by the body.
2017-07-20 08:15:29 -07:00
Vinnie Falco
bf59634bc2 Change BodyReader, BodyWriter requirements (API Change):
Actions Required:

* Change user defined instances of BodyReader and BodyWriter
  to meet the new requirements.
2017-07-20 08:15:29 -07:00
Vinnie Falco
bb1dd72638 Group common example headers 2017-07-20 08:15:29 -07:00
Vinnie Falco
84d7601bdf Rename to http-server-fast 2017-07-20 08:15:29 -07:00
Vinnie Falco
fc15f5e0b2 Add http-server-small example 2017-07-20 08:15:28 -07:00
Vinnie Falco
e5f1d4d010 Add http-server example 2017-07-20 08:15:28 -07:00
Vinnie Falco
86244c8dcf Add serializer request/response aliases 2017-07-20 08:15:28 -07:00
Vinnie Falco
8f4e7fd0a0 Fix unused variable warnings 2017-07-20 08:15:28 -07:00
Vinnie Falco
d70a78bbda Fix integer warnings 2017-07-20 08:15:28 -07:00
Vinnie Falco
e477574681 Remove make_serializer (API Change):
Actions Required:

* Replace calls to make_serializer with variable declarations
2017-07-20 08:15:28 -07:00
Vinnie Falco
b2ab40f09c Doc tidying
fix #521, fix #524
2017-07-20 08:15:28 -07:00
Vinnie Falco
77a4c36aeb Better User-Agent in examples
fix #523
2017-07-20 08:15:28 -07:00
Vinnie Falco
65b127d2e6 Tidy up Jamfiles 2017-07-20 08:15:28 -07:00
Vinnie Falco
26b5e91725 Tidy up CMakeLists.txt 2017-07-20 08:15:28 -07:00
Vinnie Falco
9c4b3ed2a7 Only build and run tests in variant=coverage 2017-07-20 08:15:27 -07:00
Vinnie Falco
e5f0774687 Use std::to_string instead of lexical_cast
fix #518
2017-07-20 08:15:27 -07:00
Vinnie Falco
f4c65a5ba6 Squelch harmless not_connected errors 2017-07-20 08:15:27 -07:00
Vinnie Falco
56a561da9a message::prepare_payload replaces message::prepare (API Change):
Actions Required:

* Change calls to msg.prepare to msg.prepare_payload. For messages
  with a user-defined Fields, provide the function prepare_payload_impl
  in the fields type according to the Fields requirements.
2017-07-20 08:15:27 -07:00
Vinnie Falco
087844c487 Narrow the use of Fields parameters:
Every interface or implementation which operates on a templated
type Fields is evaluated to determine if basic_fields<Allocator>
is more appropriate, and changed if so.
2017-07-20 08:15:27 -07:00
Vinnie Falco
50902c3938 parser requires basic_fields (API Change):
* `parser` is now templated on Allocator

* `parser` only produces messages using `basic_fields<Allocator>`
  as the Fields type.

* message-oriented read and async_read only work on messages
  using basic_fields as the Fields type.

Actions Required:

* Callers using `parser` with Fields types other than basic_fields
  will need to create their own subclass of basic_parser to work
  with their custom fields type.
2017-07-20 08:15:27 -07:00
Vinnie Falco
fc09a4cad1 Tidy up namespaces in examples 2017-07-20 08:15:27 -07:00
Vinnie Falco
c3e2de29ef Doc fixes and tidy 2017-07-20 08:15:27 -07:00
Vinnie Falco
79eb97fbd6 Add server-framework tests 2017-07-20 08:15:27 -07:00
Vinnie Falco
0a4f964811 Tidy up resolver calls 2017-07-20 08:15:27 -07:00
Vinnie Falco
a4a4121444 Add multi_port to server-framework 2017-07-20 08:15:27 -07:00
Vinnie Falco
f6e0e5ef47 Tidy up http-crawl example
fix #513
2017-07-20 08:15:27 -07:00