diff options
Diffstat (limited to 'server/src/server_session.cpp')
-rw-r--r-- | server/src/server_session.cpp | 77 |
1 files changed, 39 insertions, 38 deletions
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp index ff49408..2c8687d 100644 --- a/server/src/server_session.cpp +++ b/server/src/server_session.cpp @@ -420,34 +420,35 @@ bool server_session::handle_command(client_msg *msg) //draft implementation, need a lot of optimizations server_msg m; m.set_type(SERVER_MSG_TYPE::SERVER_DOWNLOADS_LIST_REPLY); - for(auto i : downloads) - { - server_download_reply *r = m.add_downloads(); - download *d = r->mutable_download(); - d->set_id(i.first); //set core_id for later access - d->set_module_name(i.second.module_name); - module_base *module = nullptr; - for(auto dm : modules->get_downloader_modules()) - { + for(auto i : downloads) + { + server_download_reply *r = m.add_downloads(); + download *d = r->mutable_download(); + d->set_id(i.first); //set core_id for later access + d->set_module_name(i.second.module_name); + module_base *module = nullptr; + for(auto dm : modules->get_downloader_modules()) + { if(dm->get_module_info().name == i.second.module_name) { module = dm; break; } - } - if(!module) - { + } + if(!module) + { //downloader module not found, this should be a fatal error continue; - } - module_downloader *dm = static_cast<module_downloader*>(module); - download_s ds = dm->get_download(i.second.module_id); - d->set_downloaded(ds.downloaded); - d->set_size(ds.size); - d->set_name(ds.name); - } - send_message(&m); - return true; + } + module_downloader *dm = static_cast<module_downloader*>(module); + download_s ds = dm->get_download(i.second.module_id); + d->set_downloaded(ds.downloaded); + d->set_size(ds.size); + d->set_name(ds.name); + d->set_state(ds.state); + } + send_message(&m); + return true; } break; case CLIENT_MSG_TYPE::CLIENT_DOWNLOAD_ADD: @@ -459,24 +460,24 @@ bool server_session::handle_command(client_msg *msg) std::map<int, std::string> params; for(auto p : msg->download_add_request().params()) params[p.id()] = p.value(); - auto dm = static_cast<module_downloader *>(i); - int download_id = dm->add_download(params); - int core_id = downloads.size(); - downloads[core_id].module_id = download_id; - downloads[core_id].module_name = msg->download_add_request().module_name(); - server_msg m; - m.set_type(SERVER_MSG_TYPE::SERVER_DOWNLOAD_INFO_REPLY); - download *d = m.mutable_download()->mutable_download(); - d->set_id(core_id); - auto dl = dm->get_download(download_id); - d->set_name(dl.name); - d->set_size(dl.size); - d->set_module_name(msg->download_add_request().module_name()); - d->set_downloaded(dl.downloaded); - send_message(&m); - + auto dm = static_cast<module_downloader *>(i); + int download_id = dm->add_download(params); + int core_id = downloads.size(); + downloads[core_id].module_id = download_id; + downloads[core_id].module_name = msg->download_add_request().module_name(); + server_msg m; + m.set_type(SERVER_MSG_TYPE::SERVER_DOWNLOAD_INFO_REPLY); + download *d = m.mutable_download()->mutable_download(); + d->set_id(core_id); + auto dl = dm->get_download(download_id); + d->set_name(dl.name); + d->set_size(dl.size); + d->set_state(dl.state); + d->set_module_name(msg->download_add_request().module_name()); + d->set_downloaded(dl.downloaded); + send_message(&m); } - } + } } break; default: |