mirror of
https://github.com/shlldev/miniws.git
synced 2025-09-03 11:20:59 +02:00
www folder parameter
This commit is contained in:
3
main.go
3
main.go
@@ -14,6 +14,7 @@ func main() {
|
|||||||
port := parser.Int("p", "port", &argparse.Options{Default: 8040})
|
port := parser.Int("p", "port", &argparse.Options{Default: 8040})
|
||||||
logFolder := parser.String("l", "logs-folder", &argparse.Options{Default: "logs"})
|
logFolder := parser.String("l", "logs-folder", &argparse.Options{Default: "logs"})
|
||||||
configFolder := parser.String("c", "config-folder", &argparse.Options{Default: "config"})
|
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)
|
err := parser.Parse(os.Args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -23,6 +24,6 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
webserver := miniws.NewWebServer(*port, *logFolder, *configFolder)
|
webserver := miniws.NewWebServer(*port, *logFolder, *configFolder, *wwwFolder)
|
||||||
webserver.Run()
|
webserver.Run()
|
||||||
}
|
}
|
||||||
|
@@ -22,18 +22,20 @@ type WebServer struct {
|
|||||||
logger *Logger
|
logger *Logger
|
||||||
port int
|
port int
|
||||||
configFolder string
|
configFolder string
|
||||||
|
wwwFolder string
|
||||||
ipFilter []string
|
ipFilter []string
|
||||||
userAgentFilter []string
|
userAgentFilter []string
|
||||||
ipFilterMode FilterMode
|
ipFilterMode FilterMode
|
||||||
userAgentFilterMode FilterMode
|
userAgentFilterMode FilterMode
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWebServer(port_ int, logFolder_, configFolder_ string) *WebServer {
|
func NewWebServer(port_ int, logFolder_, configFolder_, wwwFolder_ string) *WebServer {
|
||||||
|
|
||||||
return &WebServer{
|
return &WebServer{
|
||||||
logger: NewLogger(logFolder_),
|
logger: NewLogger(logFolder_),
|
||||||
port: port_,
|
port: port_,
|
||||||
configFolder: configFolder_,
|
configFolder: configFolder_,
|
||||||
|
wwwFolder: wwwFolder_,
|
||||||
ipFilter: make([]string, 0),
|
ipFilter: make([]string, 0),
|
||||||
userAgentFilter: make([]string, 0),
|
userAgentFilter: make([]string, 0),
|
||||||
ipFilterMode: FILTER_MODE_BLACKLIST,
|
ipFilterMode: FILTER_MODE_BLACKLIST,
|
||||||
@@ -43,6 +45,11 @@ func NewWebServer(port_ int, logFolder_, configFolder_ string) *WebServer {
|
|||||||
|
|
||||||
func (ws *WebServer) Run() {
|
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.ipFilterMode, ws.ipFilter = ws.parseFilterPanics(FILENAME_IPFILTER)
|
||||||
ws.userAgentFilterMode, ws.userAgentFilter = ws.parseFilterPanics(FILENAME_USERAGENTFILTER)
|
ws.userAgentFilterMode, ws.userAgentFilter = ws.parseFilterPanics(FILENAME_USERAGENTFILTER)
|
||||||
|
|
||||||
@@ -146,7 +153,7 @@ func (ws *WebServer) get(writer http.ResponseWriter, req *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchedData, fetchErr := ws.fetchFileContents(req.URL.Path)
|
fetchedData, fetchErr := ws.fetchFileContents(ensureSlashSuffix(ws.wwwFolder) + req.URL.Path)
|
||||||
|
|
||||||
sentBytes := 0
|
sentBytes := 0
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user