Unverified Commit d1162820 authored by kladko's avatar kladko

bug/SKALE-3662 Adding libzmq

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