diff --git a/.travis.yml b/.travis.yml index 49f08d3..15fc6d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: go go: - # - "1.12.x" + - "1.12.x" - master diff --git a/README.md b/README.md index 54d848c..f499073 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Binary: - [https://github.com/nadoo/glider/releases](https://github.com/nadoo/glider/releases) -Go Get (requires **Go 1.10+** ): +Go Get (requires **Go 1.12+** ): ```bash go get -u github.com/nadoo/glider diff --git a/conf.go b/conf.go index 57539be..70bb0ff 100644 --- a/conf.go +++ b/conf.go @@ -57,13 +57,13 @@ func confInit() { flag.Usage = usage err := flag.Parse() if err != nil { - flag.Usage() + // flag.Usage() fmt.Fprintf(os.Stderr, "ERROR: %s\n", err) os.Exit(-1) } if len(conf.Listen) == 0 && conf.DNS == "" { - flag.Usage() + // flag.Usage() fmt.Fprintf(os.Stderr, "ERROR: listen url must be specified.\n") os.Exit(-1) } diff --git a/go.mod b/go.mod index 4b35d62..f20c5f5 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/dgryski/go-rc2 v0.0.0-20150621095337-8a9021637152 // indirect github.com/ebfe/rc2 v0.0.0-20131011165748-24b9757f5521 // indirect github.com/klauspost/cpuid v1.2.0 // indirect - github.com/klauspost/reedsolomon v1.8.0 // indirect + github.com/klauspost/reedsolomon v1.9.0 // indirect github.com/nadoo/conflag v0.1.0 github.com/nadoo/go-shadowsocks2 v0.1.0 github.com/pkg/errors v0.8.1 // indirect @@ -18,10 +18,10 @@ require ( github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20181023030647-4e92f724b73b // indirect github.com/tjfoc/gmsm v1.0.1 // indirect - github.com/xtaci/kcp-go v5.0.4+incompatible - golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc - golang.org/x/net v0.0.0-20181220203305-927f97764cc3 // indirect - golang.org/x/sys v0.0.0-20190105165716-badf5585203e // indirect + github.com/xtaci/kcp-go v5.0.7+incompatible + golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 + golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 // indirect + golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e // indirect ) // Replace dependency modules with local developing copy diff --git a/go.sum b/go.sum index 55d999c..fbb4eed 100644 --- a/go.sum +++ b/go.sum @@ -14,6 +14,8 @@ github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/reedsolomon v1.8.0 h1:lvvOkvk64cE1EGbBIgFk7WSOOsI1GexpuLiT7zjab6g= github.com/klauspost/reedsolomon v1.8.0/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4= +github.com/klauspost/reedsolomon v1.9.0 h1:usyTY5K7D2B6WOHn2jmpB7ky8Qom96mShZmmq3OW4JU= +github.com/klauspost/reedsolomon v1.9.0/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4= github.com/nadoo/conflag v0.1.0 h1:m9xSrL0UILGXPCZW66mhW57V2D2IraVpWLNIr2Op8X8= github.com/nadoo/conflag v0.1.0/go.mod h1:C3xchp3tIA3J2haACChSHFrlih7w00f31DXfjVUQa+0= github.com/nadoo/go-shadowsocks2 v0.1.0 h1:NkdUrZrI8uYq8R0YDmHLttLqKt0Z9i7dUKtGvBqZQl8= @@ -36,19 +38,28 @@ github.com/xtaci/kcp-go v5.0.2+incompatible h1:Nj5VlOVO2gQ+QWgItWA2yP8X+SGxdV3SD github.com/xtaci/kcp-go v5.0.2+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE= github.com/xtaci/kcp-go v5.0.4+incompatible h1:zCX9MJxfJcfynNsUdyZnq8mbJVBNvuaZaf47mqd45Mk= github.com/xtaci/kcp-go v5.0.4+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE= +github.com/xtaci/kcp-go v5.0.7+incompatible h1:zs9tc8XRID0m+aetu3qPWZFyRt2UIMqbXIBgw+vcnlE= +github.com/xtaci/kcp-go v5.0.7+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9 h1:mKdxBk7AujPs8kU4m80U72y/zjbZ3UcXC7dClwKbUI0= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3 h1:35ZwriXqdZtBGoFgUpW71Z7xz5o23fRpWHFAO2PlnIA= golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc h1:F5tKCVGp+MUAHhKp5MZtGqAlGX3+oCsiL1Q629FL90M= golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20181217023233-e147a9138326 h1:iCzOf0xz39Tstp+Tu/WwyGjUXCk34QhQORRxBeXXTA4= golang.org/x/net v0.0.0-20181217023233-e147a9138326/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo= +golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/sys v0.0.0-20181218192612-074acd46bca6 h1:MXtOG7w2ND9qNCUZSDBGll/SpVIq7ftozR9I8/JGBHY= golang.org/x/sys v0.0.0-20181218192612-074acd46bca6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190102155601-82a175fd1598 h1:S8GOgffXV1X3fpVG442QRfWOt0iFl79eHJ7OPt725bo= golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190105165716-badf5585203e h1:34JZ+d5RsKTBgJnMpK4m6gzXRZ6H99pKveztnOI3+JA= golang.org/x/sys v0.0.0-20190105165716-badf5585203e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/proxy/http/http.go b/proxy/http/http.go index af4e919..e37d704 100644 --- a/proxy/http/http.go +++ b/proxy/http/http.go @@ -242,6 +242,7 @@ func (s *HTTP) Dial(network, addr string) (net.Conn, error) { var buf bytes.Buffer buf.Write([]byte("CONNECT " + addr + " HTTP/1.1\r\n")) + // TODO: add host header for compatibility? buf.Write([]byte("Proxy-Connection: Keep-Alive\r\n")) if s.user != "" && s.password != "" { diff --git a/proxy/obfs/tls.go b/proxy/obfs/tls.go index 5b6e5f2..ffb070a 100644 --- a/proxy/obfs/tls.go +++ b/proxy/obfs/tls.go @@ -127,7 +127,7 @@ func (c *TLSObfsConn) handshake(b []byte) (int, error) { buf := new(bytes.Buffer) // prepare extension & clientHello content - bufExt, bufHello := extention(b, c.obfsHost), clientHello() + bufExt, bufHello := extension(b, c.obfsHost), clientHello() // prepare lengths extLen := bufExt.Len() @@ -217,7 +217,7 @@ func clientHello() *bytes.Buffer { return buf } -func extention(b []byte, server string) *bytes.Buffer { +func extension(b []byte, server string) *bytes.Buffer { buf := new(bytes.Buffer) // Extension: SessionTicket TLS