~ if (remaining_length_ < to_read)
~ to_read = remaining_length_;
+ adaptor_.socket().async_read_some(boost::asio::buffer(buffer_, static_cast<std::size_t>(to_read))
- size_t to_read = buffer_.size();
~ if (remaining_length_ < to_read)
~ to_read = remaining_length_;
- adaptor_.socket().async_read_some( boost::asio::buffer(buffer_, to_read)
~ Changed 'to_read' from [std::size_t] to [std::uint64_t],
hence when 'remaining_length_' [std::uint64_t] is assigned in 'to_read' no data is lossed.
When boost::asio::buffer is created 'to_read' is casted back to [std::size_t] explicitly truncating data.
It seems to be the correct behavior to choose fixed 'network side' types.
- buf[1] += size;
~ Warning was triggered by 'size' being std::size_t and lossing data by implicit casting to a narrower type.
This behavior seems correct, then we can explicit cast it.
- disable crow debug mode by default
- expose `loglevel` method on `App` to change the logging level easily
- add a startup message that guides how to change the logging level