summaryrefslogtreecommitdiff
path: root/server/src/server_session.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/server_session.cpp')
-rw-r--r--server/src/server_session.cpp30
1 files changed, 27 insertions, 3 deletions
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp
index 64f2cfe..3affc5f 100644
--- a/server/src/server_session.cpp
+++ b/server/src/server_session.cpp
@@ -26,8 +26,10 @@
#include "utilities.h"
#include "socket_wraper.h"
#include "client.h"
+#include "modules_handler.h"
extern std::map<std::string, client> clients;
+extern modules_handler *modules;
@@ -183,8 +185,6 @@ void server_session::handle_command(client_msg *msg)
}
else
client_ = i->second;
-
-
//set auth token
}
send_message(&m);
@@ -192,11 +192,35 @@ void server_session::handle_command(client_msg *msg)
break;
case CLIENT_MSG_TYPE::CLIENT_MODULES_REQUEST:
{
- //TODO:
+ server_msg msg;
+ msg.set_type(SERVER_MSG_TYPE::SERVER_MODULES_REPLY);
+ for(auto i : modules->get_downloader_modules())
+ {
+ module_info *mi = msg.add_server_modules_reply();
+ mi->set_name(i->get_module_info().name);
+ mi->set_description(i->get_module_info().description);
+ mi->set_version(i->get_module_info().version);
+ for(auto ms : i->get_runtime_module_settings())
+ {
+ setting *msi = mi->add_settings();
+ msi->set_name(ms.first);
+ msi->set_value(ms.second.value);
+ for(auto di : ms.second.info.dependencies)
+ msi->mutable_info()->add_dependencies(di);
+ for(auto bi : ms.second.info.blockers)
+ msi->mutable_info()->add_blockers(bi);
+ msi->mutable_info()->set_default_value(ms.second.info.default_value);
+ msi->mutable_info()->set_minimal_value(ms.second.info.minimal_value);
+ msi->mutable_info()->set_maximal_value(ms.second.info.maximal_value);
+ msi->mutable_info()->set_description(ms.second.info.description);
+ }
+ }
+ send_message(&msg);
}
break;
case CLIENT_MSG_TYPE::CLIENT_CORE_INFO_REQUEST:
{
+ //TODO: settings values here
server_msg msg;
msg.set_type(SERVER_MSG_TYPE::SERVER_CORE_INFO_REPLY);
msg.mutable_server_core_info_reply()->set_version(1);