1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package main
- import (
- "fmt"
- "log"
- "net/http"
- "time"
- )
- //HTTPFlow is a type containg all the data we need.
- type HTTPFlow struct {
- request *http.Request
- response *http.Response
- sensitivity float64 // value who triggers decisions
- seniority int64
- refreshtime time.Duration
- }
- //DebugLog tells if logs are in debug mode or not
- var DebugLog bool
- //ProxyFlow represents our flow
- var ProxyFlow HTTPFlow
- //Classifier is our bayesian classifier
- var ZClassifier *ByClassifier
- //BlockMessage is the messgae we return when blocking
- var BlockMessage string
- //Maturity is the minimal amount of request , needed to say Zardoz has learnt enough
- var Maturity int64
- func init() {
- ZClassifier = new(ByClassifier)
- ZClassifier.enroll()
- ProxyFlow.sensitivity = 0.5
- ProxyFlow.seniority = 0
- bl, err := Asset("assets/message.txt")
- if err != nil {
- log.Println("Cannot marshal asset error message!!")
- BlockMessage = ""
- } else {
- BlockMessage = fmt.Sprintf("%s", bl)
- }
- }
|