Skip to content

Commit 30120fa

Browse files
committed
[+] log layer [+]
1 parent 6238a21 commit 30120fa

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

pkg/httpserver/loglayer.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,44 @@
11
package httpserver
22

3+
import (
4+
"bytes"
5+
"io/ioutil"
6+
"net/http"
7+
"net/http/httputil"
8+
"path"
9+
10+
"github.com/projectdiscovery/gologger"
11+
)
12+
313
var (
414
EnableUpload bool
515
EnableVerbose bool
616
)
17+
18+
func (t *HTTPServer) loglayer(handler http.Handler) http.Handler {
19+
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
20+
fullRequest, _ := httputil.DumpRequest(r, true)
21+
lrw := newLoggingResponseWriter(w)
22+
handler.ServeHTTP(lrw, r)
23+
24+
// Handles file write if enabled
25+
if EnableUpload && r.Method == http.MethodPut {
26+
data, err := ioutil.ReadAll(r.Body)
27+
if err != nil {
28+
gologger.Print().Msgf("%s\n", err)
29+
}
30+
err = handleUpload(path.Base(r.URL.Path), data)
31+
if err != nil {
32+
gologger.Print().Msgf("%s\n", err)
33+
}
34+
}
35+
36+
if EnableVerbose {
37+
headers := new(bytes.Buffer)
38+
lrw.Header().Write(headers) //nolint
39+
gologger.Print().Msgf("\nRemote Address: %s\n%s\n%s %d %s\n%s\n%s\n", r.RemoteAddr, string(fullRequest), r.Proto, lrw.statusCode, http.StatusText(lrw.statusCode), headers.String(), string(lrw.Data))
40+
} else {
41+
gologger.Print().Msgf("%s \"%s %s %s\" %d %d", r.RemoteAddr, r.Method, r.URL, r.Proto, lrw.statusCode, len(lrw.Data))
42+
}
43+
})
44+
}

0 commit comments

Comments
 (0)