diff options
Diffstat (limited to 'node')
| -rw-r--r-- | node/node.cpp | 5 | ||||
| -rw-r--r-- | node/node_node.cpp | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/node/node.cpp b/node/node.cpp index cc5e47a..2310bc1 100644 --- a/node/node.cpp +++ b/node/node.cpp @@ -53,6 +53,10 @@ Node::Node(ListenSettings const& listen_settings, NodeNetworkSettings network_se } Node::~Node() { + for(auto pair : data) { + cmix_ctx.api.free_group_element(pair.second.shared_value); + pair.second.shared_value = nullptr; + } deinitialize(&cmix_ctx); } @@ -267,7 +271,6 @@ bool Node::send_bye(bool got_bye) if(!shutting_down) { next_node.async_send(cmix_proto::Bye()); } - io_service.stop(); return true; } else { next_node.async_send(cmix_proto::Bye()); diff --git a/node/node_node.cpp b/node/node_node.cpp index 0614914..f68b496 100644 --- a/node/node_node.cpp +++ b/node/node_node.cpp @@ -204,14 +204,13 @@ void Node::handle_node_secretkey(cmix_proto::SecretKey const& secret) { std::string share = secret.secret_key(); - set_network_key(&cmix_ctx, secret.secret_key().data(), secret.secret_key().size()); - if(network_settings.is_first) { timer.expires_from_now(boost::posix_time::seconds(4)); timer.async_wait([this](boost::system::error_code const& ec) { start_precomputation(); }); } else { + set_network_key(&cmix_ctx, secret.secret_key().data(), secret.secret_key().size()); next_node.async_send(secret); } } |
