apparently ipids are different
This commit is contained in:
parent
c673339653
commit
ae0d308ec7
@ -42,10 +42,9 @@ class AOClient : public QObject {
|
|||||||
AOClient(Server* p_server, QTcpSocket* p_socket, QObject* parent = nullptr, int user_id = 0);
|
AOClient(Server* p_server, QTcpSocket* p_socket, QObject* parent = nullptr, int user_id = 0);
|
||||||
~AOClient();
|
~AOClient();
|
||||||
|
|
||||||
QString getHwid();
|
|
||||||
QString getIpid();
|
|
||||||
Server* getServer();
|
Server* getServer();
|
||||||
void setHwid(QString p_hwid);
|
QString getIpid();
|
||||||
|
void calculateIpid();
|
||||||
|
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ AOClient::AOClient(Server* p_server, QTcpSocket* p_socket, QObject* parent, int
|
|||||||
current_area = 0;
|
current_area = 0;
|
||||||
current_char = "";
|
current_char = "";
|
||||||
remote_ip = p_socket->peerAddress();
|
remote_ip = p_socket->peerAddress();
|
||||||
|
calculateIpid();
|
||||||
is_partial = false;
|
is_partial = false;
|
||||||
last_wtce_time = 0;
|
last_wtce_time = 0;
|
||||||
last_message = "";
|
last_message = "";
|
||||||
@ -274,22 +275,17 @@ void AOClient::sendPacket(QString header)
|
|||||||
sendPacket(AOPacket(header, {}));
|
sendPacket(AOPacket(header, {}));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AOClient::getHwid() { return hwid; }
|
void AOClient::calculateIpid()
|
||||||
|
|
||||||
void AOClient::setHwid(QString p_hwid)
|
|
||||||
{
|
{
|
||||||
// TODO: add support for longer hwids?
|
// TODO: add support for longer ipids?
|
||||||
// This reduces the (fairly high) chance of
|
// This reduces the (fairly high) chance of
|
||||||
// birthday paradox issues arising. However,
|
// birthday paradox issues arising. However,
|
||||||
// typing more than 8 characters might be a
|
// typing more than 8 characters might be a
|
||||||
// bit cumbersome.
|
// bit cumbersome.
|
||||||
hwid = p_hwid;
|
|
||||||
|
|
||||||
QCryptographicHash hash(
|
QCryptographicHash hash(QCryptographicHash::Md5); // Don't need security, just hashing for uniqueness
|
||||||
QCryptographicHash::Md5); // Don't need security, just
|
|
||||||
// hashing for uniqueness
|
hash.addData(remote_ip.toString().toUtf8());
|
||||||
QString concat_ip_id = remote_ip.toString() + p_hwid;
|
|
||||||
hash.addData(concat_ip_id.toUtf8());
|
|
||||||
|
|
||||||
ipid = hash.result().toHex().right(8); // Use the last 8 characters (4 bytes)
|
ipid = hash.result().toHex().right(8); // Use the last 8 characters (4 bytes)
|
||||||
}
|
}
|
||||||
|
@ -26,9 +26,9 @@ void AOClient::pktDefault(AreaData* area, int argc, QStringList argv, AOPacket p
|
|||||||
|
|
||||||
void AOClient::pktHardwareId(AreaData* area, int argc, QStringList argv, AOPacket packet)
|
void AOClient::pktHardwareId(AreaData* area, int argc, QStringList argv, AOPacket packet)
|
||||||
{
|
{
|
||||||
setHwid(argv[0]);
|
hwid = argv[0];
|
||||||
if(server->db_manager->isHDIDBanned(getHwid())) {
|
if(server->db_manager->isHDIDBanned(hwid)) {
|
||||||
sendPacket("BD", {server->db_manager->getBanReason(getHwid())});
|
sendPacket("BD", {server->db_manager->getBanReason(hwid)});
|
||||||
socket->close();
|
socket->close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -88,7 +88,7 @@ void AOClient::pktRequestMusic(AreaData* area, int argc, QStringList argv, AOPac
|
|||||||
|
|
||||||
void AOClient::pktLoadingDone(AreaData* area, int argc, QStringList argv, AOPacket packet)
|
void AOClient::pktLoadingDone(AreaData* area, int argc, QStringList argv, AOPacket packet)
|
||||||
{
|
{
|
||||||
if (getHwid() == "") {
|
if (hwid == "") {
|
||||||
// No early connecting!
|
// No early connecting!
|
||||||
socket->close();
|
socket->close();
|
||||||
return;
|
return;
|
||||||
@ -271,6 +271,7 @@ void AOClient::pktWebSocketIp(AreaData* area, int argc, QStringList argv, AOPack
|
|||||||
qDebug() << "ws ip set to" << argv[0];
|
qDebug() << "ws ip set to" << argv[0];
|
||||||
#endif
|
#endif
|
||||||
remote_ip = QHostAddress(argv[0]);
|
remote_ip = QHostAddress(argv[0]);
|
||||||
|
calculateIpid();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user