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) --- src/library/api/datatypes.h | 38 +++++++++++++++++++++++++++++++------- 1 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/library/api/datatypes.h b/src/library/api/datatypes.h index 1eadf88..439f477 100644 --- a/src/library/api/datatypes.h +++ b/src/library/api/datatypes.h @@ -13,13 +13,18 @@ #ifdef __unix__ #define DllExport +#ifndef MAX_PATH + #define MAX_PATH 1024 +#endif #else #include <windows.h> #define DllExport __declspec( dllexport ) #endif + #define PC_IDENTIFIER_SIZE 18 #define PROPRIETARY_DATA_SIZE 16 +#define AUDIT_EVENT_NUM 5 #define LICENESE_INT_VERSION 110 #define LICENSEPP_VERSION "1.1.0" @@ -36,8 +41,10 @@ LICENSE_CORRUPTED = 8, //License signature didn't match with current license IDENTIFIERS_MISMATCH = 9, //Calculated identifier and the one provided in license didn't match - LICENSE_FILE_FOUND = 100, - LICENSE_VERIFIED = 101 + LICENSE_SPECIFIED = 100, //license location was specified + LICENSE_FOUND = 101, //License file has been found or license data has been located + PRODUCT_FOUND = 102, //License has been loaded and the declared product has been found + SIGNATURE_VERIFIED = 103 } EVENT_TYPE; @@ -52,23 +59,40 @@ typedef struct { SEVERITY severity; EVENT_TYPE event_type; - char param1[256]; + /** + * License file name or location where the license is stored. + */ + char license_reference[MAX_PATH]; char param2[256]; } AuditEvent; +/** + * This structure contains informations on the raw license data. Software authors + * can specify the location of the license file or its full content. + * + * Can be NULL, in this case OpenLicenseManager will try to figure out the + * license file location on its own. + */ typedef struct { + /** + * A list of absolute path separated by ';' containing the eventual location + * of the license files. Can be NULL. + */ const char *licenseFileLocation; - const char *environmentVariableName; - bool openFileNearModule; + /** + * The application can provide the full license content through this string. + * It can be both in encoded form (base64) or in plain. It's optional. + */ + const char *licenseData; } LicenseLocation; typedef struct { /** * Detailed reason of success/failure. Reasons for a failure can be * multiple (for instance, license expired and signature not verified). - * Only the last 5 are reported. + * Only the last AUDIT_EVENT_NUM are reported. */ - AuditEvent status[5]; + AuditEvent status[AUDIT_EVENT_NUM]; /** * Eventual expiration date of the software, * can be '\0' if the software don't expire -- Gitblit v1.9.1