summaryrefslogtreecommitdiff
path: root/cmd/_____/http/static.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/_____/http/static.go')
-rw-r--r--cmd/_____/http/static.go68
1 files changed, 0 insertions, 68 deletions
diff --git a/cmd/_____/http/static.go b/cmd/_____/http/static.go
deleted file mode 100644
index b055099f..00000000
--- a/cmd/_____/http/static.go
+++ /dev/null
@@ -1,68 +0,0 @@
-package http
-
-import (
- "github.com/sirupsen/logrus"
- "net/http"
- "os"
- "path"
- "path/filepath"
- "strings"
-)
-
-var forbiddenFiles = []string{".php", ".htaccess"}
-
-// staticServer serves static files
-type staticServer struct {
- root http.Dir
-}
-
-// serve attempts to serve static file and returns true in case of success, will return false in case if file not
-// found, not allowed or on read error.
-func (svr *staticServer) serve(w http.ResponseWriter, r *http.Request) bool {
- fpath := r.URL.Path
- if !strings.HasPrefix(fpath, "/") {
- fpath = "/" + fpath
- }
- fpath = path.Clean(fpath)
-
- if svr.forbidden(fpath) {
- logrus.Warningf("attempt to access forbidden file %s", fpath) // todo: better logs
- return false
- }
-
- f, err := svr.root.Open(fpath)
- if err != nil {
- if !os.IsNotExist(err) {
- logrus.Error(err) //todo: rr or access error
- }
-
- return false
- }
- defer f.Close()
-
- d, err := f.Stat()
- if err != nil {
- logrus.Error(err) //todo: rr or access error
- return false
- }
-
- if d.IsDir() {
- // do not serve directories
- return false
- }
-
- http.ServeContent(w, r, d.Name(), d.ModTime(), f)
- return true
-}
-
-// forbidden returns true if file has forbidden extension.
-func (svr *staticServer) forbidden(path string) bool {
- ext := strings.ToLower(filepath.Ext(path))
- for _, exl := range forbiddenFiles {
- if ext == exl {
- return true
- }
- }
-
- return false
-}