1
4
mirror of https://github.com/yunginnanet/HellPot synced 2024-06-25 15:28:01 +00:00

Handler: Make handler configurable

This commit is contained in:
Carl Johnson 2016-12-11 18:18:38 -05:00
parent 6a94b58990
commit b5b634b579
2 changed files with 25 additions and 21 deletions

@ -7,26 +7,30 @@ import (
"sync"
)
var pool sync.Pool
var DefaultHoneypot = NewHoneypot(DefaultMarkovMap, 100*1<<10)
func getBuffer() []byte {
x := pool.Get()
if buf, ok := x.([]byte); ok {
return buf
} else {
return make([]byte, 100*1<<10)
func NewHoneypot(mm MarkovMap, buffsize int) http.HandlerFunc {
var pool sync.Pool
getBuffer := func() []byte {
x := pool.Get()
if buf, ok := x.([]byte); ok {
return buf
} else {
return make([]byte, buffsize)
}
}
putBuffer := func(buf []byte) {
pool.Put(buf)
}
return func(w http.ResponseWriter, r *http.Request) {
log.Printf("Started writing: %v", r.URL)
buf := getBuffer()
defer putBuffer(buf)
io.WriteString(w, "<HTML>\n<BODY>\n")
n, err := io.CopyBuffer(w, DefaultMarkovMap, buf)
log.Printf("Wrote: %d (%v)", n, err)
}
}
func putBuffer(buf []byte) {
pool.Put(buf)
}
func Honeypot(w http.ResponseWriter, r *http.Request) {
log.Printf("Started writing: %v", r.URL)
buf := getBuffer()
defer putBuffer(buf)
io.WriteString(w, "<HTML>\n<BODY>\n")
n, err := io.CopyBuffer(w, DefaultMarkovMap, buf)
log.Printf("Wrote: %d (%v)", n, err)
}

@ -37,7 +37,7 @@ func main() {
path = "/"
}
http.HandleFunc(path, heff.Honeypot)
http.HandleFunc(path, heff.DefaultHoneypot)
log.Fatal(http.ListenAndServe(addr, nil))