From 1a6dfc8b9763b59328714ffefa07773496e71063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Tue, 2 Jan 2024 20:09:55 +0100 Subject: [PATCH] Try to overcome empty licenseURL item during fulfillment step --- src/libgourou.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/libgourou.cpp b/src/libgourou.cpp index 2bbc201..0f3831a 100644 --- a/src/libgourou.cpp +++ b/src/libgourou.cpp @@ -455,8 +455,16 @@ namespace gourou void DRMProcessor::fetchLicenseServiceCertificate(const std::string& licenseURL, const std::string& operatorURL) { - if (user->getLicenseServiceCertificate(licenseURL) != "") - return; + if (licenseURL != "") + { + if (user->getLicenseServiceCertificate(licenseURL) != "") + return; + } + else + { + if (user->getLicenseServiceCertificate(operatorURL) != "") + return; + } std::string licenseServiceInfoReq = operatorURL + "/LicenseServiceInfo?licenseURL=" + licenseURL; @@ -489,7 +497,10 @@ namespace gourou std::string certificate = extractTextElem(licenseServicesDoc, "/licenseServiceInfo/certificate"); - appendTextElem(root, "adept:licenseURL", licenseURL); + if (licenseURL != "") + appendTextElem(root, "adept:licenseURL", licenseURL); + else + appendTextElem(root, "adept:licenseURL", operatorURL); appendTextElem(root, "adept:certificate", certificate); user->updateActivationFile(activationDoc); @@ -576,7 +587,7 @@ namespace gourou fulfillReply.load_string((const char*)replyData.data()); - std::string licenseURL = extractTextElem(fulfillReply, "//licenseToken/licenseURL"); + std::string licenseURL = extractTextElem(fulfillReply, "//licenseToken/licenseURL", false); fetchLicenseServiceCertificate(licenseURL, operatorURL);