Merge pull request #139 from snail007/master

6.1
This commit is contained in:
snail007
2018-09-11 19:29:16 +08:00
committed by GitHub
8 changed files with 25 additions and 6 deletions

View File

@ -1,5 +1,8 @@
proxy更新日志
v6.1
1.黑白名单支持设置顶级域了,比如:com,匹配所有的.com域名
v6.0 企业版开源啦
本次更新主要是把企业版开源,把企业版代码合并到现在的开源goproxy当中,继续遵循GPLv3,免费开源,
之所以直接跳过5.x,用6.0版本号是为了与现有开源版本做一个明显的区分,下面功能主要来自企业版.

View File

@ -181,7 +181,7 @@ curl -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.s
下载地址:https://github.com/snail007/goproxy/releases
```shell
cd /root/proxy/
wget https://github.com/snail007/goproxy/releases/download/v6.0/proxy-linux-amd64.tar.gz
wget https://github.com/snail007/goproxy/releases/download/v6.1/proxy-linux-amd64.tar.gz
```
#### **2.下载自动安装脚本**
```shell

View File

@ -1 +1 @@
6.0
6.1

View File

@ -39,8 +39,11 @@ func (c *CompStream) Write(p []byte) (n int, err error) {
return n, err
}
func (c *CompStream) Close() error {
return c.conn.Close()
func (c *CompStream) Close() (err error) {
err = c.conn.Close()
c.r = nil
c.w = nil
return
}
func (c *CompStream) LocalAddr() net.Addr {
return c.conn.LocalAddr()

View File

@ -38,3 +38,10 @@ func (s *Conn) Read(b []byte) (n int, err error) {
func (s *Conn) Write(b []byte) (n int, err error) {
return s.w.Write(b)
}
func (s *Conn) Close() (err error) {
err = s.Conn.Close()
s.Cipher = nil
s.r = nil
s.w = nil
return err
}

View File

@ -5,7 +5,7 @@ if [ -e /tmp/proxy ]; then
fi
mkdir /tmp/proxy
cd /tmp/proxy
wget https://github.com/snail007/goproxy/releases/download/v6.0/proxy-linux-amd64.tar.gz
wget https://github.com/snail007/goproxy/releases/download/v6.1/proxy-linux-amd64.tar.gz
# #install proxy
tar zxvf proxy-linux-amd64.tar.gz

View File

@ -6,7 +6,7 @@ type LeakyBuf struct {
freeList chan []byte
}
const LeakyBufSize = 2048 // data.len(2) + hmacsha1(10) + data(4096)
const LeakyBufSize = 1024 // data.len(2) + hmacsha1(10) + data(4096)
const maxNBuf = 2048
var LeakyBuffer = NewLeakyBuf(maxNBuf, LeakyBufSize)

View File

@ -179,6 +179,12 @@ func (c *Checker) domainIsInMap(address string, blockedMap bool) bool {
subSlice := domainSlice[:len(domainSlice)-1]
topDomain := strings.Join(domainSlice[len(domainSlice)-1:], ".")
checkDomain := topDomain
if !blockedMap && c.directMap.Has(checkDomain) {
return true
}
if blockedMap && c.blockedMap.Has(checkDomain) {
return true
}
for i := len(subSlice) - 1; i >= 0; i-- {
checkDomain = subSlice[i] + "." + checkDomain
if !blockedMap && c.directMap.Has(checkDomain) {