New DataServer features

This commit is contained in:
stojce 2014-02-08 09:25:49 +01:00
parent ac14f993b7
commit d1c8a69387
4 changed files with 9 additions and 3 deletions

View file

@ -69,9 +69,9 @@ void DataServer::readPendingDatagrams() {
senderSockAddr.getAddressPointer(), senderSockAddr.getPortPointer());
PacketType requestType = packetTypeForPacket(receivedPacket);
if ((requestType == PacketTypeDataServerHashPut || requestType == PacketTypeDataServerHashGet) &&
packetVersionMatch(receivedPacket)) {
receivedPacket[numBytesArithmeticCodingFromBuffer(receivedPacket.data())] == versionForPacketType(requestType)) {
QDataStream packetStream(receivedPacket);
int numReceivedHeaderBytes = numBytesForPacketHeader(receivedPacket);
@ -95,6 +95,7 @@ void DataServer::readPendingDatagrams() {
if (dataKey.isNull() || dataKey.isEmpty()) {
break;
}
redisAppendCommand(_redis, "%s %s %s %s",
REDIS_HASH_SET,
qPrintable(userString),
@ -127,6 +128,7 @@ void DataServer::readPendingDatagrams() {
for (int i = 0; i < reply->elements; i++) {
sendPacketStream << QString(reply->element[i]->str);
}
qDebug() << "Found data for key" << userString;
}
// reply back with the send packet
_socket.writeDatagram(sendPacket, senderSockAddr.getAddress(), senderSockAddr.getPort());

View file

@ -998,7 +998,7 @@ void Menu::namedLocationCreated(LocationManager::LocationCreateResponse response
void Menu::nameLocation() {
// check if user is logged in or show login dialog if not
Profile* profile = Application::getInstance()->getProfile();
if (profile->getUsername().isNull()) {
if (profile->getUUID().isNull()) {
QMessageBox msgBox;
msgBox.setText("We need to tie this location to your username.");
msgBox.setInformativeText("Please login first, then try naming the location again.");

View file

@ -97,6 +97,7 @@ bool NodeList::packetVersionAndHashMatch(const QByteArray& packet) {
const QSet<PacketType> NON_VERIFIED_PACKETS = QSet<PacketType>() << PacketTypeDomainList
<< PacketTypeDomainListRequest << PacketTypeStunResponse << PacketTypeDataServerConfirm
<< PacketTypeDataServerGet << PacketTypeDataServerPut << PacketTypeDataServerSend
<< PacketTypeDataServerHashGet << PacketTypeDataServerHashPut << PacketTypeDataServerHashSend
<< PacketTypeCreateAssignment << PacketTypeRequestAssignment;
if (!NON_VERIFIED_PACKETS.contains(packetTypeForPacket(packet))) {

View file

@ -56,6 +56,9 @@ PacketVersion versionForPacketType(PacketType type) {
case PacketTypeDataServerPut:
case PacketTypeDataServerConfirm:
case PacketTypeDataServerSend:
case PacketTypeDataServerHashPut:
case PacketTypeDataServerHashGet:
case PacketTypeDataServerHashSend:
return 1;
default:
return 0;