@@ -70,9 +70,6 @@ func headHandler(w http.ResponseWriter, r *http.Request) {
70
70
w .Header ().Set ("Server" , serverName )
71
71
w .Header ().Set ("Content-Type" , uploadResponseContentType )
72
72
73
- log .Printf ("RawQuery %s\n " , r .URL .RawQuery )
74
- log .Printf ("RawQuery %v\n " , r .URL )
75
-
76
73
saveTo := path .Join (config .AssetPath , r .URL .Path )
77
74
fileInfo , err := os .Stat (saveTo )
78
75
if err == nil {
@@ -86,16 +83,21 @@ func headHandler(w http.ResponseWriter, r *http.Request) {
86
83
func getHandler (w http.ResponseWriter , r * http.Request ) {
87
84
w .Header ().Set ("Server" , serverName )
88
85
89
- log .Printf ("RawQuery %s\n " , r .URL .RawQuery )
90
- log .Printf ("RawQuery %v\n " , r .URL )
91
-
92
86
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 {
97
90
w .WriteHeader (404 )
91
+ return
98
92
}
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 )
99
101
}
100
102
101
103
func postHandler (w http.ResponseWriter , r * http.Request ) {
@@ -186,9 +188,6 @@ func putHandler(w http.ResponseWriter, r *http.Request) {
186
188
w .Header ().Set ("Server" , serverName )
187
189
w .Header ().Set ("Content-Type" , uploadResponseContentType )
188
190
189
- log .Printf ("RawQuery %s\n " , r .URL .RawQuery )
190
- log .Printf ("RawQuery %v\n " , r .URL )
191
-
192
191
saveTo := path .Join (config .AssetPath , r .URL .Path )
193
192
194
193
saveToDir := filepath .Dir (saveTo )
@@ -303,9 +302,6 @@ func patchHandler(w http.ResponseWriter, r *http.Request) {
303
302
w.Header().Set("Server", serverName)
304
303
w.Header().Set("Content-Type", uploadResponseContentType)
305
304
306
- log.Printf("RawQuery %s\n", r.URL.RawQuery)
307
- log.Printf("RawQuery %v\n", r.URL)
308
-
309
305
saveTo := path.Join(config.AssetPath, r.URL.Path)
310
306
311
307
fileInfo, err := os.Stat(saveTo)
@@ -325,13 +321,17 @@ func patchHandler(w http.ResponseWriter, r *http.Request) {
325
321
*/
326
322
327
323
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
+ }
330
328
w .Header ().Set ("Server" , serverName )
331
329
switch r .Method {
332
330
case "PUT" , "POST" :
333
331
func () {
334
332
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" ))
335
335
336
336
//Content-Length is a must
337
337
contentLength , err := strconv .ParseInt (r .Header .Get ("Content-Length" ), 10 , 64 )
@@ -370,15 +370,16 @@ func short(w http.ResponseWriter, r *http.Request) {
370
370
case "OPTIONS" :
371
371
w .Header ().Set ("Access-Control-Allow-Headers" , "Content-Type, X-Requested-With" )
372
372
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", "*")
375
375
default :
376
376
//Method not supported
377
377
w .WriteHeader (405 )
378
378
}
379
379
}
380
380
381
381
func upload (w http.ResponseWriter , r * http.Request ) {
382
+ log .Printf ("URL -> %v, RemoteAddr -> %s\n " , r .URL , r .RemoteAddr )
382
383
switch r .Method {
383
384
case "PUT" :
384
385
putHandler (w , r )
@@ -421,6 +422,9 @@ func main() {
421
422
log .Fatal (err )
422
423
}
423
424
425
+ http .HandleFunc ("/ping" , func (w http.ResponseWriter , r * http.Request ) {
426
+ w .Header ().Set ("Server" , serverName )
427
+ })
424
428
http .HandleFunc ("/" , upload )
425
429
http .HandleFunc ("/short" , short )
426
430
log .Printf ("Listening on port %d\n " , config .ListenPort )
0 commit comments