aboutsummaryrefslogtreecommitdiff
path: root/src/control_interface.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2018-11-30 18:15:57 +0100
committerFelix Morgner <felix.morgner@gmail.com>2018-11-30 18:15:57 +0100
commit1ba42445a5a97e1b09fc9671602594d3e3695063 (patch)
tree320cc08bb94620a7978ca11a948ecca40b09a6e4 /src/control_interface.cpp
parent7d9300894ad1a6e2954332188fe0045e32bc459a (diff)
downloadwanda-1ba42445a5a97e1b09fc9671602594d3e3695063.tar.xz
wanda-1ba42445a5a97e1b09fc9671602594d3e3695063.zip
core: extract message constants
Diffstat (limited to 'src/control_interface.cpp')
-rw-r--r--src/control_interface.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/control_interface.cpp b/src/control_interface.cpp
index 92d5def..85d1dca 100644
--- a/src/control_interface.cpp
+++ b/src/control_interface.cpp
@@ -100,14 +100,20 @@ void control_interface::on_received(control_connection::pointer connection, mess
return;
}
- switch (connection->current_state())
+ if (message.source != message_source_controller)
{
- case control_connection::state::fresh:
- if (message.command == "HELLO")
- {
- connection->send({"D", "HELLO", "1.0.0"});
- connection->update(control_connection::state::established);
- }
+ // TODO: Handle illegal message source
+ return;
+ }
+
+ if (auto state = connection->current_state(); message.command == message_command_hello && state == control_connection::state::fresh)
+ {
+ connection->send({message_source_daemon, message_command_hello, message_argument_hello});
+ connection->update(control_connection::state::established);
+ }
+ else
+ {
+ // TODO: Handle unexpected message
}
}