| | |
| | | * os-dependent.hpp |
| | | * |
| | | * Created on: Mar 29, 2014 |
| | | * Author: devel |
| | | * |
| | | */ |
| | | |
| | | #ifndef OS_DEPENDENT_HPP_ |
| | |
| | | |
| | | #include "../base/base.h" |
| | | #include <stddef.h> |
| | | |
| | | typedef enum { |
| | | NONE, VMWARE |
| | | } VIRTUALIZATION; |
| | | |
| | | typedef struct { |
| | | int id; |
| | | char description[1024]; |
| | | unsigned char mac_address[6]; |
| | | unsigned char ipv4_address[4]; |
| | | } AdapterInfo; |
| | | #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 struct { |
| | | int id; |
| | | char device[255]; |
| | | unsigned char disk_sn[8]; |
| | | char label[255]; |
| | | bool preferred; |
| | | } DiskInfo; |
| | | |
| | | FUNCTION_RETURN getAdapterInfos(AdapterInfo * adapterInfos, |
| | | size_t * adapter_info_size); |
| | | FUNCTION_RETURN getDiskInfos(DiskInfo * diskInfos, size_t * disk_info_size); |
| | | FUNCTION_RETURN getDiskInfos(DiskInfo* diskInfos, size_t* disk_info_size); |
| | | FUNCTION_RETURN getUserHomePath(char[MAX_PATH]); |
| | | VIRTUALIZATION getVirtualization(); |
| | | void os_initialize(); |
| | | 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]); |
| | | |
| | | // FUNCTION_RETURN verifySignature(const char* stringToVerify, const char* signatureB64); |
| | | |
| | | #ifdef _WIN32 |
| | | #define SETENV(VAR, VAL) _putenv_s(VAR, VAL); |
| | | #define UNSETENV(P) _putenv_s(P, ""); |
| | | #else |
| | | #define SETENV(VAR, VAL) setenv(VAR, VAL, 1); |
| | | #define UNSETENV(P) unsetenv(P); |
| | | #endif |
| | | |
| | | #ifdef __cplusplus |
| | | } |