From 4c0dc118c9fa83c629dbb3ede56b16723a0f2941 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 1 May 2019 17:28:10 -0700 Subject: [PATCH] Don't verify-fail if the fst has no certificate Also remove some debugging prints --- assignment-client/src/avatars/MixerAvatar.cpp | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/assignment-client/src/avatars/MixerAvatar.cpp b/assignment-client/src/avatars/MixerAvatar.cpp index 8075b523eb..8f5c60a7d9 100644 --- a/assignment-client/src/avatars/MixerAvatar.cpp +++ b/assignment-client/src/avatars/MixerAvatar.cpp @@ -33,8 +33,6 @@ void MixerAvatar::fetchAvatarFST() { _pendingEvent = false; QUrl avatarURL = getSkeletonModelURL(); - auto avatarString = avatarURL.toString(); - qCDebug(avatars) << "MixerAvatar::fetchAvatarFST: called with" << avatarString; if (avatarURL.isEmpty() || avatarURL.isLocalFile() || avatarURL.scheme() == "qrc") { // Not network FST. return; @@ -61,7 +59,6 @@ void MixerAvatar::fetchAvatarFST() { ResourceRequest* fstRequest = resourceManager->createResourceRequest(this, avatarURL); if (fstRequest) { QMutexLocker certifyLocker(&_avatarCertifyLock); - qCDebug(avatars) << "Requesting FST at" << avatarURL; _avatarRequest = fstRequest; _verifyState = requestingFST; @@ -195,29 +192,34 @@ void MixerAvatar::processCertifyEvents() { case receivedFST: { generateFSTHash(); - QString& marketplacePublicKey = EntityItem::_marketplacePublicKey; - bool staticVerification = validateFSTHash(marketplacePublicKey); - _verifyState = staticVerification ? staticValidation : verificationFailed; + if (_certificateIdFromFST.length() != 0) { + QString& marketplacePublicKey = EntityItem::_marketplacePublicKey; + bool staticVerification = validateFSTHash(marketplacePublicKey); + _verifyState = staticVerification ? staticValidation : verificationFailed; - if (_verifyState == staticValidation) { - static const QString POP_MARKETPLACE_API { "/api/v1/commerce/proof_of_purchase_status/transfer" }; - auto& networkAccessManager = NetworkAccessManager::getInstance(); - QNetworkRequest networkRequest; - networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); - networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - QUrl requestURL = NetworkingConstants::METAVERSE_SERVER_URL(); - requestURL.setPath(POP_MARKETPLACE_API); - networkRequest.setUrl(requestURL); + if (_verifyState == staticValidation) { + static const QString POP_MARKETPLACE_API { "/api/v1/commerce/proof_of_purchase_status/transfer" }; + auto& networkAccessManager = NetworkAccessManager::getInstance(); + QNetworkRequest networkRequest; + networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + QUrl requestURL = NetworkingConstants::METAVERSE_SERVER_URL(); + requestURL.setPath(POP_MARKETPLACE_API); + networkRequest.setUrl(requestURL); - QJsonObject request; - request["certificate_id"] = _certificateIdFromFST; - _verifyState = requestingOwner; - QNetworkReply* networkReply = networkAccessManager.put(networkRequest, QJsonDocument(request).toJson()); - connect(networkReply, &QNetworkReply::finished, this, &MixerAvatar::ownerRequestComplete); - } else { - _needsIdentityUpdate = true; + QJsonObject request; + request["certificate_id"] = _certificateIdFromFST; + _verifyState = requestingOwner; + QNetworkReply* networkReply = networkAccessManager.put(networkRequest, QJsonDocument(request).toJson()); + connect(networkReply, &QNetworkReply::finished, this, &MixerAvatar::ownerRequestComplete); + } else { + _needsIdentityUpdate = true; + _pendingEvent = false; + qCDebug(avatars) << "Avatar" << getDisplayName() << "FAILED static certification"; + } + } else { // FST doesn't have a certificate, so noncertified rather than failed: _pendingEvent = false; - qCDebug(avatars) << "Avatar" << getDisplayName() << "FAILED static certification"; + _verifyState = nonCertified; } break; } @@ -227,7 +229,6 @@ void MixerAvatar::processCertifyEvents() { QJsonDocument responseJson = QJsonDocument::fromJson(_dynamicMarketResponse.toUtf8()); QString ownerPublicKey; bool ownerValid = false; - qCDebug(avatars) << "Marketplace response for avatar" << getDisplayName() << ":" << _dynamicMarketResponse; if (responseJson["status"].toString() == "success") { QJsonValue jsonData = responseJson["data"]; if (jsonData.isObject()) {