diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/cmixclient.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/client/cmixclient.cpp b/client/cmixclient.cpp index f8ecf7d..d7e1387 100644 --- a/client/cmixclient.cpp +++ b/client/cmixclient.cpp @@ -63,21 +63,26 @@ void CMixClient::handle_key_exchange(size_t node_id, cmix_proto::KeyExchange con &secret_values.at(node_id) ); - size_t len = get_group_element_array_size(&cmix_ctx); - std::vector<char> vec(len, '\0'); - std::string s = "abcdefghijklmnopqrstuvwxyz"; - std::copy_n(s.begin(), s.size(), vec.begin() + 1); - if(std::all_of(shared_values.begin(), shared_values.end(), [](auto const& value){return value != nullptr;})) { + size_t len = get_group_element_array_size(&cmix_ctx); + std::vector<char> vec(len, '\0'); + std::string s = "\1"; + std::copy_n(s.begin(), s.size(), vec.begin() + 1); + cmix_proto::UserMessage message; message.mutable_m()->resize(len); blind_message(&cmix_ctx, &(*message.mutable_m())[0], vec.data(), shared_values.data(), shared_values.size()); + BOOST_LOG_TRIVIAL(trace) << "sending UserMessage: " << message.ShortDebugString(); network_connections.at(0).async_send(message); - cmix_proto::Bye bye; - network_connections.at(node_id).async_send(bye); + size_t last_node_id = network_details.node_details.size() - 1; + network_connections.at(last_node_id).async_receive( + [this, last_node_id](cmix_proto::CMixMessage const& message) { + handle_message(last_node_id, message); + } + ); } } |
