summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client-qt/udm-client-qt/udm_main.cpp22
-rw-r--r--docs/BUGS10
-rw-r--r--server/src/server_session.cpp4
3 files changed, 33 insertions, 3 deletions
diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp
index fcd07ff..48ff7c8 100644
--- a/client-qt/udm-client-qt/udm_main.cpp
+++ b/client-qt/udm-client-qt/udm_main.cpp
@@ -251,6 +251,7 @@ void udm_main::client_connect_ssl(QString &host, QString &password, int port, QS
void udm_main::server_message_received(server_msg msg)
{
+ BOOST_LOG_TRIVIAL(trace)<<"recieved server message\n"<<msg.DebugString();
switch(msg.type())
{
case SERVER_MSG_TYPE::SERVER_AUTH_REPLY:
@@ -303,6 +304,7 @@ void udm_main::server_message_received(server_msg msg)
s->set_module_name("");
s->mutable_download_state_change()->add_states(SDS_STARTED); //subscript to download started event
s->mutable_download_state_change()->add_states(SDS_STOPPED); //subscript to download stopped event
+ s->mutable_download_state_change()->add_states(SDS_DELETED); //subscript to download deleted event
session->send_message(msg);
}
@@ -373,10 +375,26 @@ void udm_main::server_message_received(server_msg msg)
//TODO:
break;
case SUBSCRIPTION_DOWNLOAD_STATE::SDS_DELETED:
+ {
+ bool found = false;
+ unsigned int pos = 0;
+ for(auto d = downloads.begin(), end = downloads.end(); d != end; ++d, ++pos)
+ {
+ if(d->id() == i.download_id())
+ {
+ found = true;
+ downloads.erase(d);
+ mdl_downloads->removeRows(pos, 1);
+ break;
+ }
+ if(!found)
+ BOOST_LOG_TRIVIAL(error)<<"error: deleted download which is not exist\n"<<msg.DebugString();
+ }
+ }
//TODO:
break;
default:
- BOOST_LOG_TRIVIAL(debug)<<"error: unhandled download state in server message message\n"<<msg.DebugString();
+ BOOST_LOG_TRIVIAL(error)<<"error: unhandled download state in server message message\n"<<msg.DebugString();
break;
}
}
@@ -384,7 +402,7 @@ void udm_main::server_message_received(server_msg msg)
}
break;
default:
- BOOST_LOG_TRIVIAL(debug)<<"error: unhandled server message\n"<<msg.DebugString();
+ BOOST_LOG_TRIVIAL(debug)<<"unhandled server message\n"<<msg.DebugString();
break;
}
}
diff --git a/docs/BUGS b/docs/BUGS
new file mode 100644
index 0000000..c459fad
--- /dev/null
+++ b/docs/BUGS
@@ -0,0 +1,10 @@
+downloadser modules:
+ curl:
+ crash in curl_download::~curl_download() // curl_download.cpp:69
+
+
+
+
+
+client-qt:
+ crash on exit if connected to server \ No newline at end of file
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp
index 2d4e1e4..a79d5b6 100644
--- a/server/src/server_session.cpp
+++ b/server/src/server_session.cpp
@@ -550,6 +550,7 @@ bool server_session::handle_command(client_msg *msg)
}
else
{
+ downloads.erase(i.download_id());
auto dsc = s_msg.add_download_state_changes();
dsc->set_download_id(i.download_id());
dsc->set_state(SUBSCRIPTION_DOWNLOAD_STATE::SDS_DELETED);
@@ -681,7 +682,8 @@ void server_session::fire_event(SUBSCRIPTION_TYPE type, server_msg &msg)
*sc2 = sc;
}
}
- send_message(&filtered_message);
+ if(filtered_message.download_state_changes_size())
+ send_message(&filtered_message);
}
default:
break;