From 060e663aaa0b985d915d5e5a0dbd454afccfb089 Mon Sep 17 00:00:00 2001 From: Ground0 Date: Mon, 30 Nov 2020 09:50:36 +0100 Subject: [PATCH] Add a Simple Webserver configurable (HTTP&HTTPS) --- lhttpd.ini | 16 ++++++++++++++ lhttpd.pb | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 lhttpd.ini create mode 100644 lhttpd.pb diff --git a/lhttpd.ini b/lhttpd.ini new file mode 100644 index 0000000..16fb182 --- /dev/null +++ b/lhttpd.ini @@ -0,0 +1,16 @@ + +[lhttpd] +HTTP_Port=8081 +HTTP_Binding=0.0.0.0 +HTTPS_CA=/home/renlin/dev/libressl/sample/test_ca.pem +HTTPS_Cert=/home/renlin/dev/libressl/sample/test_server_cert.pem +HTTPS_Key=/home/renlin/dev/libressl/sample/test_server_key.pem +HTTPS_Key_Pass=test-server-pass +HTTPS_Port=8444 +HTTPS_Binding=127.0.0.1 +HTTPS_enable=1 +Defaultfile=/index.html +Basedirectory=/home/renlin/testweb/ +Error400_Handling=integrated +MaxClients=100 +Filememorycache=0 diff --git a/lhttpd.pb b/lhttpd.pb new file mode 100644 index 0000000..98e5b53 --- /dev/null +++ b/lhttpd.pb @@ -0,0 +1,65 @@ +;**************************** +;* +;* Lihaso Web Server (lhttpd) +;* +;* (c)2020 by Linder Hard- und Software +;* +;* V0.5 +;* - Simple webserver for HTTP & HTTPS +;* + +EnableExplicit + +;* +;* Variable Declaration. +;* + +XIncludeFile "lweb_header.pbi" +XIncludeFile "lweb.pbi" + +OpenConsole("Test") + +If OpenPreferences("lhttpd.ini", #PB_Preference_GroupSeparator) + If PreferenceGroup("lhttpd") + lhs_web::set_config(lhs_web::#conf_port, ReadPreferenceString("HTTP_Port","8081")) + lhs_web::set_config(lhs_web::#conf_binding, ReadPreferenceString("HTTP_Binding","0.0.0.0")) + lhs_web::set_config(lhs_web::#conf_HTTPS_CA, ReadPreferenceString("HTTPS_CA","/home/renlin/dev/libressl/sample/test_ca.pem")) + lhs_web::set_config(lhs_web::#conf_HTTPS_Cert, ReadPreferenceString("HTTPS_Cert","/home/renlin/dev/libressl/sample/test_server_cert.pem")) + lhs_web::set_config(lhs_web::#conf_HTTPS_Key, ReadPreferenceString("HTTPS_Key","/home/renlin/dev/libressl/sample/test_server_key.pem")) + lhs_web::set_config(lhs_web::#conf_HTTPS_Key_Pass, ReadPreferenceString("HTTPS_Key_Pass","test-server-pass")) + lhs_web::set_config(lhs_web::#conf_HTTPS_Port, ReadPreferenceString("HTTPS_Port","8444")) + lhs_web::set_config(lhs_web::#conf_HTTPS_Binding, ReadPreferenceString("HTTPS_Binding","127.0.0.1")) + lhs_web::set_config(lhs_web::#conf_HTTPS_Enable, ReadPreferenceString("HTTPS_enable","0")) + lhs_web::set_config(lhs_web::#conf_defaultfile, ReadPreferenceString("Defaultfile","/index.html")) + lhs_web::set_config(lhs_web::#conf_basedir, ReadPreferenceString("Basedirectory","/home/renlin/testweb/")) + lhs_web::set_config(lhs_web::#conf_error400, ReadPreferenceString("Error400_Handling","integrated")) + lhs_web::set_config(lhs_web::#conf_max_clients, ReadPreferenceString("MaxClients","100")) + lhs_web::set_config(lhs_web::#conf_cache_enable, ReadPreferenceString("Filememorycache","0")) + ClosePreferences() + Else + PrintN("No correct config file -> End") + End + EndIf +Else + PrintN("Could not open config file.") +EndIf + +;* +;* includes +;* + +If lhs_web::start_server() + Debug "Server gestartet" + lhs_web::get_config(lhs_web::#conf_port) +Else + Debug "Fehlgeschlagen" + End +EndIf + +PrintN("Webserver") +PrintN("HTTP an Port:"+lhs_web::get_config(lhs_web::#conf_port)) +PrintN("HTTPS an Port:"+lhs_web::get_config(lhs_web::#conf_HTTPS_Port)) +PrintN("Press Enter to Exit") +Input() + + +End