diff --git a/Source/FicsitRemoteMonitoring/FicsitRemoteMonitoring.build.cs b/Source/FicsitRemoteMonitoring/FicsitRemoteMonitoring.build.cs index da6f245f..8ab4880f 100644 --- a/Source/FicsitRemoteMonitoring/FicsitRemoteMonitoring.build.cs +++ b/Source/FicsitRemoteMonitoring/FicsitRemoteMonitoring.build.cs @@ -97,8 +97,8 @@ public bool LoaduWebSockets(ReadOnlyTargetRules Target) }); } - RuntimeDependencies.Add(Path.Combine(LibrariesPath, "zlib1.dll")); - RuntimeDependencies.Add(Path.Combine(LibrariesPath, "uv.dll")); + RuntimeDependencies.Add("$(BinaryOutputDir)/uv.dll", Path.Combine(LibrariesPath, "uv.dll")); + RuntimeDependencies.Add("$(BinaryOutputDir)/zlib1.dll", Path.Combine(LibrariesPath, "zlib1.dll")); CopyToBinaries(Path.Combine(LibrariesPath, "zlib1.dll"), Target); CopyToBinaries(Path.Combine(LibrariesPath, "uv.dll"), Target); diff --git a/Source/FicsitRemoteMonitoring/Private/FRMConfigInitSubsystem.cpp b/Source/FicsitRemoteMonitoring/Private/FRMConfigInitSubsystem.cpp index 27f5cc9b..bf878887 100644 --- a/Source/FicsitRemoteMonitoring/Private/FRMConfigInitSubsystem.cpp +++ b/Source/FicsitRemoteMonitoring/Private/FRMConfigInitSubsystem.cpp @@ -1,5 +1,6 @@ #include "FRMConfigInitSubsystem.h" #include "Configuration/ConfigManager.h" +#include "ConfigPropertyString.h" #include "Engine/Engine.h" void UFRMConfigInitSubsystem::Initialize(FSubsystemCollectionBase& Collection) @@ -23,7 +24,7 @@ void UFRMConfigInitSubsystem::Initialize(FSubsystemCollectionBase& Collection) if (HttpConfig.Authentication_Token.IsEmpty()) { HttpConfig.Authentication_Token = GenerateAuthToken(32); - HttpConfig.Save(GetWorld()); + SaveHttpAuthToken(ConfigManager); UE_LOG(LogTemp, Log, TEXT("[FRMConfigInitSubsystem] Generated and saved new token: %s"), *HttpConfig.Authentication_Token); } @@ -35,6 +36,28 @@ void UFRMConfigInitSubsystem::Initialize(FSubsystemCollectionBase& Collection) AuthenticationToken = HttpConfig.Authentication_Token; } +void UFRMConfigInitSubsystem::SaveHttpAuthToken(UConfigManager* ConfigManager) +{ + FConfigId ConfigId{ "FicsitRemoteMonitoring", "WebServer" }; + + UConfigPropertySection* ConfigurationRootSection = ConfigManager->GetConfigurationRootSection(ConfigId); + if (!ConfigurationRootSection) + { + UE_LOG(LogTemp, Warning, TEXT("[FRMConfigInitSubsystem] ConfigurationRootSection is null.")); + return; + } + + if (ConfigurationRootSection->SectionProperties.Contains("Authentication_Token")) + { + if (UConfigPropertyString* AuthTokenProperty = Cast(ConfigurationRootSection->SectionProperties["Authentication_Token"])) + { + AuthTokenProperty->Value = HttpConfig.Authentication_Token; + } + } + + ConfigManager->MarkConfigurationDirty(ConfigId); +} + FString UFRMConfigInitSubsystem::GenerateAuthToken(const int32 Length) { const FString Characters = TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); @@ -47,4 +70,4 @@ FString UFRMConfigInitSubsystem::GenerateAuthToken(const int32 Length) } return RandomString; -} +} \ No newline at end of file diff --git a/Source/FicsitRemoteMonitoring/Public/Configs/Config_HTTPStruct.h b/Source/FicsitRemoteMonitoring/Public/Configs/Config_HTTPStruct.h index 3a685671..04a1bcf1 100644 --- a/Source/FicsitRemoteMonitoring/Public/Configs/Config_HTTPStruct.h +++ b/Source/FicsitRemoteMonitoring/Public/Configs/Config_HTTPStruct.h @@ -35,19 +35,5 @@ struct FConfig_HTTPStruct { } return ConfigStruct; } - - void Save(UWorld* World) - { - FConfigId ConfigId{"FicsitRemoteMonitoring", "WebServer"}; - UConfigManager* ConfigManager = World->GetGameInstance()->GetSubsystem(); - UConfigPropertySection* ConfigurationRootSection = ConfigManager->GetConfigurationRootSection(ConfigId); - - if (ConfigurationRootSection->SectionProperties.Contains("Authentication_Token")) - { - Cast(ConfigurationRootSection->SectionProperties["Authentication_Token"])->Value = Authentication_Token; - } - - ConfigManager->MarkConfigurationDirty(ConfigId); - } }; diff --git a/Source/FicsitRemoteMonitoring/Public/FRMConfigInitSubsystem.h b/Source/FicsitRemoteMonitoring/Public/FRMConfigInitSubsystem.h index 73efc6fb..053045b7 100644 --- a/Source/FicsitRemoteMonitoring/Public/FRMConfigInitSubsystem.h +++ b/Source/FicsitRemoteMonitoring/Public/FRMConfigInitSubsystem.h @@ -7,6 +7,8 @@ #include "Config_FactoryStruct.h" #include "FRMConfigInitSubsystem.generated.h" +class UConfigManager; + UCLASS() class FICSITREMOTEMONITORING_API UFRMConfigInitSubsystem : public UGameInstanceSubsystem { @@ -30,4 +32,5 @@ class FICSITREMOTEMONITORING_API UFRMConfigInitSubsystem : public UGameInstanceS FConfig_FactoryStruct FactoryConfig; FString GenerateAuthToken(int32 Length); + void SaveHttpAuthToken(UConfigManager* ConfigManager); };