Unverified Commit 21e5b8a2 authored by Oleh Nikolaiev's avatar Oleh Nikolaiev Committed by GitHub

Merge pull request #384 from skalenetwork/bug/SKALE-5014-crash-on-bad-socket-type

SKALE-5014 change exit to exception on bad socket
parents 188bf200 683be22d
...@@ -211,25 +211,27 @@ pair <string, shared_ptr<zmq::message_t>> ZMQServer::receiveMessage() { ...@@ -211,25 +211,27 @@ pair <string, shared_ptr<zmq::message_t>> ZMQServer::receiveMessage() {
if (!socket->recv(identity.get())) { if (!socket->recv(identity.get())) {
checkForExit(); checkForExit();
// something terrible happened // bad socket type
spdlog::error("Fatal error: socket->recv(&identity) returned false. Exiting."); spdlog::error("Error: socket->recv(&identity) returned false.");
exit(-11); throw SGXException(ZMQ_SERVER_ERROR, "Error: socket->recv(&identity) returned false.");
} }
if (!identity->more()) { if (!identity->more()) {
checkForExit(); checkForExit();
// something terrible happened // bad socket type
spdlog::error("Fatal error: zmq_msg_more(identity) returned false. Exiting."); spdlog::error("Error: zmq_msg_more(identity) returned false.");
exit(-12); throw SGXException(ZMQ_SERVER_ERROR, "Error: zmq_msg_more(identity) returned false.");
} }
auto id = string((char *) identity->data(), identity->size());
spdlog::debug("Received identity via ZMQ server: {}", id);
auto reqMsg = make_shared<zmq::message_t>(); auto reqMsg = make_shared<zmq::message_t>();
if (!socket->recv(reqMsg.get(), 0)) { if (!socket->recv(reqMsg.get(), 0)) {
checkForExit(); checkForExit();
// something terrible happened // bad socket type
spdlog::error("Fatal error: socket.recv(&reqMsg, 0) returned false. Exiting"); spdlog::error("Error: socket.recv(&reqMsg, 0) returned false.");
exit(-13); throw SGXException(ZMQ_SERVER_ERROR, "Error: socket.recv(&reqMsg, 0) returned false.");
} }
auto result = string((char *) reqMsg->data(), reqMsg->size()); auto result = string((char *) reqMsg->data(), reqMsg->size());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment