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.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp
index 43d8837..113a756 100644
--- a/server/src/server_session.cpp
+++ b/server/src/server_session.cpp
@@ -27,6 +27,8 @@
#include "socket_wraper.h"
#include "client.h"
#include "modules_handler.h"
+#include "event_subscription_event.h"
+#include "event_subscription_repeated.h"
extern std::map<std::string, client> clients;
extern modules_handler *modules;
@@ -280,7 +282,6 @@ bool server_session::handle_command(client_msg *msg)
{
server_msg m;
m.set_type(SERVER_MSG_TYPE::SERVER_AUTH_REPLY);
- //TODO: check for already existing auth token
std::string server_password = runtime_config.config_file.get<std::string>("server.password", "");
if(server_password.empty())
m.mutable_auth_reply()->set_status(true);
@@ -470,6 +471,7 @@ bool server_session::handle_command(client_msg *msg)
d->set_module_name(msg->download_add_request().module_name());
d->set_downloaded(dl.downloaded);
send_message(&m);
+ //TODO: fire event
break;
}
}
@@ -488,6 +490,10 @@ bool server_session::handle_command(client_msg *msg)
{
//TODO: handle error
}
+ else
+ {
+ //TODO: fire event
+ }
break;
}
}
@@ -507,6 +513,10 @@ bool server_session::handle_command(client_msg *msg)
{
//TODO: handle error
}
+ else
+ {
+ //TODO: fire event
+ }
break;
}
}
@@ -522,16 +532,44 @@ bool server_session::handle_command(client_msg *msg)
if(m->get_module_info().name == downloads[i.download_id()].module_name)
{
auto dm = static_cast<module_downloader *>(m);
- if(!dm->delete_download(i.download_id(), i.with_data()));
+ if(!dm->delete_download(i.download_id(), i.with_data()))
{
//TODO: handle error
}
+ else
+ {
+ //TODO: fire event
+ }
break;
}
}
}
}
break;
+ case CLIENT_MSG_TYPE::CLIENT_SUBSCRIPTION_REQUEST:
+ {
+ for(auto i : msg->subscription_request())
+ {
+ switch(i.mode())
+ {
+ case SUBSCRIPTION_MODE::S_MODE_EVENT:
+ {
+ event_subscription_event *e = new event_subscription_event(&i);
+ client_->add_event_subscription(e);
+ }
+ break;
+ case SUBSCRIPTION_MODE::S_MODE_REPEATED:
+ {
+ event_subscription_repeated *e = new event_subscription_repeated(&i);
+ client_->add_event_subscription(e);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ break;
default:
return false;
break;