diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2016-10-13 10:27:47 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2016-10-13 10:27:47 +0200 |
| commit | ad1a9858cd0d15b1090a0977098b98307875f07c (patch) | |
| tree | ebc47df56b6198dad000bc7147354b7912c9fbf7 /client/cmixclient.cpp | |
| parent | 7bca48bc5b5e37a3a8b0b23e57b88d069fa50589 (diff) | |
| download | cmix-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/cmixclient.cpp')
| -rw-r--r-- | client/cmixclient.cpp | 11 |
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(); } |
