Unverified Commit d1162820 authored by kladko's avatar kladko

bug/SKALE-3662 Adding libzmq

parent a130084d
......@@ -34,6 +34,8 @@ Json::Value ECDSASignRspMessage::process() {
string ECDSASignRspMessage::getSignature() {
string r = getStringRapid( "signature_r" );
string v = getStringRapid( "signature_v" );
string s = getStringRapid("signature_s" );
......
......@@ -113,7 +113,7 @@ void exitZMQServer() {
if (doExit) {
spdlog::info("Exiting zmq server ...");
delete zmqServer;
zmqServer->exitWorkers();
spdlog::info("Exited zmq server ...");
zmqServer = nullptr;
}
......
......@@ -67,7 +67,6 @@ public:
string ecdsaSignMessageHash(int base, const std::string &keyName, const std::string &messageHash);
};
......
......@@ -63,8 +63,8 @@ void ZMQServer::run() {
try {
for (int i = 0; i < kMaxThread; ++i) {
worker.push_back(new ServerWorker(ctx_, ZMQ_DEALER));
worker_thread.push_back(new std::thread(std::bind(&ServerWorker::work, worker[i])));
worker.push_back(make_shared<ServerWorker>(ctx_, ZMQ_DEALER));
worker_thread.push_back(make_shared<std::thread>(std::bind(&ServerWorker::work, worker[i])));
}
} catch (std::exception &e) {
spdlog::error("Could not create zmq server workers:{} ", e.what());
......@@ -75,14 +75,21 @@ void ZMQServer::run() {
try {
zmq::proxy(static_cast<void *>(frontend_), static_cast<void *>(backend_), nullptr);
} catch (exception& _e) {
spdlog::info("Exiting zmq server {}", _e.what());
spdlog::info("Error, exiting zmq server ... {}", _e.what());
return;
} catch (...) {
spdlog::info("Exiting zmq server");
spdlog::info("Error, exiting zmq server ...");
return;
}
}
void ZMQServer::exitWorkers() {
spdlog::info("Emptying threads ...");
worker_thread.empty();
spdlog::info("Emptying workers ...");
worker.empty();
spdlog::info("Emptied workers ...");
}
......@@ -45,7 +45,6 @@ class ZMQServer {
public:
ZMQServer();
atomic<bool> isExitRequested;
enum {
......@@ -54,13 +53,15 @@ public:
void run();
void exitWorkers();
private:
zmq::context_t ctx_;
zmq::socket_t frontend_;
zmq::socket_t backend_;
std::vector<ServerWorker *> worker;
std::vector<std::thread *> worker_thread;
std::vector<shared_ptr<ServerWorker> > worker;
std::vector<shared_ptr<std::thread>> worker_thread;
};
......
......@@ -1132,7 +1132,7 @@ TEST_CASE_METHOD(TestFixtureNoReset, "ZMQ-ecdsa", "[zmq-ecdsa-run]") {
string ip = ZMQ_IP;
ZMQClient client(ip, ZMQ_PORT);
auto client = make_shared<ZMQClient>(ip, ZMQ_PORT);
string keyName = "";
......@@ -1150,10 +1150,15 @@ TEST_CASE_METHOD(TestFixtureNoReset, "ZMQ-ecdsa", "[zmq-ecdsa-run]") {
try {
PRINT_SRC_LINE
auto sig = client.ecdsaSignMessageHash(16, keyName, SAMPLE_HASH);
auto sig = client->ecdsaSignMessageHash(16, keyName, SAMPLE_HASH);
REQUIRE(sig.size() > 10);
cerr << sig << endl;
} catch (...) {
sleep(1000);
client = nullptr;
sleep(10000);
}
}
......
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