修复了Linux下的bug,优化了部分逻辑

This commit is contained in:
Msy-msu 2023-01-09 15:55:39 +08:00
parent f599b7d1ac
commit 9e4da797f3
4 changed files with 24 additions and 17 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 6.0.2, 2023-01-08T11:38:39. --> <!-- Written by QtCreator 6.0.2, 2023-01-09T15:53:28. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

View File

@ -14,17 +14,32 @@ DataManager::DataManager(QObject *parent)
void DataManager::disconnect_from_cln(QTcpSocket *sock) void DataManager::disconnect_from_cln(QTcpSocket *sock)
{ {
qDebug() << "删除之前的数据" <<p_this->online_name_list;
for (int i = 0; i < p_this->online_socket_list.length(); i++)
{
if (p_this->online_socket_list.at(i) == sock)
{
p_this->online_name_list.removeAt(i);
p_this->online_socket_list.removeAt(i);
break;
}
}
qDebug() << "删除之后的数据" << p_this->online_name_list;
p_this->update_namelist(sock);
} }
void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock) void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock)
{ {
QByteArray data_decrypt = p_this->protocol->data_decrypt(data); QByteArray data_decrypt = p_this->protocol->data_decrypt(data);
qDebug() << data_decrypt;
QList<QByteArray> list = data_decrypt.split('\n'); QList<QByteArray> list = data_decrypt.split('\n');
qDebug() << list;
for (int i = 0; i < list.count(); i++) for (int i = 0; i < list.count(); i++)
{ {
QJsonDocument json_data = QJsonDocument::fromJson(list[i]); QJsonDocument json_data = QJsonDocument::fromJson(list[i]);
if (json_data["type"] == "message") if (json_data["type"] == "message")
{ {
qDebug() << json_data;
if (json_data["to_user"].toString().isEmpty()) if (json_data["to_user"].toString().isEmpty())
{ {
qDebug() << "收到群发类型的信息,将转发"; qDebug() << "收到群发类型的信息,将转发";
@ -148,18 +163,7 @@ void DataManager::recv_from_cln(QByteArray &data, QTcpSocket *sock)
qDebug() << "用户注销失败"; qDebug() << "用户注销失败";
return; return;
} }
qDebug() << "删除之前的数据" <<p_this->online_name_list;
for (int i = 0; i < p_this->online_name_list.length(); i++)
{
if (p_this->online_name_list.at(i) == username)
{
p_this->online_name_list.removeAt(i);
p_this->online_socket_list.removeAt(i);
break;
}
}
qDebug() << "删除之后的数据" << p_this->online_name_list;
p_this->update_namelist(sock);
} }
else if (json_data["action"] == "update_namelist") else if (json_data["action"] == "update_namelist")
{ {

View File

@ -117,11 +117,11 @@ QPair<Protocol::data_types,QJsonObject> Protocol::data_parser(QByteArray data)
return qMakePair(RESPONSE,json_data.object()); return qMakePair(RESPONSE,json_data.object());
} }
QByteArray Protocol::XOR_En_Decrypt(QString src) QByteArray Protocol::XOR_En_Decrypt(QByteArray src)
{ {
QByteArray result; QByteArray result;
for(auto &i:src) for(auto &i:src)
result.append(i.toLatin1() ^ cipher_word); result.append(i ^ cipher_word);
return result; return result;
} }
@ -155,8 +155,11 @@ QByteArray Protocol::data_encrypt(QByteArray src)
QByteArray Protocol::data_decrypt(QByteArray src) QByteArray Protocol::data_decrypt(QByteArray src)
{ {
qDebug() << QString(src);
QByteArray result = XOR_En_Decrypt(src); QByteArray result = XOR_En_Decrypt(src);
//qDebug() << result;
result = Upper_Lower_En_Decrypt(result); result = Upper_Lower_En_Decrypt(result);
//qDebug() << result;
return QByteArray::fromBase64(result); return QByteArray::fromBase64(result);
} }

View File

@ -51,7 +51,7 @@ private:
explicit Protocol(QObject *parent = nullptr); explicit Protocol(QObject *parent = nullptr);
~Protocol(); ~Protocol();
QByteArray data_builder(QList<any_types> &args); QByteArray data_builder(QList<any_types> &args);
QByteArray XOR_En_Decrypt(QString src); QByteArray XOR_En_Decrypt(QByteArray src);
QByteArray Upper_Lower_En_Decrypt(QString src); QByteArray Upper_Lower_En_Decrypt(QString src);
signals: signals: