aboutsummaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-11-22 12:57:51 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2016-11-22 12:57:51 +0100
commitfa7a48172a3c9d9c2f96d6f9c05d80f497bc304d (patch)
tree2c56890a3c0f12ca68ec16e120474ab6b0366bf9 /node
parent4471b16ee9961f55086841204f91f5c172d917f6 (diff)
downloadcmix-fa7a48172a3c9d9c2f96d6f9c05d80f497bc304d.tar.gz
cmix-fa7a48172a3c9d9c2f96d6f9c05d80f497bc304d.tar.bz2
cmix-fa7a48172a3c9d9c2f96d6f9c05d80f497bc304d.zip
Added pointer tracing, and fixes memeory leaks within a single run of cmix.
Diffstat (limited to 'node')
-rw-r--r--node/node.cpp5
-rw-r--r--node/node_node.cpp3
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);
}
}