mirror of
https://github.com/overte-org/overte.git
synced 2025-07-23 12:04:03 +02:00
Fix DomainServerConnectionTOken packet writing/resetting
This commit is contained in:
parent
244cc016ab
commit
af293ec6dd
3 changed files with 12 additions and 11 deletions
|
@ -630,7 +630,9 @@ void DomainServer::processConnectRequestPacket(QSharedPointer<NLPacket> packet)
|
||||||
QList<NodeType_t> nodeInterestList;
|
QList<NodeType_t> nodeInterestList;
|
||||||
QString username;
|
QString username;
|
||||||
QByteArray usernameSignature;
|
QByteArray usernameSignature;
|
||||||
|
|
||||||
|
auto limitedNodeList = DependencyManager::get<LimitedNodeList>();
|
||||||
|
|
||||||
packetStream >> nodeInterestList;
|
packetStream >> nodeInterestList;
|
||||||
|
|
||||||
if (packet->bytesLeftToRead() > 0) {
|
if (packet->bytesLeftToRead() > 0) {
|
||||||
|
@ -638,24 +640,23 @@ void DomainServer::processConnectRequestPacket(QSharedPointer<NLPacket> packet)
|
||||||
packetStream >> username >> usernameSignature;
|
packetStream >> username >> usernameSignature;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
QUuid& connectionToken = _connectionTokenHash[username];
|
QUuid connectionToken = _connectionTokenHash[username];
|
||||||
|
|
||||||
if(connectionToken.isNull()) {
|
if(connectionToken.isNull()) {
|
||||||
// set up the connection token packet
|
// set up the connection token packet
|
||||||
static auto connectionTokenPacket = NLPacket::create(PacketType::DomainServerConnectionToken, NUM_BYTES_RFC4122_UUID);
|
static auto connectionTokenPacket = NLPacket::create(PacketType::DomainServerConnectionToken, NUM_BYTES_RFC4122_UUID);
|
||||||
connectionToken->write(connectionToken.toRfc4122());
|
connectionTokenPacket.reset();
|
||||||
nodeList->sendUnreliablePacket(connectionTokenPacket, packet->getSenderSockAddr());
|
connectionTokenPacket->write(connectionToken.toRfc4122());
|
||||||
|
nodeList->sendUnreliablePacket(connectionToken, packet->getSenderSockAddr());
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
// reset existing packet
|
// reset existing packet
|
||||||
connectionToken->reset();
|
|
||||||
|
//connectionTokenPacket.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto limitedNodeList = DependencyManager::get<LimitedNodeList>();
|
|
||||||
|
|
||||||
QString reason;
|
QString reason;
|
||||||
if (!isAssignment && !shouldAllowConnectionFromNode(username, usernameSignature, senderSockAddr, reason)) {
|
if (!isAssignment && !shouldAllowConnectionFromNode(username, usernameSignature, senderSockAddr, reason)) {
|
||||||
// this is an agent and we've decided we won't let them connect - send them a packet to deny connection
|
// this is an agent and we've decided we won't let them connect - send them a packet to deny connection
|
||||||
|
@ -813,7 +814,7 @@ bool DomainServer::verifyUserSignature(const QString& username,
|
||||||
|
|
||||||
QByteArray lowercaseUsername = username.toLower().toUtf8();
|
QByteArray lowercaseUsername = username.toLower().toUtf8();
|
||||||
QUuid connectionToken = _connectionTokenHash[username];
|
QUuid connectionToken = _connectionTokenHash[username];
|
||||||
QByteArray usernameWithToken = lowercaseUsername.append(connectionToken);
|
QByteArray usernameWithToken = lowercaseUsername.append(connectionToken.toRfc4122());
|
||||||
|
|
||||||
if (decryptResult != -1) {
|
if (decryptResult != -1) {
|
||||||
if (usernameWithToken == decryptedArray) {
|
if (usernameWithToken == decryptedArray) {
|
||||||
|
|
|
@ -457,7 +457,7 @@ void NodeList::pingPunchForDomainServer() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void NodeList::processDomainServerConnectionToken(QSharedPointer<NLPacket> packet) {
|
void NodeList::processDomainServerConnectionTokenPacket(QSharedPointer<NLPacket> packet) {
|
||||||
if (_domainHandler.getSockAddr().isNull()) {
|
if (_domainHandler.getSockAddr().isNull()) {
|
||||||
// refuse to process this packet if we aren't currently connected to the DS
|
// refuse to process this packet if we aren't currently connected to the DS
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -76,7 +76,7 @@ public slots:
|
||||||
void processDomainServerAddedNode(QSharedPointer<NLPacket> packet);
|
void processDomainServerAddedNode(QSharedPointer<NLPacket> packet);
|
||||||
void processDomainServerPathResponse(QSharedPointer<NLPacket> packet);
|
void processDomainServerPathResponse(QSharedPointer<NLPacket> packet);
|
||||||
|
|
||||||
void processDomainServerConnectionToken(QSharedPointer<NLPacket> packet);
|
void processDomainServerConnectionTokenPacket(QSharedPointer<NLPacket> packet);
|
||||||
|
|
||||||
void processPingPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
|
void processPingPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
|
||||||
void processPingReplyPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
|
void processPingReplyPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
|
||||||
|
|
Loading…
Reference in a new issue