diff --git a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp index 9b08bc15..13eaf9a6 100644 --- a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp +++ b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp index 1ad0d9c8..a22c7b60 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp @@ -871,17 +871,9 @@ zmq_listener::zmq_listener(std::string _ip, uint32_t _zmq) : std::vector zmq_listener::receive_multipart() { std::vector msgs; - int32_t more; - size_t more_size = sizeof(more); - while (true) { - zmq::message_t msg; - socket.recv(&msg, 0); - socket.getsockopt(ZMQ_RCVMORE, &more, &more_size); - - if (!more) - break; - msgs.push_back(std::move(msg)); - } + auto res = zmq::recv_multipart(socket, std::back_inserter(msgs)); + assert(res); + assert(3 == *res); return msgs; } @@ -902,6 +894,7 @@ void zmq_listener::handle_zmq() { const auto block_hash = boost::algorithm::hex(std::string(static_cast(msg[1].data()), msg[1].size())); event_received(block_hash); } catch (zmq::error_t &e) { + elog("handle_zmq recv_multipart exception ${str}", ("str", e.what())); } } }