This commit is contained in:
arraykeys@gmail.com
2018-06-27 11:30:44 +08:00
5 changed files with 14 additions and 4 deletions

View File

@ -1,6 +1,8 @@
proxy更新日志
v5.1
1.优化了kcp默认mtu配置,调整为450.
2.优化了HTTP(S)\SOCKS5代理智能判断更加精确。
3.fix #97 , 修复了RemoveProxyHeaders方法忽略了第一行的bug。
v5.0
1.修复了SPS多端口无效的bug.

View File

@ -278,7 +278,7 @@ func (s *HTTP) callback(inConn net.Conn) {
useProxy = true
} else {
k := s.Resolve(address)
s.checker.Add(k)
s.checker.Add(address, k)
//var n, m uint
useProxy, _, _ = s.checker.IsBlocked(k)
//s.log.Printf("blocked ? : %v, %s , fail:%d ,success:%d", useProxy, address, n, m)

View File

@ -563,7 +563,7 @@ func (s *Socks) proxyTCP(inConn *net.Conn, methodReq socks.MethodsRequest, reque
useProxy = false
} else {
k := s.Resolve(request.Addr())
s.checker.Add(k)
s.checker.Add(request.Addr(), k)
useProxy, _, _ = s.checker.IsBlocked(k)
}
if useProxy {

View File

@ -640,12 +640,18 @@ func RemoveProxyHeaders(head []byte) []byte {
var keys = map[string]bool{}
lines := bytes.Split(head, []byte("\r\n"))
IsBody := false
i := -1
for _, line := range lines {
i++
if len(line) == 0 || IsBody {
newLines = append(newLines, line)
IsBody = true
} else {
hline := bytes.SplitN(line, []byte(":"), 2)
if i == 0 && IsHTTP(head) {
newLines = append(newLines, line)
continue
}
if len(hline) != 2 {
continue
}

View File

@ -41,6 +41,7 @@ type CheckerItem struct {
Data []byte
SuccessCount uint
FailCount uint
Key string
}
//NewChecker args:
@ -173,13 +174,14 @@ func (c *Checker) domainIsInMap(address string, blockedMap bool) bool {
}
return false
}
func (c *Checker) Add(address string) {
if c.domainIsInMap(address, false) || c.domainIsInMap(address, true) {
func (c *Checker) Add(key, address string) {
if c.domainIsInMap(key, false) || c.domainIsInMap(key, true) {
return
}
var item CheckerItem
item = CheckerItem{
Host: address,
Key: key,
}
c.data.SetIfAbsent(item.Host, item)
}