www folder parameter

This commit is contained in:
uan
2025-08-03 15:53:52 +02:00
parent b68bb68981
commit f12f359476
2 changed files with 11 additions and 3 deletions

View File

@@ -14,6 +14,7 @@ func main() {
port := parser.Int("p", "port", &argparse.Options{Default: 8040})
logFolder := parser.String("l", "logs-folder", &argparse.Options{Default: "logs"})
configFolder := parser.String("c", "config-folder", &argparse.Options{Default: "config"})
wwwFolder := parser.String("w", "www-folder", &argparse.Options{Default: "www"})
err := parser.Parse(os.Args)
if err != nil {
@@ -23,6 +24,6 @@ func main() {
return
}
webserver := miniws.NewWebServer(*port, *logFolder, *configFolder)
webserver := miniws.NewWebServer(*port, *logFolder, *configFolder, *wwwFolder)
webserver.Run()
}

View File

@@ -22,18 +22,20 @@ type WebServer struct {
logger *Logger
port int
configFolder string
wwwFolder string
ipFilter []string
userAgentFilter []string
ipFilterMode FilterMode
userAgentFilterMode FilterMode
}
func NewWebServer(port_ int, logFolder_, configFolder_ string) *WebServer {
func NewWebServer(port_ int, logFolder_, configFolder_, wwwFolder_ string) *WebServer {
return &WebServer{
logger: NewLogger(logFolder_),
port: port_,
configFolder: configFolder_,
wwwFolder: wwwFolder_,
ipFilter: make([]string, 0),
userAgentFilter: make([]string, 0),
ipFilterMode: FILTER_MODE_BLACKLIST,
@@ -43,6 +45,11 @@ func NewWebServer(port_ int, logFolder_, configFolder_ string) *WebServer {
func (ws *WebServer) Run() {
_, err := os.Stat(ws.wwwFolder)
if errors.Is(err, os.ErrNotExist) {
log.Fatalln("Fatal: www folder " + ws.wwwFolder + " does not exist")
}
ws.ipFilterMode, ws.ipFilter = ws.parseFilterPanics(FILENAME_IPFILTER)
ws.userAgentFilterMode, ws.userAgentFilter = ws.parseFilterPanics(FILENAME_USERAGENTFILTER)
@@ -146,7 +153,7 @@ func (ws *WebServer) get(writer http.ResponseWriter, req *http.Request) {
return
}
fetchedData, fetchErr := ws.fetchFileContents(req.URL.Path)
fetchedData, fetchErr := ws.fetchFileContents(ensureSlashSuffix(ws.wwwFolder) + req.URL.Path)
sentBytes := 0