aboutsummaryrefslogtreecommitdiff
path: root/node/node_client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/node_client.cpp')
-rw-r--r--node/node_client.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/node/node_client.cpp b/node/node_client.cpp
index f60c48d..baf4251 100644
--- a/node/node_client.cpp
+++ b/node/node_client.cpp
@@ -10,7 +10,7 @@ void Node::handle_client_keyexchange(ClientConnections::key_type handle, cmix_pr
nke.mutable_public_key()->resize(len);
nke.mutable_value()->resize(len);
- key_exchange_responder(&cmix_ctx, &d.shared_value.shared, &(*nke.mutable_public_key())[0], &(*nke.mutable_value())[0], ke.public_key().data(), ke.value().data());
+ key_exchange_responder(&cmix_ctx, &d.shared_value, &(*nke.mutable_public_key())[0], &(*nke.mutable_value())[0], ke.public_key().data(), ke.value().data());
data[handle] = d;
@@ -23,6 +23,14 @@ void Node::handle_client_bye(ClientConnections::key_type handle, cmix_proto::Bye
clients.erase(handle);
}
+void Node::handle_client_usermessage(ClientConnections::key_type handle, cmix_proto::UserMessage const& um) {
+ if(!network_settings.is_first) {
+ BOOST_LOG_TRIVIAL(warning) << "Received a user message but I'm not the first node, ignoring.";
+ return;
+ }
+ messages[handle].push(um.m());
+}
+
void Node::handle_client_message(ClientConnections::key_type handle, cmix_proto::CMixMessage message)
{
switch(message.contents_case()) {
@@ -36,6 +44,11 @@ void Node::handle_client_message(ClientConnections::key_type handle, cmix_proto:
handle_client_bye(handle, message.bye());
return;
}
+ case cmix_proto::CMixMessage::ContentsCase::kUsermessage: {
+ BOOST_LOG_TRIVIAL(trace) << "Handling user message";
+ handle_client_usermessage(handle, message.usermessage());
+ break;
+ }
default: {
BOOST_LOG_TRIVIAL(error) << "handle_client_message: CMixMessage contains unknown contents.";
}