aboutsummaryrefslogtreecommitdiff
path: root/client/cmixclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/cmixclient.cpp')
-rw-r--r--client/cmixclient.cpp19
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);
+ }
+ );
}
}