From cfa77401f732218f0a37d71e8f2abef9f7e1c35a Mon Sep 17 00:00:00 2001 From: ncvicchi Date: Mon, 26 Aug 2024 19:22:29 -0300 Subject: [PATCH] feat: several requested changes, added modules to agent's main --- .gitignore | 2 +- src/CMakeLists.txt | 2 +- src/agent/src/agent.cpp | 3 +++ src/common/data_provider/CMakeLists.txt | 2 +- src/common/data_provider/include/sysInfo.hpp | 2 +- .../{sysInfoInterface.h => sysInfoInterface.hpp} | 0 src/common/data_provider/testtool/CMakeLists.txt | 2 +- src/modules/CMakeLists.txt | 4 ++-- src/modules/{configuration.h => configuration.hpp} | 0 src/modules/inventory/CMakeLists.txt | 2 +- .../inventory/include/{inventory.h => inventory.hpp} | 12 ++++-------- ...inventoryNormalizer.h => inventoryNormalizer.hpp} | 6 +----- src/modules/inventory/src/inventory.cpp | 2 +- src/modules/inventory/src/inventoryImp.cpp | 2 +- src/modules/inventory/src/inventoryNormalizer.cpp | 2 +- .../tests/invNormalizer/invNormalizer_test.h | 5 +---- .../tests/inventoryImp/inventoryImp_test.cpp | 2 +- .../{inventoryImp_test.h => inventoryImp_test.hpp} | 5 +---- src/modules/{moduleWrapper.h => moduleWrapper.hpp} | 7 ++----- src/modules/{main.cpp => modules.cpp} | 10 +++++----- src/modules/modules.hpp | 3 +++ src/modules/pool.cpp | 4 ++-- src/modules/{pool.h => pool.hpp} | 9 +++------ 23 files changed, 37 insertions(+), 51 deletions(-) rename src/common/data_provider/include/{sysInfoInterface.h => sysInfoInterface.hpp} (100%) rename src/modules/{configuration.h => configuration.hpp} (100%) rename src/modules/inventory/include/{inventory.h => inventory.hpp} (96%) rename src/modules/inventory/include/{inventoryNormalizer.h => inventoryNormalizer.hpp} (92%) rename src/modules/inventory/tests/inventoryImp/{inventoryImp_test.h => inventoryImp_test.hpp} (85%) rename src/modules/{moduleWrapper.h => moduleWrapper.hpp} (71%) rename src/modules/{main.cpp => modules.cpp} (86%) create mode 100644 src/modules/modules.hpp rename src/modules/{pool.h => pool.hpp} (87%) diff --git a/.gitignore b/.gitignore index eb2fcadcae..959586cb22 100644 --- a/.gitignore +++ b/.gitignore @@ -40,4 +40,4 @@ venv # Auto generated build files src/**/build/* -src/external/libdb/build_unix/ \ No newline at end of file +src/external/libdb/build_unix/* diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 56e3f3f8b1..f4a1ab7758 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,7 +29,7 @@ add_subdirectory(common) add_subdirectory(modules) add_executable(wazuh-agent agent/src/main.cpp) -target_link_libraries(wazuh-agent Agent) +target_link_libraries(wazuh-agent Agent modules) if(BUILD_TESTS) enable_testing() diff --git a/src/agent/src/agent.cpp b/src/agent/src/agent.cpp index f4f5ef1578..3ab2c8ed61 100644 --- a/src/agent/src/agent.cpp +++ b/src/agent/src/agent.cpp @@ -1,4 +1,5 @@ #include +#include "../../../modules/modules.hpp" #include #include @@ -38,5 +39,7 @@ void Agent::Run() [this]([[maybe_unused]] const std::string& response) { popMessagesFromQueue(m_messageQueue, MessageType::STATELESS); })); + m_taskManager.EnqueueTask([this]() { modulesExec(); }); + m_signalHandler.WaitForSignal(); } diff --git a/src/common/data_provider/CMakeLists.txt b/src/common/data_provider/CMakeLists.txt index af7fd6057f..55efcbd10e 100644 --- a/src/common/data_provider/CMakeLists.txt +++ b/src/common/data_provider/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.24) +cmake_minimum_required(VERSION 3.22) project(sysinfo) diff --git a/src/common/data_provider/include/sysInfo.hpp b/src/common/data_provider/include/sysInfo.hpp index 025d9a9a8c..c644c9c5f9 100644 --- a/src/common/data_provider/include/sysInfo.hpp +++ b/src/common/data_provider/include/sysInfo.hpp @@ -25,7 +25,7 @@ #define EXPORTED #endif -#include "sysInfoInterface.h" +#include "sysInfoInterface.hpp" constexpr auto KByte { diff --git a/src/common/data_provider/include/sysInfoInterface.h b/src/common/data_provider/include/sysInfoInterface.hpp similarity index 100% rename from src/common/data_provider/include/sysInfoInterface.h rename to src/common/data_provider/include/sysInfoInterface.hpp diff --git a/src/common/data_provider/testtool/CMakeLists.txt b/src/common/data_provider/testtool/CMakeLists.txt index 93fed6c572..d2b6b38fd2 100644 --- a/src/common/data_provider/testtool/CMakeLists.txt +++ b/src/common/data_provider/testtool/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.24) +cmake_minimum_required(VERSION 3.22) project(sysinfo_test_tool) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 581687ddc0..d5cbcf076c 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.24) +cmake_minimum_required(VERSION 3.22) project(Modules) @@ -7,7 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) add_subdirectory(inventory) -add_executable(modules main.cpp pool.cpp) +add_library(modules STATIC modules.cpp pool.cpp) target_include_directories(modules PRIVATE modules) diff --git a/src/modules/configuration.h b/src/modules/configuration.hpp similarity index 100% rename from src/modules/configuration.h rename to src/modules/configuration.hpp diff --git a/src/modules/inventory/CMakeLists.txt b/src/modules/inventory/CMakeLists.txt index f0207255ae..cf5eb4abc9 100644 --- a/src/modules/inventory/CMakeLists.txt +++ b/src/modules/inventory/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.24) +cmake_minimum_required(VERSION 3.22) project(Inventory) diff --git a/src/modules/inventory/include/inventory.h b/src/modules/inventory/include/inventory.hpp similarity index 96% rename from src/modules/inventory/include/inventory.h rename to src/modules/inventory/include/inventory.hpp index 62fe05478f..8c776ddd4e 100644 --- a/src/modules/inventory/include/inventory.h +++ b/src/modules/inventory/include/inventory.hpp @@ -1,5 +1,4 @@ -#ifndef INVENTORY_H -#define INVENTORY_H +#pragma once #include #include @@ -8,12 +7,12 @@ #include #include #include -#include "sysInfoInterface.h" -#include "configuration.h" +#include "sysInfoInterface.hpp" +#include "configuration.hpp" #include "logging_helper.h" #include "commonDefs.h" #include "dbsync.hpp" -#include "inventoryNormalizer.h" +#include "inventoryNormalizer.hpp" class Inventory { public: @@ -114,6 +113,3 @@ class Inventory { long sync_max_eps; // Maximum events per second for synchronization messages. }; - -#endif // INVENTORY_H - diff --git a/src/modules/inventory/include/inventoryNormalizer.h b/src/modules/inventory/include/inventoryNormalizer.hpp similarity index 92% rename from src/modules/inventory/include/inventoryNormalizer.h rename to src/modules/inventory/include/inventoryNormalizer.hpp index f88d462c62..4bb06abe55 100644 --- a/src/modules/inventory/include/inventoryNormalizer.h +++ b/src/modules/inventory/include/inventoryNormalizer.hpp @@ -8,8 +8,7 @@ * License (version 2) as published by the FSF - Free Software * Foundation. */ -#ifndef _INVENTORY_NORMALIZER_H -#define _INVENTORY_NORMALIZER_H +#pragma once #include #include #include @@ -31,6 +30,3 @@ class InvNormalizer const std::map m_typeExclusions; const std::map m_typeDictionary; }; - - -#endif //_INVENTORY_NORMALIZER_H diff --git a/src/modules/inventory/src/inventory.cpp b/src/modules/inventory/src/inventory.cpp index 69b14a7657..1c4d65132c 100644 --- a/src/modules/inventory/src/inventory.cpp +++ b/src/modules/inventory/src/inventory.cpp @@ -17,7 +17,7 @@ #include "string_op.h" #include "pthreads_op.h" -#include "inventory.h" +#include "inventory.hpp" #include "sysInfo.hpp" using namespace std; diff --git a/src/modules/inventory/src/inventoryImp.cpp b/src/modules/inventory/src/inventoryImp.cpp index bc234aeda4..9fe63c5bda 100644 --- a/src/modules/inventory/src/inventoryImp.cpp +++ b/src/modules/inventory/src/inventoryImp.cpp @@ -8,7 +8,7 @@ * License (version 2) as published by the FSF - Free Software * Foundation. */ -#include "inventory.h" +#include "inventory.hpp" #include #include #include "stringHelper.h" diff --git a/src/modules/inventory/src/inventoryNormalizer.cpp b/src/modules/inventory/src/inventoryNormalizer.cpp index db72834df5..24bab994cd 100644 --- a/src/modules/inventory/src/inventoryNormalizer.cpp +++ b/src/modules/inventory/src/inventoryNormalizer.cpp @@ -11,7 +11,7 @@ #include #include #include -#include +#include InvNormalizer::InvNormalizer(const std::string& configFile, const std::string& target) diff --git a/src/modules/inventory/tests/invNormalizer/invNormalizer_test.h b/src/modules/inventory/tests/invNormalizer/invNormalizer_test.h index a020636742..c9afab7f07 100644 --- a/src/modules/inventory/tests/invNormalizer/invNormalizer_test.h +++ b/src/modules/inventory/tests/invNormalizer/invNormalizer_test.h @@ -8,8 +8,7 @@ * License (version 2) as published by the FSF - Free Software * Foundation. */ -#ifndef _INV_NORMALIZER_TEST_H -#define _INV_NORMALIZER_TEST_H +#pragma once #include "gtest/gtest.h" #include "gmock/gmock.h" @@ -23,5 +22,3 @@ class InvNormalizerTest : public ::testing::Test void SetUp() override; void TearDown() override; }; - -#endif //_INV_NORMALIZER_TEST_H \ No newline at end of file diff --git a/src/modules/inventory/tests/inventoryImp/inventoryImp_test.cpp b/src/modules/inventory/tests/inventoryImp/inventoryImp_test.cpp index e1ea1e02dc..d9cb3bf7ec 100644 --- a/src/modules/inventory/tests/inventoryImp/inventoryImp_test.cpp +++ b/src/modules/inventory/tests/inventoryImp/inventoryImp_test.cpp @@ -9,7 +9,7 @@ * Foundation. */ #include -#include "inventoryImp_test.h" +#include "inventoryImp_test.hpp" #include "inventory.hpp" constexpr auto INVENTORY_DB_PATH {"TEMP.dbINVENTORY diff --git a/src/modules/inventory/tests/inventoryImp/inventoryImp_test.h b/src/modules/inventory/tests/inventoryImp/inventoryImp_test.hpp similarity index 85% rename from src/modules/inventory/tests/inventoryImp/inventoryImp_test.h rename to src/modules/inventory/tests/inventoryImp/inventoryImp_test.hpp index fe5d226025..be64bcb6e8 100644 --- a/src/modules/inventory/tests/inventoryImp/inventoryImp_test.h +++ b/src/modules/inventory/tests/inventoryImp/inventoryImp_test.hpp @@ -8,8 +8,7 @@ * License (version 2) as published by the FSF - Free Software * Foundation. */ -#ifndef _INVENTORY_IMP_TEST_H -#define _INVENTORY_IMP_TEST_H +#pragma once #include "gtest/gtest.h" #include "gmock/gmock.h" @@ -23,5 +22,3 @@ class InventoryImpTest : public ::testing::Test void SetUp() override; void TearDown() override; }; - -#endif //_INVENTORY_IMP_TEST_H \ No newline at end of file diff --git a/src/modules/moduleWrapper.h b/src/modules/moduleWrapper.hpp similarity index 71% rename from src/modules/moduleWrapper.h rename to src/modules/moduleWrapper.hpp index 8e1ffb595a..f085c3ead7 100644 --- a/src/modules/moduleWrapper.h +++ b/src/modules/moduleWrapper.hpp @@ -1,9 +1,8 @@ -#ifndef MODULE_WRAPPER_H -#define MODULE_WRAPPER_H +#pragma once #include #include -#include "configuration.h" +#include "configuration.hpp" using namespace std; @@ -14,5 +13,3 @@ struct ModuleWrapper { function command; function name; }; - -#endif // MODULE_WRAPPER_H diff --git a/src/modules/main.cpp b/src/modules/modules.cpp similarity index 86% rename from src/modules/main.cpp rename to src/modules/modules.cpp index 310c51d0ee..8a5b9ed9c7 100644 --- a/src/modules/main.cpp +++ b/src/modules/modules.cpp @@ -1,13 +1,13 @@ #include #include -#include "pool.h" -#include "configuration.h" +#include "pool.hpp" +#include "configuration.hpp" using namespace std; -Pool* global_pool = nullptr; +static Pool* global_pool = nullptr; -void signalHandler(int signal) { +static void signalHandler(int signal) { switch (signal) { case SIGHUP: @@ -23,7 +23,7 @@ void signalHandler(int signal) { } } -int main() { +int modulesExec(){ Pool pool; global_pool = &pool; Configuration config; diff --git a/src/modules/modules.hpp b/src/modules/modules.hpp new file mode 100644 index 0000000000..d2323b3d1c --- /dev/null +++ b/src/modules/modules.hpp @@ -0,0 +1,3 @@ +#pragma once + +int modulesExec(); diff --git a/src/modules/pool.cpp b/src/modules/pool.cpp index 6ce99b1c48..e791a2a8b5 100644 --- a/src/modules/pool.cpp +++ b/src/modules/pool.cpp @@ -1,6 +1,6 @@ #include -#include "inventory.h" -#include "pool.h" +#include "inventory.hpp" +#include "pool.hpp" Pool::Pool() { // addModule(make_shared()); diff --git a/src/modules/pool.h b/src/modules/pool.hpp similarity index 87% rename from src/modules/pool.h rename to src/modules/pool.hpp index 247208a2fa..d14ff31ae0 100644 --- a/src/modules/pool.h +++ b/src/modules/pool.hpp @@ -1,12 +1,11 @@ -#ifndef POOL_H -#define POOL_H +#pragma once #include #include #include #include -#include "configuration.h" -#include "moduleWrapper.h" +#include "configuration.hpp" +#include "moduleWrapper.hpp" using namespace std; @@ -35,5 +34,3 @@ class Pool { map> modules; vector threads; }; - -#endif // POOL_H