From f0ad9a6b539b61fd4460c19a5df14fe8f4c268ec Mon Sep 17 00:00:00 2001 From: Caleb Gardner Date: Sun, 30 Jan 2022 09:53:10 -0600 Subject: [PATCH] Small changes to serve SWAssistant better --- go.mod | 2 +- web.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 07e9d51..1cb2fac 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/CalebQ42/darkstorm-server go 1.17 -require github.com/1lann/udp-forward v0.0.0-20191015034046-6b774a53ea39 // indirect +require github.com/1lann/udp-forward v0.0.0-20191015034046-6b774a53ea39 diff --git a/web.go b/web.go index 8134ada..e271e01 100644 --- a/web.go +++ b/web.go @@ -4,6 +4,9 @@ import ( "flag" "log" "net/http" + "os" + "path" + "strings" ) func webserver() { @@ -19,8 +22,21 @@ func webserver() { quitChan <- "web arg" return } + http.Handle("/SWAssistant/", swaHandler{}) http.Handle("/", http.FileServer(http.Dir(path))) err := http.ListenAndServeTLS(":443", keyPath+"/cert.pem", keyPath+"/key.pem", nil) log.Println("Error while serving website:", err) quitChan <- "web err" } + +type swaHandler struct { +} + +func (s swaHandler) ServeHTTP(writer http.ResponseWriter, req *http.Request) { + if _, err := os.Open(path.Join(flag.Arg(0) + req.URL.EscapedPath())); strings.Contains(req.URL.EscapedPath(), "#") || err == nil { + http.FileServer(http.Dir(flag.Arg(0))).ServeHTTP(writer, req) + } else { + http.Redirect(writer, req, "https://darkstorm.tech/SWAssistant/#"+strings.TrimPrefix(req.URL.EscapedPath(), "/SWAssistant"), http.StatusFound) + // log.Println("https://darkstorm.tech/SWAssistant/#" + strings.TrimPrefix(req.URL.EscapedPath(), "/SWAssistant")) + } +}