diff options
Diffstat (limited to 'server/src/server_session.cpp')
-rw-r--r-- | server/src/server_session.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp index 25e7820..64f2cfe 100644 --- a/server/src/server_session.cpp +++ b/server/src/server_session.cpp @@ -190,6 +190,40 @@ void server_session::handle_command(client_msg *msg) send_message(&m); } break; + case CLIENT_MSG_TYPE::CLIENT_MODULES_REQUEST: + { + //TODO: + } + break; + case CLIENT_MSG_TYPE::CLIENT_CORE_INFO_REQUEST: + { + server_msg msg; + msg.set_type(SERVER_MSG_TYPE::SERVER_CORE_INFO_REPLY); + msg.mutable_server_core_info_reply()->set_version(1); + try{ + for(auto it : runtime_config.config_file.get_child("server")) //load server node + { + std::string val = it.second.get_value<std::string>("empty_value"); //TODO: something better here. we need to avoid subtrees and empty vars + if(val == "" || val == "empty_value") + continue; + setting *i = msg.mutable_server_core_info_reply()->add_settings(); + i->set_name(it.first); + //TODO: is it possible to set something better than just list of core setting names ? + } + } + catch(...) + { + //TODO: + } + send_message(&msg); + + } + break; + case CLIENT_MSG_TYPE::CLIENT_DOWNLOADS_LIST_REQUEST: + { + //TODO: + } + break; default: break; } |