diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 50c93084ed..b403623d2c 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -34,7 +34,7 @@ DomainServer::DomainServer(int argc, char* argv[]) : _HTTPManager(DOMAIN_SERVER_HTTP_PORT, QString("%1/resources/web/").arg(QCoreApplication::applicationDirPath()), this), _staticAssignmentHash(), _assignmentQueue(), - _nodeAuthenticationURL(DEFAULT_NODE_AUTH_URL), + _nodeAuthenticationURL(), _redeemedTokenResponses() { setOrganizationName("High Fidelity"); @@ -46,10 +46,10 @@ DomainServer::DomainServer(int argc, char* argv[]) : int argumentIndex = 0; // check if this domain server should use no authentication or a custom hostname for authentication - const QString NO_AUTH_OPTION = "--noAuth"; + const QString DEFAULT_AUTH_OPTION = "--defaultAuth"; const QString CUSTOM_AUTH_OPTION = "--customAuth"; - if ((argumentIndex = _argumentList.indexOf(NO_AUTH_OPTION) != -1)) { - _nodeAuthenticationURL = QUrl(); + if ((argumentIndex = _argumentList.indexOf(DEFAULT_AUTH_OPTION) != -1)) { + _nodeAuthenticationURL = QUrl(DEFAULT_NODE_AUTH_URL); } else if ((argumentIndex = _argumentList.indexOf(CUSTOM_AUTH_OPTION)) != -1) { _nodeAuthenticationURL = QUrl(_argumentList.value(argumentIndex + 1)); } @@ -74,8 +74,8 @@ DomainServer::DomainServer(int argc, char* argv[]) : } else { qDebug() << "Authentication was requested against" << qPrintable(_nodeAuthenticationURL.toString()) - << "but both or one of" << qPrintable(DATA_SERVER_USERNAME_ENV) - << "/" << qPrintable(DATA_SERVER_PASSWORD_ENV) << "are not set. Qutting!"; + << "but both or one of" << qPrintable(DATA_SERVER_USERNAME_ENV) + << "/" << qPrintable(DATA_SERVER_PASSWORD_ENV) << "are not set. Qutting!"; // bail out QMetaObject::invokeMethod(this, "quit", Qt::QueuedConnection); diff --git a/libraries/shared/src/NodeList.cpp b/libraries/shared/src/NodeList.cpp index 9089e48fb9..ea07c3bdc1 100644 --- a/libraries/shared/src/NodeList.cpp +++ b/libraries/shared/src/NodeList.cpp @@ -108,16 +108,23 @@ bool NodeList::packetVersionAndHashMatch(const QByteArray& packet) { << uuidFromPacketHeader(packet); } } else { - if (checkType == PacketTypeDomainList - && _domainInfo.getUUID() == uuidFromPacketHeader(packet)) { - if (hashForPacketAndConnectionUUID(packet, _domainInfo.getConnectionSecret()) == hashFromPacketHeader(packet)) { - // this is a packet from the domain-server (PacketTypeDomainServerListRequest) - // and the sender UUID matches the UUID we expect for the domain - return true; - } else { - // this is a packet from the domain-server but there is a hash mismatch - qDebug() << "Packet hash mismatch on" << checkType << "from domain-server at" << _domainInfo.getHostname(); - return false; + if (checkType == PacketTypeDomainList) { + + if (_domainInfo.getRootAuthenticationURL().isEmpty() && _domainInfo.getUUID().isNull()) { + // pull the UUID from this packet and set it as our domain-server UUID + _domainInfo.setUUID(uuidFromPacketHeader(packet)); + } + + if (_domainInfo.getUUID() == uuidFromPacketHeader(packet)) { + if (hashForPacketAndConnectionUUID(packet, _domainInfo.getConnectionSecret()) == hashFromPacketHeader(packet)) { + // this is a packet from the domain-server (PacketTypeDomainServerListRequest) + // and the sender UUID matches the UUID we expect for the domain + return true; + } else { + // this is a packet from the domain-server but there is a hash mismatch + qDebug() << "Packet hash mismatch on" << checkType << "from domain-server at" << _domainInfo.getHostname(); + return false; + } } } @@ -207,11 +214,7 @@ void NodeList::timePingReply(const QByteArray& packet, const SharedNodePointer& void NodeList::processNodeData(const HifiSockAddr& senderSockAddr, const QByteArray& packet) { switch (packetTypeForPacket(packet)) { case PacketTypeDomainList: { - // only process the DS if this is our current domain server - if (_domainInfo.getSockAddr() == senderSockAddr) { - processDomainServerList(packet); - } - + processDomainServerList(packet); break; } case PacketTypeDomainServerAuthRequest: {