* feature: layers of connections
* feature: upgrade layers of connection
* fix: tests
* feature: test of layers upgrade
* refactor: enable disabled upgrader tests
* feature: sha-1 hash
* feature: websocket layer
* fix: read-buffer extending
* feature: decide layers for connection upgrade by provided multiaddress
* refactor: combine regular and websocket echo-client/-server to single one
* refactor: rename peer::Protocol to peer::ProtocolName
* refactor: implement addressToBytes, as replacement addressToHex
* refactor: mark addressToHex as deprecated
* feature: extend ConversionError
* fix: multiaddress manipulations
* feature: dummy protocols for tests
* fix: tests of converters
* fix: collision in DI
* refactor: update outcome macros for tests
* fix: connection upgrader in part of layers
* fix: ws read-writer in case big data fragmented by frames
* experiment: add delay of sending jumbo message, to give a chance for Id-protocol to end his work
* experiment: log difference sent and received data for analyse
* feature: control frames (ping/pong/close)
* fix: sending huge portions of data
* fix: echo sessions
* feature: optional hex dump in dumpBin
* fix: echo client
* update: hunter package manager
* fix: hardcoded request and response in http-to-ws upgraded
* fix: add ws version header
* fix: reduce length of ws-key header
* fix: make ws-header check case-insensitive
* fix: use locale independent predicate for ci-compare
* fix: use boost endian conversion instead endian macros
Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com>
Fix to prevent segmentation fault when receiving empty protobuf message by checking if returned
shared pointer contains null and if so, just calling the callback.
TCP Connections are stored in shared ptrs and are leaking somewhere, so that when some errors happens while establishing a connection we might end up in a situation when we don't hold any references to the connection in the client code, but the socket for this connection is still open. This can easily lead to open sockets piling up to the point where the process is killed due to running out of file descriptors. This patch closes the socket on error, however the TcpConnection objects will still remain in memory, which will have to be fixed with more based refactoring.
* Noise::write now reports the correct amount of bytes
* Fix data handling in Noise::read() & Noise::readSome()
Signed-off-by: Igor Egorov <igor@soramitsu.co.jp>
* gossip: moved to new scheduler and chrono::milliseconds
* minor update in address repo impl
* gossip update WIP (peer ctx expiration)
* gossip forgetting peers
* gossip updating addresses in repo
* hotfix about improper reschedulting in gossip core
* lowered log level of yamux ping messages sending
* review-related minor changes
* gossip: lazy protobuf serializing and deep cleanup
* sublogger fix
* memory stabilizing changes in gossip
* little fix due to merge
* clang-tidy vs gsl::span + remove something ambigous in yamuxed connection
* abandoned streams rst and cleanup in yamuxed connections
* another gsl::span vs clang-tidy delivery delay