From 48d2775d9a6670a6b0f296e76981fcd018eead71 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周日, 06 12月 2020 11:23:45 +0800 Subject: [PATCH] fix windows missing include --- src/library/os/windows/execution_environment.cpp | 81 +++++++++++++++------------------------- 1 files changed, 31 insertions(+), 50 deletions(-) diff --git a/src/library/os/windows/execution_environment.cpp b/src/library/os/windows/execution_environment.cpp index 3e65bc8..7423e9b 100644 --- a/src/library/os/windows/execution_environment.cpp +++ b/src/library/os/windows/execution_environment.cpp @@ -11,10 +11,8 @@ #include <stdio.h> #include <string> -#include "isvm/BIOSReader.h" -#include "isvm/Native.h" #include "../../base/base.h" -#include "../../base/StringUtils.h" + #include "../cpu_info.hpp" #include "../execution_environment.hpp" @@ -22,65 +20,48 @@ namespace os { using namespace std; -ExecutionEnvironment::ExecutionEnvironment() { - if (InitEntryPoints()) { - BIOSReader reader; - SystemInformation info = reader.readSystemInfo(); - m_sys_vendor = toupper_copy(info.Manufacturer); - m_bios_vendor = toupper_copy(info.ProductName); - m_bios_description = toupper_copy(info.SysVersion) + toupper_copy(info.family); - } -} +ExecutionEnvironment::ExecutionEnvironment() : m_container_type(CONTAINER_TYPE::NONE) {} #define MAX_UNITS 20 -int wine_container() { -DWORD fileMaxLen; -size_t ndrives = 0; -DWORD fileFlags; -char volName[MAX_PATH], fileSysName[MAX_PATH]; -DWORD volSerial = 0; -const DWORD dwSize = MAX_PATH; -char szLogicalDrives[MAX_PATH] = {0}; +CONTAINER_TYPE wine_container() { + size_t ndrives = 0; + const DWORD dwSize = MAX_PATH; + char szLogicalDrives[MAX_PATH] = {0}; -int result = 0; -const DWORD dwResult = GetLogicalDriveStrings(dwSize, szLogicalDrives); + CONTAINER_TYPE result = CONTAINER_TYPE::NONE; + const DWORD dwResult = GetLogicalDriveStrings(dwSize, szLogicalDrives); -if (dwResult > 0 && dwResult <= MAX_PATH) { - char* szSingleDrive = szLogicalDrives; - while (*szSingleDrive && ndrives < MAX_UNITS) { - // get the next drive - UINT driveType = GetDriveType(szSingleDrive); - if (driveType == DRIVE_FIXED) { - string name = szSingleDrive + string("/var/run/systemd/container"); - try { - ifstream systemd_container(name); - if (systemd_container.good()) { - result = 1; - for (string line; getline(systemd_container, line);) { - if (line.find("docker") != string::npos) { - result = 1; - break; - } else if (line.find("lxc") != string::npos) { - result = 2; - break; + if (dwResult > 0 && dwResult <= MAX_PATH) { + char* szSingleDrive = szLogicalDrives; + while (*szSingleDrive && ndrives < MAX_UNITS) { + // get the next drive + UINT driveType = GetDriveType(szSingleDrive); + if (driveType == DRIVE_FIXED) { + string name = szSingleDrive + string("/var/run/systemd/container"); + try { + ifstream systemd_container(name); + if (systemd_container.good()) { + result = CONTAINER_TYPE::DOCKER; + for (string line; getline(systemd_container, line);) { + if (line.find("docker") != string::npos) { + result = CONTAINER_TYPE::DOCKER; + break; + } else if (line.find("lxc") != string::npos) { + result = CONTAINER_TYPE::LXC; + break; + } } } + } catch (...) { + // no problem,we're just guessing } - } catch (...) { - //no problem,we're just guessing } + szSingleDrive += strlen(szSingleDrive) + 1; + ndrives++; } } -} return result; } -bool ExecutionEnvironment::is_docker() const { - // let's check we're not in linux under wine ;) ... -//int cont = wine_container(); - return false; -} -//TODO -bool ExecutionEnvironment::is_container() const { return is_docker(); } } // namespace os } // namespace license -- Gitblit v1.9.1