CMakeLists.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/LicenseReader.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/api/datatypes.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/base/EventRegistry.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/base/StringUtils.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
CMakeLists.txt
@@ -12,7 +12,7 @@ SET(CMAKE_DISABLE_SOURCE_CHANGES OFF) SET(CMAKE_DISABLE_IN_SOURCE_BUILD ON) project (license++ C CXX) SET(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "CMake verbose" FORCE) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) @@ -24,7 +24,7 @@ SET(CMAKE_EXE_LINKER_FLAGS "/machine:X64 /INCREMENTAL:NO" CACHE STRING "Linker flags") endif(CMAKE_CL_64) SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib ) #${CMAKE_FIND_LIBRARY_SUFFIXES} set_property(DIRECTORY PROPERTY COMPILE_DEFINITIONS_DEBUG _CRT_SECURE_NO_WARNINGS) add_definitions("/D_CRT_SECURE_NO_WARNINGS") else(WIN32) SET(PLATFORM_LIBS "m") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -fmessage-length=0 -std=c++11 -Wall -Wuninitialized -fPIC") @@ -37,6 +37,8 @@ SET(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Install path prefix" FORCE) ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif(WIN32) project (license++ C CXX) if(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(HAVE_64BIT_SIZE_T 1) @@ -58,12 +60,12 @@ #include_directories(${Boost_INCLUDE_DIRS}) #link_directories ( ${Boost_LIBRARY_DIRS} ) if(NOT WIN32) #find a static version of openssl crypto library find_package(OpenSSL REQUIRED) include_directories(${OPENSSL_INCLUDE_DIR}) list(APPEND EXTERNAL_LIBS ${OPENSSL_CRYPTO_LIBRARY}) if(NOT WIN32) FIND_PACKAGE(Dbus REQUIRED) include_directories(${DBUS_INCLUDE_DIR}) include_directories(${DBUS_ARCH_INCLUDE_DIR}) src/library/LicenseReader.cpp
@@ -52,17 +52,17 @@ bool sigVerified = OsFunctions::verifySignature(printForSign().c_str(), license_signature.c_str()); if (sigVerified) { er.addEvent(LICENSE_VERIFIED, INFO); er.addEvent(LICENSE_VERIFIED, SVRT_INFO); } else { er.addEvent(LICENSE_CORRUPTED, SEVERITY_ERROR); er.addEvent(LICENSE_CORRUPTED, SVRT_ERROR); } if (has_expiry) { time_t now = time(NULL); if (expires_on() < now) { er.addEvent(PRODUCT_EXPIRED, SEVERITY_ERROR, ""); er.addEvent(PRODUCT_EXPIRED, SVRT_ERROR, ""); } if (valid_from() > now) { er.addEvent(PRODUCT_EXPIRED, SEVERITY_ERROR); er.addEvent(PRODUCT_EXPIRED, SVRT_ERROR); } } if (has_client_sig) { @@ -70,7 +70,7 @@ strncpy(str_code, client_signature.c_str(), sizeof(str_code)); EVENT_TYPE event = validate_pc_signature(str_code); if (event != LICENSE_OK) { er.addEvent(event, SEVERITY_ERROR); er.addEvent(event, SVRT_ERROR); } } return er; @@ -114,7 +114,7 @@ ini.Reset(); SI_Error rc = ini.LoadFile((*it).c_str()); if (rc < 0) { result.addEvent(FILE_FORMAT_NOT_RECOGNIZED, SEVERITY_WARN, *it); result.addEvent(FILE_FORMAT_NOT_RECOGNIZED, SVRT_WARN, *it); continue; } else { loadAtLeastOneFile = true; @@ -122,7 +122,7 @@ const char* productNamePtr = product.c_str(); int sectionSize = ini.GetSectionSize(productNamePtr); if (sectionSize <= 0) { result.addEvent(PRODUCT_NOT_LICENSED, SEVERITY_WARN, *it); result.addEvent(PRODUCT_NOT_LICENSED, SVRT_WARN, *it); continue; } else { atLeastOneProductLicensed = true; @@ -162,7 +162,7 @@ licenseInfoOut.push_back(licInfo); atLeastOneLicenseComplete = true; } else { result.addEvent(LICENSE_MALFORMED, SEVERITY_WARN, *it); result.addEvent(LICENSE_MALFORMED, SVRT_WARN, *it); } } if (!loadAtLeastOneFile) { @@ -193,11 +193,11 @@ for (auto it = existing_pos.begin(); it != existing_pos.end(); ++it) { diskFiles.push_back(*it); eventRegistry.addEvent(LICENSE_FILE_FOUND, INFO, *it); eventRegistry.addEvent(LICENSE_FILE_FOUND, SVRT_INFO, *it); } } } else { eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SEVERITY_WARN, eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SVRT_WARN, varName); } } @@ -223,19 +223,19 @@ for (auto it = existing_pos.begin(); it != existing_pos.end(); ++it) { diskFiles.push_back(*it); eventRegistry.addEvent(LICENSE_FILE_FOUND, INFO, *it); eventRegistry.addEvent(LICENSE_FILE_FOUND, SVRT_INFO, *it); } } else { eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SEVERITY_WARN, env_var_value); SVRT_WARN, env_var_value); } } else { eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, SEVERITY_WARN); SVRT_WARN); } } else { eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, SEVERITY_WARN); SVRT_WARN); } } return licenseFileFoundWithEnvVariable; @@ -252,9 +252,9 @@ if (f.good()) { foundNearModule = true; diskFiles.push_back(temptativeLicense); eventRegistry.addEvent(LICENSE_FILE_FOUND, INFO, temptativeLicense); eventRegistry.addEvent(LICENSE_FILE_FOUND, SVRT_INFO, temptativeLicense); } else { eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SEVERITY_WARN, eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, SVRT_WARN, temptativeLicense); } f.close(); src/library/api/datatypes.h
@@ -49,7 +49,7 @@ } LICENSE_TYPE; typedef enum { INFO, SEVERITY_WARN, SEVERITY_ERROR SVRT_INFO, SVRT_WARN, SVRT_ERROR } SEVERITY; typedef struct { src/library/base/EventRegistry.cpp
@@ -10,6 +10,8 @@ #include <string.h> #include <algorithm> using namespace std; namespace license { EventRegistry::EventRegistry() { } @@ -33,7 +35,7 @@ void EventRegistry::turnLastEventIntoError() { if (logs.size() > 0) { logs.back().severity = SEVERITY_ERROR; logs.back().severity = SVRT_ERROR; } } @@ -41,7 +43,7 @@ bool eventFound = false; for (auto it = logs.begin(); it != logs.end(); ++it) { if (it->event_type == event) { it->severity = SEVERITY_ERROR; it->severity = SVRT_ERROR; eventFound = true; } } @@ -56,7 +58,7 @@ auto it = logs.end(); do { --it; if (it->severity == SEVERITY_ERROR) { if (it->severity == SVRT_ERROR) { result = &(*it); break; } @@ -68,7 +70,7 @@ bool EventRegistry::isGood() const { bool isGood = true; for (auto it = logs.begin(); it != logs.end(); ++it) { if (it->severity == SEVERITY_ERROR) { if (it->severity == SVRT_ERROR) { isGood = false; break; } @@ -77,7 +79,7 @@ } void EventRegistry::addError(EVENT_TYPE event) { addEvent(event, SEVERITY_ERROR); addEvent(event, SVRT_ERROR); } void EventRegistry::addEvent(EVENT_TYPE event, SEVERITY severity) { @@ -102,8 +104,8 @@ bool EventRegistry::turnErrosIntoWarnings() { bool eventFound = false; for (auto it = logs.begin(); it != logs.end(); ++it) { if (it->severity == SEVERITY_ERROR) { it->severity = SEVERITY_WARN; if (it->severity == SVRT_ERROR) { it->severity = SVRT_WARN; eventFound = true; } } @@ -111,7 +113,7 @@ } void EventRegistry::exportLastEvents(AuditEvent* auditEvents, int nlogs) { int sizeToCopy = std::min(nlogs, (int) logs.size()); int sizeToCopy = min(nlogs, (int) logs.size()); std::copy(logs.begin(), logs.begin() + sizeToCopy, auditEvents); } } src/library/base/StringUtils.cpp
@@ -12,6 +12,10 @@ #include <cstring> #include <algorithm> #ifdef WIN32 #include <time.h> //mktime under windows #endif namespace license { using namespace std;