Skip to content

Commit 026a4e6

Browse files
committed
Add Ping, disable directory browsing by default, Request logging
1 parent 9feed02 commit 026a4e6

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

tomdawg.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@ func headHandler(w http.ResponseWriter, r *http.Request) {
7070
w.Header().Set("Server", serverName)
7171
w.Header().Set("Content-Type", uploadResponseContentType)
7272

73-
log.Printf("RawQuery %s\n", r.URL.RawQuery)
74-
log.Printf("RawQuery %v\n", r.URL)
75-
7673
saveTo := path.Join(config.AssetPath, r.URL.Path)
7774
fileInfo, err := os.Stat(saveTo)
7875
if err == nil {
@@ -86,16 +83,21 @@ func headHandler(w http.ResponseWriter, r *http.Request) {
8683
func getHandler(w http.ResponseWriter, r *http.Request) {
8784
w.Header().Set("Server", serverName)
8885

89-
log.Printf("RawQuery %s\n", r.URL.RawQuery)
90-
log.Printf("RawQuery %v\n", r.URL)
91-
9286
saveTo := path.Join(config.AssetPath, r.URL.Path)
93-
_, err := os.Stat(saveTo)
94-
if err == nil {
95-
http.ServeFile(w, r, saveTo)
96-
} else {
87+
info, err := os.Stat(saveTo)
88+
89+
if err != nil {
9790
w.WriteHeader(404)
91+
return
9892
}
93+
94+
//Mabbe have allow directory traverse as configurable
95+
if info.IsDir() {
96+
w.WriteHeader(403)
97+
return
98+
}
99+
100+
http.ServeFile(w, r, saveTo)
99101
}
100102

101103
func postHandler(w http.ResponseWriter, r *http.Request) {
@@ -186,9 +188,6 @@ func putHandler(w http.ResponseWriter, r *http.Request) {
186188
w.Header().Set("Server", serverName)
187189
w.Header().Set("Content-Type", uploadResponseContentType)
188190

189-
log.Printf("RawQuery %s\n", r.URL.RawQuery)
190-
log.Printf("RawQuery %v\n", r.URL)
191-
192191
saveTo := path.Join(config.AssetPath, r.URL.Path)
193192

194193
saveToDir := filepath.Dir(saveTo)
@@ -303,9 +302,6 @@ func patchHandler(w http.ResponseWriter, r *http.Request) {
303302
w.Header().Set("Server", serverName)
304303
w.Header().Set("Content-Type", uploadResponseContentType)
305304
306-
log.Printf("RawQuery %s\n", r.URL.RawQuery)
307-
log.Printf("RawQuery %v\n", r.URL)
308-
309305
saveTo := path.Join(config.AssetPath, r.URL.Path)
310306
311307
fileInfo, err := os.Stat(saveTo)
@@ -325,13 +321,17 @@ func patchHandler(w http.ResponseWriter, r *http.Request) {
325321
*/
326322

327323
func short(w http.ResponseWriter, r *http.Request) {
328-
log.Printf("URL -> %v\n", r.URL)
329-
324+
log.Printf("URL -> %v, RemoteAddr -> %s, X-Forwarded-For -> %v \n", r.URL, r.RemoteAddr, r.Header.Get("X-Forwarded-For"))
325+
for k, v := range r.Header {
326+
log.Println(k, ":", v)
327+
}
330328
w.Header().Set("Server", serverName)
331329
switch r.Method {
332330
case "PUT", "POST":
333331
func() {
334332
w.Header().Set("Content-Type", uploadResponseContentType)
333+
//w.Header().Set("Access-Control-Allow-Origin", "*")
334+
w.Header().Set("Access-Control-Allow-Origin", r.Header.Get("Origin"))
335335

336336
//Content-Length is a must
337337
contentLength, err := strconv.ParseInt(r.Header.Get("Content-Length"), 10, 64)
@@ -370,15 +370,16 @@ func short(w http.ResponseWriter, r *http.Request) {
370370
case "OPTIONS":
371371
w.Header().Set("Access-Control-Allow-Headers", "Content-Type, X-Requested-With")
372372
w.Header().Set("Access-Control-Allow-Methods", "PUT, POST")
373-
//w.Header().Set("Access-Control-Allow-Origin", r.Header.Get("Origin"))
374-
w.Header().Set("Access-Control-Allow-Origin", "*")
373+
w.Header().Set("Access-Control-Allow-Origin", r.Header.Get("Origin"))
374+
//w.Header().Set("Access-Control-Allow-Origin", "*")
375375
default:
376376
//Method not supported
377377
w.WriteHeader(405)
378378
}
379379
}
380380

381381
func upload(w http.ResponseWriter, r *http.Request) {
382+
log.Printf("URL -> %v, RemoteAddr -> %s\n", r.URL, r.RemoteAddr)
382383
switch r.Method {
383384
case "PUT":
384385
putHandler(w, r)
@@ -421,6 +422,9 @@ func main() {
421422
log.Fatal(err)
422423
}
423424

425+
http.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) {
426+
w.Header().Set("Server", serverName)
427+
})
424428
http.HandleFunc("/", upload)
425429
http.HandleFunc("/short", short)
426430
log.Printf("Listening on port %d\n", config.ListenPort)

0 commit comments

Comments
 (0)