From 8bbef2865455754425a84b86680a89bff8aa7691 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 19 10月 2019 08:50:45 +0800 Subject: [PATCH] issue #64 , issue #56 (part) --- example/example.cpp | 77 +++++++++++++++++--------------------- 1 files changed, 34 insertions(+), 43 deletions(-) diff --git a/example/example.cpp b/example/example.cpp index 45370dd..2379d6a 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -2,55 +2,46 @@ #include <map> #include "api/license++.h" #include "pc-identifiers.h" -#include "ini/SimpleIni.h" using namespace std; -int main(int argc, char *argv[]) -{ - map<EVENT_TYPE, string> stringByEventType; - stringByEventType[LICENSE_OK ] = "OK "; - stringByEventType[LICENSE_FILE_NOT_FOUND ] = "license file not found "; - stringByEventType[LICENSE_SERVER_NOT_FOUND ] = "license server can't be contacted "; - stringByEventType[ENVIRONMENT_VARIABLE_NOT_DEFINED] = "environment variable not defined "; - stringByEventType[FILE_FORMAT_NOT_RECOGNIZED ] = "license file has invalid format (not .ini file) "; - stringByEventType[LICENSE_MALFORMED ] = "some mandatory field are missing, or data can't be fully read. "; - stringByEventType[PRODUCT_NOT_LICENSED ] = "this product was not licensed "; - stringByEventType[PRODUCT_EXPIRED ] = "license expired "; - stringByEventType[LICENSE_CORRUPTED ] = "license signature didn't match with current license "; - stringByEventType[IDENTIFIERS_MISMATCH ] = "Calculated identifier and the one provided in license didn't match"; - stringByEventType[LICENSE_FILE_FOUND ] = "license file not found "; - stringByEventType[LICENSE_VERIFIED ] = "license verified "; - - const string licLocation("example.lic"); - - LicenseInfo licenseInfo; - LicenseLocation licenseLocation; - licenseLocation.openFileNearModule = false; - licenseLocation.licenseFileLocation = licLocation.c_str(); - licenseLocation.environmentVariableName = ""; - EVENT_TYPE result = acquire_license("example", licenseLocation, &licenseInfo); - PcSignature signature; - FUNCTION_RETURN generate_ok = generate_user_pc_signature(signature, DEFAULT); +int main(int argc, char *argv[]) { + map<EVENT_TYPE, string> stringByEventType; + stringByEventType[LICENSE_OK] = "OK "; + stringByEventType[LICENSE_FILE_NOT_FOUND] = "license file not found "; + stringByEventType[LICENSE_SERVER_NOT_FOUND] = "license server can't be contacted "; + stringByEventType[ENVIRONMENT_VARIABLE_NOT_DEFINED] = "environment variable not defined "; + stringByEventType[FILE_FORMAT_NOT_RECOGNIZED] = "license file has invalid format (not .ini file) "; + stringByEventType[LICENSE_MALFORMED] = "some mandatory field are missing, or data can't be fully read. "; + stringByEventType[PRODUCT_NOT_LICENSED] = "this product was not licensed "; + stringByEventType[PRODUCT_EXPIRED] = "license expired "; + stringByEventType[LICENSE_CORRUPTED] = "license signature didn't match with current license "; + stringByEventType[IDENTIFIERS_MISMATCH] = "Calculated identifier and the one provided in license didn't match"; - if (result == LICENSE_OK && licenseInfo.linked_to_pc) { - CSimpleIniA ini; - SI_Error rc = ini.LoadFile(licLocation.c_str()); - string IDinLicense = ini.GetValue("example", "client_signature", ""); - if (IDinLicense == "") { - cout << "No client signature in license file, generate license with -s <id>"; + LicenseInfo licenseInfo; + EVENT_TYPE result = acquire_license("example", nullptr, &licenseInfo); + + if (result == LICENSE_OK) { + //for this example we want to link the license to the execution hardware. + if (licenseInfo.linked_to_pc) { + cout + << "No client signature in license file, generate license with -s <id>"; result = IDENTIFIERS_MISMATCH; - } else if (IDinLicense != signature) { - result = IDENTIFIERS_MISMATCH; + } else { + cout << "license OK" << endl; + } + } + if (result != LICENSE_OK) { + cout << "license ERROR :" << endl; + cout << " " << stringByEventType[result].c_str() << endl; + if (result == IDENTIFIERS_MISMATCH) { + PcSignature signature; + FUNCTION_RETURN generate_ok = generate_user_pc_signature(signature, + DEFAULT); + cout << "the pc signature is :" << endl; + cout << " " << signature << endl; } } - if (result != LICENSE_OK) { - cout << "license ERROR :" << endl; - cout << " " << stringByEventType[result].c_str() << endl; - cout << "the pc signature is :" << endl; - cout << " " << signature << endl; - } - else - cout << "license OK" << endl; + return result; } -- Gitblit v1.9.1