From 82f9d834ad772b2f16b6524f679d14d8a7afe881 Mon Sep 17 00:00:00 2001
From: Gabriele Contini <gcontini@users.noreply.github.com>
Date: 周二, 10 9月 2019 23:29:10 +0800
Subject: [PATCH] fix issue #37 tests in windows

---
 src/library/os/os.h |   49 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 44 insertions(+), 5 deletions(-)

diff --git a/src/library/os/os.h b/src/library/os/os.h
index 7e0e3e7..7eea3eb 100644
--- a/src/library/os/os.h
+++ b/src/library/os/os.h
@@ -2,7 +2,7 @@
  * os-dependent.hpp
  *
  *  Created on: Mar 29, 2014
- *      Author: devel
+ *      
  */
 
 #ifndef OS_DEPENDENT_HPP_
@@ -14,32 +14,71 @@
 
 #include "../base/base.h"
 #include <stddef.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/types.h>
+//definition of size_t
+#include <stdlib.h>
+#ifdef __unix__
+#include <unistd.h>
+#include <stdbool.h>
+#endif
 
 typedef enum {
-	NONE, VMWARE
+	NONE, CONTAINER, VM
 } VIRTUALIZATION;
+
+typedef enum {
+	IFACE_TYPE_ETHERNET, IFACE_TYPE_WIRELESS
+} IFACE_TYPE;
 
 typedef struct {
 	int id;
 	char description[1024];
-	unsigned char mac_address[6];
+	unsigned char mac_address[8];
 	unsigned char ipv4_address[4];
-} AdapterInfo;
+	IFACE_TYPE type;
+} OsAdapterInfo;
 
 typedef struct {
 	int id;
 	char device[255];
 	unsigned char disk_sn[8];
 	char label[255];
+	bool preferred;
 } DiskInfo;
 
-FUNCTION_RETURN getAdapterInfos(AdapterInfo * adapterInfos,
+FUNCTION_RETURN getAdapterInfos(OsAdapterInfo * adapterInfos,
 		size_t * adapter_info_size);
 FUNCTION_RETURN getDiskInfos(DiskInfo * diskInfos, size_t * disk_info_size);
 FUNCTION_RETURN getUserHomePath(char[MAX_PATH]);
+FUNCTION_RETURN getModuleName(char buffer[MAX_PATH]);
+FUNCTION_RETURN getCpuId(unsigned char identifier[6]);
+FUNCTION_RETURN getMachineName(unsigned char identifier[6]);
+/**
+ * Get an identifier of the machine in an os specific way.
+ * In Linux it uses:
+ * http://stackoverflow.com/questions/328936/getting-a-unique-id-from-a-unix-like-system
+ *
+ * <ul>
+ * <li>Dbus if available</li>
+ * </ul>
+ * Can be used as a fallback in case no other methods are available.
+ * Windows:
+ * HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\ProductId
+ * http://sowkot.blogspot.it/2008/08/generating-unique-keyfinger-print-for.html
+ * http://stackoverflow.com/questions/2842116/reliable-way-of-generating-unique-hardware-id
+ *
+ *
+ * @param identifier
+ * @return
+ */
+FUNCTION_RETURN getOsSpecificIdentifier(unsigned char identifier[6]);
 VIRTUALIZATION getVirtualization();
 void os_initialize();
 
+FUNCTION_RETURN verifySignature(const char* stringToVerify, const char* signatureB64);
+
 #ifdef __cplusplus
 }
 #endif

--
Gitblit v1.9.1