diff --git a/.gitignore b/.gitignore index bea015c..1b2fa0e 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,8 @@ .glide/ # custom +.idea +.vscode *.zip /*.conf /*.rule diff --git a/README.md b/README.md index 7fed04f..1e8d2a1 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,5 @@ Examples: ## Links -- [go-ss2](https://github.com/shadowsocks/go-shadowsocks2): ss protocol support - [conflag](https://github.com/nadoo/conflag): command line and config file parse support - [ArchLinux](https://www.archlinux.org/packages/community/x86_64/glider): a great linux distribution with glider pre-built package diff --git a/dns/client.go b/dns/client.go index 10f7fe3..7a97b4c 100644 --- a/dns/client.go +++ b/dns/client.go @@ -149,9 +149,7 @@ func (c *Client) exchange(qname string, reqBytes []byte, preferTCP bool) (server defer rc.Close() // TODO: support timeout setting for different upstream server - if len(servers) > 1 { - rc.SetDeadline(time.Now().Add(time.Duration(c.config.Timeout) * time.Second)) - } + rc.SetDeadline(time.Now().Add(time.Duration(c.config.Timeout) * time.Second)) switch network { case "tcp": diff --git a/proxy/vmess/client.go b/proxy/vmess/client.go index 9815fac..72dbd3c 100644 --- a/proxy/vmess/client.go +++ b/proxy/vmess/client.go @@ -208,7 +208,9 @@ func (c *Conn) DecodeRespHeader() error { stream := cipher.NewCFBDecrypter(block, c.respBodyIV[:]) buf := make([]byte, 4) - io.ReadFull(c.Conn, buf) + if _, err := io.ReadFull(c.Conn, buf); err != nil { + return err + } stream.XORKeyStream(buf, buf) if buf[0] != c.reqRespV {