From 66e8c7601d2c52626e4ff39f2559cff3271eb770 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周日, 08 12月 2019 15:34:38 +0800 Subject: [PATCH] centos 7 update cmake --- src/library/locate/EnvironmentVarData.cpp | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/library/locate/EnvironmentVarData.cpp b/src/library/locate/EnvironmentVarData.cpp index 844470e..6e47d21 100644 --- a/src/library/locate/EnvironmentVarData.cpp +++ b/src/library/locate/EnvironmentVarData.cpp @@ -6,28 +6,56 @@ */ #include "EnvironmentVarData.hpp" +#include <licensecc/datatypes.h> + +#include <licensecc_properties.h> +#include <cstdlib> +#include <regex> +#include <string> +#include <vector> + +#include "../base/base64.h" +#include "../base/EventRegistry.h" +#include "../base/StringUtils.h" + namespace license { namespace locate { using namespace std; -EnvironmentVarData::EnvironmentVarData() : - LocatorStrategy("EnvironmentVarData") { -} +EnvironmentVarData::EnvironmentVarData() : LocatorStrategy("EnvironmentVarData") {} -EnvironmentVarData::~EnvironmentVarData() { -} +EnvironmentVarData::~EnvironmentVarData() {} -const vector<string> EnvironmentVarData::licenseLocations( - EventRegistry &eventRegistry) const { +const vector<string> EnvironmentVarData::license_locations(EventRegistry &eventRegistry) { vector<string> diskFiles; - + char *env_var_value = getenv(LICENSE_DATA_ENV_VAR); + if (env_var_value != nullptr && env_var_value[0] != '\0') { + eventRegistry.addEvent(LICENSE_SPECIFIED, LICENSE_LOCATION_ENV_VAR); + FILE_FORMAT licenseFormat = identify_format(env_var_value); + if (licenseFormat == UNKNOWN) { + eventRegistry.addEvent(LICENSE_MALFORMED, LICENSE_LOCATION_ENV_VAR); + } else { + diskFiles.push_back(LICENSE_LOCATION_ENV_VAR); + isBase64 = (licenseFormat == BASE64); + } + } else { + eventRegistry.addEvent(ENVIRONMENT_VARIABLE_NOT_DEFINED, LICENSE_LOCATION_ENV_VAR); + } return diskFiles; } -const std::string EnvironmentVarData::retrieveLicense(const std::string &licenseLocation) const{ - return ""; +const std::string EnvironmentVarData::retrieve_license_content(const std::string &licenseLocation) const { + string tmpVal = getenv(LICENSE_LOCATION_ENV_VAR); + if (isBase64) { + int flen = 0; + unsigned char *raw = unbase64(tmpVal.c_str(), tmpVal.length(), &flen); + string str = string(reinterpret_cast<char *>(raw)); + free(raw); + return str; + } + return tmpVal; } -} -} +} // namespace locate +} // namespace license -- Gitblit v1.9.1