Add signal connection status 'No such transmission id'

This commit is contained in:
dijunkun
2023-12-04 14:02:58 +08:00
parent 335850766a
commit 2f6a95205b
3 changed files with 24 additions and 8 deletions

View File

@@ -198,7 +198,9 @@ void SignalServer::on_message(websocketpp::connection_hdl hdl,
std::string transmission_id = j["transmission_id"].get<std::string>();
std::string password = j["password"].get<std::string>();
if (transmission_manager_.CheckPassword(password, transmission_id)) {
int ret = transmission_manager_.CheckPassword(password, transmission_id);
if (0 == ret) {
std::vector<std::string> user_id_list =
transmission_manager_.GetAllUserIdOfTransmission(transmission_id);
@@ -208,7 +210,7 @@ void SignalServer::on_message(websocketpp::connection_hdl hdl,
{"status", "success"}};
send_msg(hdl, message);
} else {
} else if (-1 == ret) {
std::vector<std::string> user_id_list;
json message = {{"type", "user_id_list"},
{"transmission_id", transmission_id},
@@ -221,6 +223,20 @@ void SignalServer::on_message(websocketpp::connection_hdl hdl,
// password, transmission_id,
// transmission_manager_.GetPassword(transmission_id));
send_msg(hdl, message);
} else if (-2 == ret) {
std::vector<std::string> user_id_list;
json message = {{"type", "user_id_list"},
{"transmission_id", transmission_id},
{"user_id_list", user_id_list},
{"status", "failed"},
{"reason", "No such transmission id"}};
// LOG_INFO(
// "Incorrect password [{}] for transmission [{}] with password is "
// "[{}]",
// password, transmission_id,
// transmission_manager_.GetPassword(transmission_id));
send_msg(hdl, message);
}

View File

@@ -145,15 +145,15 @@ std::string TransmissionManager::GetUserId(websocketpp::connection_hdl hdl) {
return "";
}
bool TransmissionManager::CheckPassword(const std::string& password,
const std::string& transmission_id) {
int TransmissionManager::CheckPassword(const std::string& password,
const std::string& transmission_id) {
if (transmission_password_list_.find(transmission_id) ==
transmission_password_list_.end()) {
LOG_ERROR("No transmission with id [{}]", transmission_id);
return false;
return -2;
}
return transmission_password_list_[transmission_id] == password;
return transmission_password_list_[transmission_id] == password ? 0 : -1;
}
std::string TransmissionManager::GetPassword(

View File

@@ -28,8 +28,8 @@ class TransmissionManager {
websocketpp::connection_hdl GetWsHandle(const std::string& user_id);
std::string GetUserId(websocketpp::connection_hdl hdl);
bool CheckPassword(const std::string& password,
const std::string& transmission_id);
int CheckPassword(const std::string& password,
const std::string& transmission_id);
std::string GetPassword(const std::string& transmission_id);
private: