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