aboutsummaryrefslogtreecommitdiff
path: root/src/control_interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/control_interface.cpp')
-rw-r--r--src/control_interface.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/control_interface.cpp b/src/control_interface.cpp
index 29f3f4f..92d5def 100644
--- a/src/control_interface.cpp
+++ b/src/control_interface.cpp
@@ -79,7 +79,6 @@ void control_interface::perform_accept()
auto [connection, inserted] = m_connections.insert(make_control_connection(std::move(m_socket)));
if (inserted)
{
- m_states[*connection] = state::fresh;
(*connection)->add(this);
(*connection)->start();
}
@@ -95,19 +94,19 @@ void control_interface::on_close(control_connection::pointer connection)
void control_interface::on_received(control_connection::pointer connection, message message)
{
- if (m_states.find(connection) == m_states.cend())
+ if (m_connections.find(connection) == m_connections.cend())
{
// TODO: Handle unknown connection
return;
}
- switch (m_states[connection])
+ switch (connection->current_state())
{
- case state::fresh:
+ case control_connection::state::fresh:
if (message.command == "HELLO")
{
- m_states[connection] = state::greeted;
connection->send({"D", "HELLO", "1.0.0"});
+ connection->update(control_connection::state::established);
}
}
}