From beef8490f52b595df5d676531cc8a905b7e3606f Mon Sep 17 00:00:00 2001 From: Ground0 Date: Thu, 30 Mar 2023 09:55:55 +0200 Subject: [PATCH] Rework Configuration Load, it is possible to set directly a xml String or a file --- inc/lweb_server_cfg.pbi | 22 +++++++++++++++------- inc/lweb_server_cfg_header.pbi | 2 +- server_example.pb | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/inc/lweb_server_cfg.pbi b/inc/lweb_server_cfg.pbi index d0f4fda..9c3f472 100644 --- a/inc/lweb_server_cfg.pbi +++ b/inc/lweb_server_cfg.pbi @@ -53,20 +53,28 @@ EndIf EndProcedure - Procedure server_initial(ConfigFile.s) + Procedure server_initial(ConfigOptions.s) ;Initialize Webserver from the Config File(s) Protected FileHandle.i, XMLHandle.i, DirectoryHandle.i - Protected XMLReaded.s - FileHandle = ReadFile(#PB_Any, ConfigFile) - If IsFile(FileHandle) - XMLReaded = ReadString(FileHandle, #PB_File_IgnoreEOL) - CloseFile(FileHandle) + Protected XMLReaded.s, ConfigFile.s + If Left(ConfigOptions, 5) = "file:" + ConfigFile = RemoveString(ConfigOptions, "file:") + FileHandle = ReadFile(#PB_Any, ConfigFile) + If IsFile(FileHandle) + XMLReaded = ReadString(FileHandle, #PB_File_IgnoreEOL) + CloseFile(FileHandle) + EndIf + Else + XMLReaded = ConfigOptions + EndIf + + If Len(XMLReaded) > 0 XMLHandle = ParseXML(#PB_Any, XMLReaded) If XMLStatus(XMLHandle) = #PB_XML_Success ExtractXMLStructure(MainXMLNode(XMLHandle), @configuration, server, #PB_XML_NoCase) FreeXML(XMLHandle) - ;Now we need to load + ;Now we need to load additional Config Files ResetMap(configuration\config_file()) While NextMapElement(configuration\config_file()) Debug configuration\config_file()\configtype diff --git a/inc/lweb_server_cfg_header.pbi b/inc/lweb_server_cfg_header.pbi index 9cd05a9..febc320 100644 --- a/inc/lweb_server_cfg_header.pbi +++ b/inc/lweb_server_cfg_header.pbi @@ -7,5 +7,5 @@ ;* Configuration functions. ;* -Declare server_initial(ConfigFile.s) +Declare server_initial(ConfigOptions.s) Declare.s server_get_config(Type.s, UUID.s = "") \ No newline at end of file diff --git a/server_example.pb b/server_example.pb index 67b8864..6b3aab8 100644 --- a/server_example.pb +++ b/server_example.pb @@ -49,7 +49,7 @@ PrintN("Read Configuration:") ;* ;* Read Configuration http & https Server ;* -If lhs_web::server_initial("cfg/server_config.xml") +If lhs_web::server_initial("file:cfg/server_config.xml") ldl::Logging("config succesfully loaded.") Else ldl::Logging("config load failed.")