httpserver/main.go

30 lines
913 B
Go
Raw Normal View History

2024-07-11 18:18:29 +01:00
package httpserver
import (
"crypto/tls"
"errors"
"fmt"
"net/http"
)
func StartServer(port string, path string, address string, protocolVer string) (error, int) {
var httpServer *http.Server
addressPort := address + ":" + port
fileServer := http.FileServer(http.Dir(path))
fmt.Println("Serving HTTP on", address, "port", port, "(http://"+address+":"+port+"/) ...")
if protocolVer == "2.0" || protocolVer == "2" {
httpServer = &http.Server{Addr: addressPort, Handler: fileServer, TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler))}
} else {
httpServer = &http.Server{Addr: addressPort, Handler: fileServer}
}
err := httpServer.ListenAndServe()
if err != nil {
if err.Error() == "permission denied" || err.Error() == "listen tcp "+addressPort+": bind: permission denied" {
return errors.New("permission denied"), 1
} else {
return err, 1
}
}
return nil, 0
}