diff --git a/services/http.go b/services/http.go index 7b5c472..799bd66 100644 --- a/services/http.go +++ b/services/http.go @@ -76,13 +76,20 @@ func (s *HTTP) callback(inConn net.Conn) { return } address := req.Host + if req.IsHTTPS() { + s.checker.Add(address, true, req.Method, "", nil) + } else { + s.checker.Add(address, false, req.Method, req.URL, req.HeadBuf) + } useProxy := true if *s.cfg.Parent == "" { useProxy = false } else if *s.cfg.Always { useProxy = true } else { + //var n, m uint useProxy, _, _ = s.checker.IsBlocked(req.Host) + //log.Printf("blocked ? : %v, %s , fail:%d ,success:%d", useProxy, address, n, m) } log.Printf("use proxy : %v, %s", useProxy, address) //os.Exit(0) diff --git a/utils/structs.go b/utils/structs.go index 101a10f..d5d6da3 100644 --- a/utils/structs.go +++ b/utils/structs.go @@ -113,14 +113,17 @@ func (c *Checker) isNeedCheck(item CheckerItem) bool { } func (c *Checker) IsBlocked(address string) (blocked bool, failN, successN uint) { if c.domainIsInMap(address, true) { + //log.Printf("%s in blocked ? true", address) return true, 0, 0 } if c.domainIsInMap(address, false) { + //log.Printf("%s in direct ? true", address) return false, 0, 0 } _item, ok := c.data.Get(address) if !ok { + //log.Printf("%s not in map, blocked true", address) return true, 0, 0 } item := _item.(CheckerItem)