From f77e1e4d2adf4422943c10a1906854c3027391d8 Mon Sep 17 00:00:00 2001 From: open-license-manager <rillf@maildrop.cc> Date: 周一, 14 4月 2014 01:11:41 +0800 Subject: [PATCH] first roundtrip test --- src/library/reader/LicenseReader.cpp | 42 +++++++++++++++++++++++++++++++++--------- 1 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/library/reader/LicenseReader.cpp b/src/library/reader/LicenseReader.cpp index 353cd0f..458fb75 100644 --- a/src/library/reader/LicenseReader.cpp +++ b/src/library/reader/LicenseReader.cpp @@ -50,6 +50,27 @@ extra_data(extra_data) { } +EventRegistry FullLicenseInfo::validate(int sw_version) { + EventRegistry er; + bool sigVerified = OsFunctions::verifySignature(printForSign().c_str(), + license_signature.c_str()); + if (sigVerified) { + er.addEvent(LICENSE_VERIFIED, INFO); + } else { + er.addEvent(LICENSE_CORRUPTED, SEVERITY_ERROR); + } + if(has_expiry){ + time_t now = time(NULL); + if(this->to_date<now){ + er.addEvent(PRODUCT_EXPIRED, SEVERITY_ERROR, ""); + } + if(this->from_date>now){ + er.addEvent(PRODUCT_EXPIRED, SEVERITY_ERROR); + } + } + return er; +} + void FullLicenseInfo::toLicenseInfo(LicenseInfo* license) const { if (license != NULL) { strncpy(license->proprietary_data, extra_data.c_str(), @@ -88,7 +109,7 @@ ini.Reset(); SI_Error rc = ini.LoadFile((*it).c_str()); if (rc < 0) { - result.addEvent(FILE_FORMAT_NOT_RECOGNIZED, WARN, *it); + result.addEvent(FILE_FORMAT_NOT_RECOGNIZED, SEVERITY_WARN, *it); continue; } else { loadAtLeastOneFile = true; @@ -96,7 +117,7 @@ const char* productNamePtr = product.c_str(); int sectionSize = ini.GetSectionSize(productNamePtr); if (sectionSize <= 0) { - result.addEvent(PRODUCT_NOT_LICENSED, WARN, *it); + result.addEvent(PRODUCT_NOT_LICENSED, SEVERITY_WARN, *it); continue; } else { atLeastOneProductLicensed = true; @@ -120,7 +141,7 @@ licenseInfoOut.push_back(licInfo); atLeastOneLicenseComplete = true; } else { - result.addEvent(LICENSE_MALFORMED, WARN, *it); + result.addEvent(LICENSE_MALFORMED, SEVERITY_WARN, *it); } } if (!loadAtLeastOneFile) { @@ -155,7 +176,8 @@ } } } else { - eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, WARN, varName); + eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SEVERITY_WARN, + varName); } } return licenseFoundWithExplicitLocation; @@ -183,14 +205,16 @@ eventRegistry.addEvent(LICENSE_FILE_FOUND, INFO, *it); } } else { - eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, WARN, - env_var_value); + eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, + SEVERITY_WARN, env_var_value); } } else { - eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, WARN); + eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, + SEVERITY_WARN); } } else { - eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, WARN); + eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, + SEVERITY_WARN); } } return licenseFileFoundWithEnvVariable; @@ -209,7 +233,7 @@ diskFiles.push_back(temptativeLicense); eventRegistry.addEvent(LICENSE_FILE_FOUND, INFO, temptativeLicense); } else { - eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, WARN, + eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SEVERITY_WARN, temptativeLicense); } f.close(); -- Gitblit v1.9.1