aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-10-13 10:27:47 +0200
committerDennis Brentjes <d.brentjes@gmail.com>2016-10-13 10:27:47 +0200
commitad1a9858cd0d15b1090a0977098b98307875f07c (patch)
treeebc47df56b6198dad000bc7147354b7912c9fbf7 /client
parent7bca48bc5b5e37a3a8b0b23e57b88d069fa50589 (diff)
downloadcmix-ad1a9858cd0d15b1090a0977098b98307875f07c.tar.gz
cmix-ad1a9858cd0d15b1090a0977098b98307875f07c.tar.bz2
cmix-ad1a9858cd0d15b1090a0977098b98307875f07c.zip
Added a stop condition for the client,
When all the nodes have send a bye to the client, the client will shut down.
Diffstat (limited to 'client')
-rw-r--r--client/cmixclient.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/client/cmixclient.cpp b/client/cmixclient.cpp
index 1ffd904..933ad0e 100644
--- a/client/cmixclient.cpp
+++ b/client/cmixclient.cpp
@@ -43,14 +43,19 @@ void CMixClient::handle_message(int node_id, cmix_proto::CMixMessage message)
handle_key_exchange(node_id, *message.mutable_keyexchange());
return;
}
+ case cmix_proto::CMixMessage::ContentsCase::kBye: {
+ network_connections.at(node_id).close();
+ if(std::all_of(network_connections.begin(), network_connections.end(), [](SenderReceiver const& c) { return c.is_open(); })) {
+ break;
+ } else {
+ return;
+ }
+ }
default: {
BOOST_LOG_TRIVIAL(error) << "Received unknown message";
}
}
- for(auto&& connection : network_connections) {
- connection.close();
- }
io_service.stop();
}