Merge branch 'bug/issue111' into 'develop'
zmq::recv_multipart See merge request PBSA/peerplays!65
This commit is contained in:
commit
65cc4a4df2
2 changed files with 7 additions and 11 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
#include <graphene/peerplays_sidechain/sidechain_net_handler.hpp>
|
#include <graphene/peerplays_sidechain/sidechain_net_handler.hpp>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <zmq.hpp>
|
#include <zmq_addon.hpp>
|
||||||
|
|
||||||
#include <boost/signals2.hpp>
|
#include <boost/signals2.hpp>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -871,16 +871,11 @@ zmq_listener::zmq_listener(std::string _ip, uint32_t _zmq) :
|
||||||
std::vector<zmq::message_t> zmq_listener::receive_multipart() {
|
std::vector<zmq::message_t> zmq_listener::receive_multipart() {
|
||||||
std::vector<zmq::message_t> msgs;
|
std::vector<zmq::message_t> msgs;
|
||||||
|
|
||||||
int32_t more;
|
auto res = zmq::recv_multipart(socket, std::back_inserter(msgs));
|
||||||
size_t more_size = sizeof(more);
|
FC_ASSERT(res);
|
||||||
while (true) {
|
if (3 != *res) {
|
||||||
zmq::message_t msg;
|
elog("zmq::recv_multipart returned: ${res}", ("res", *res));
|
||||||
socket.recv(&msg, 0);
|
throw zmq::error_t();
|
||||||
socket.getsockopt(ZMQ_RCVMORE, &more, &more_size);
|
|
||||||
|
|
||||||
if (!more)
|
|
||||||
break;
|
|
||||||
msgs.push_back(std::move(msg));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return msgs;
|
return msgs;
|
||||||
|
|
@ -902,6 +897,7 @@ void zmq_listener::handle_zmq() {
|
||||||
const auto block_hash = boost::algorithm::hex(std::string(static_cast<char *>(msg[1].data()), msg[1].size()));
|
const auto block_hash = boost::algorithm::hex(std::string(static_cast<char *>(msg[1].data()), msg[1].size()));
|
||||||
event_received(block_hash);
|
event_received(block_hash);
|
||||||
} catch (zmq::error_t &e) {
|
} catch (zmq::error_t &e) {
|
||||||
|
elog("handle_zmq recv_multipart exception ${str}", ("str", e.what()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue