From fac4b86f607d01183a3549e27fd1c49e35798a07 Mon Sep 17 00:00:00 2001 From: nadoo <287492+nadoo@users.noreply.github.com> Date: Wed, 26 Jan 2022 23:40:49 +0800 Subject: [PATCH] chore: use go1.18beta1 --- .github/workflows/build.yml | 8 +++++--- Dockerfile | 2 +- README.md | 2 +- go.mod | 2 +- go.sum | 10 ---------- pkg/log/log.go | 12 ++++++------ pkg/pool/buffer.go | 2 +- pkg/pool/bytesbuffer.go | 10 ++++------ pkg/smux/shaper.go | 10 +++++----- proxy/ssr/internal/obfs/base.go | 4 ++-- proxy/ssr/internal/obfs/http_simple.go | 4 ++-- proxy/ssr/internal/obfs/plain.go | 4 ++-- proxy/ssr/internal/obfs/random_head.go | 4 ++-- proxy/ssr/internal/obfs/tls12_ticket_auth.go | 4 ++-- proxy/ssr/internal/protocol/auth_aes128_md5.go | 4 ++-- proxy/ssr/internal/protocol/auth_chain_a.go | 4 ++-- proxy/ssr/internal/protocol/auth_sha1_v4.go | 4 ++-- proxy/ssr/internal/protocol/base.go | 4 ++-- proxy/ssr/internal/protocol/origin.go | 4 ++-- proxy/ssr/internal/protocol/verify_sha1.go | 4 ++-- proxy/ssr/ssr.go | 4 ++-- rule/proxy.go | 2 +- 22 files changed, 49 insertions(+), 59 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c45a27d..fab82c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,9 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ${{ env.GO_VERSION}} + stable: 'false' + go-version: '1.18.0-beta1' + # go-version: ${{ env.GO_VERSION}} - name: Test run: go test -v . @@ -31,8 +33,8 @@ jobs: args: build --snapshot --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Run GoReleaser + + - name: Release uses: goreleaser/goreleaser-action@v2 if: startsWith(github.ref, 'refs/tags/') with: diff --git a/Dockerfile b/Dockerfile index 1413ef4..caeba94 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build Stage -FROM golang:1.17-alpine AS build-env +FROM golang:1.18beta1-alpine AS build-env ADD . /src diff --git a/README.md b/README.md index 1a70a8d..60bdec9 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ Examples: // _ "github.com/nadoo/glider/proxy/kcp" ``` -3. Build it(requires **Go 1.17+** ) +3. Build it(requires **Go 1.18+** ) ```bash go build -v -ldflags "-s -w" ``` diff --git a/go.mod b/go.mod index 4620fd0..9a570fd 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/nadoo/glider -go 1.17 +go 1.18 require ( github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da diff --git a/go.sum b/go.sum index 723e64d..adc0ff7 100644 --- a/go.sum +++ b/go.sum @@ -47,7 +47,6 @@ github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqo github.com/jsimonetti/rtnetlink v0.0.0-20201110080708-d2c240429e6c/go.mod h1:huN4d1phzjhlOsNIjFsw2SVRbwIHj3fJDMEU2SDPTmg= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/klauspost/cpuid v1.2.4/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= @@ -129,7 +128,6 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba h1:6u6sik+bn/y7vILcYkK3iwTBWN7WtBvB0+SZswQnbf8= golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -153,20 +151,12 @@ golang.org/x/sys v0.0.0-20200808120158-1030fc2bf1d9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= diff --git a/pkg/log/log.go b/pkg/log/log.go index b4f8fd1..31937a6 100644 --- a/pkg/log/log.go +++ b/pkg/log/log.go @@ -6,7 +6,7 @@ import ( ) // F is the main log function. -var F = func(string, ...interface{}) {} +var F = func(string, ...any) {} // SetFlags sets the output flags for the logger. func SetFlags(flag int) { @@ -14,26 +14,26 @@ func SetFlags(flag int) { } // Debugf prints debug log. -func Debugf(f string, v ...interface{}) { +func Debugf(f string, v ...any) { stdlog.Output(2, fmt.Sprintf(f, v...)) } // Print prints log. -func Print(v ...interface{}) { +func Print(v ...any) { stdlog.Print(v...) } // Printf prints log. -func Printf(f string, v ...interface{}) { +func Printf(f string, v ...any) { stdlog.Printf(f, v...) } // Fatal log and exit. -func Fatal(v ...interface{}) { +func Fatal(v ...any) { stdlog.Fatal(v...) } // Fatalf log and exit. -func Fatalf(f string, v ...interface{}) { +func Fatalf(f string, v ...any) { stdlog.Fatalf(f, v...) } diff --git a/pkg/pool/buffer.go b/pkg/pool/buffer.go index 1336c15..0f5acc9 100644 --- a/pkg/pool/buffer.go +++ b/pkg/pool/buffer.go @@ -20,7 +20,7 @@ func init() { for i := 0; i < num; i++ { size := 1 << i sizes[i] = size - pools[i].New = func() interface{} { + pools[i].New = func() any { return make([]byte, size) } } diff --git a/pkg/pool/bytesbuffer.go b/pkg/pool/bytesbuffer.go index f3895eb..7266982 100644 --- a/pkg/pool/bytesbuffer.go +++ b/pkg/pool/bytesbuffer.go @@ -6,7 +6,7 @@ import ( ) var bytesBufPool = sync.Pool{ - New: func() interface{} { return &bytes.Buffer{} }, + New: func() any { return &bytes.Buffer{} }, } // GetBytesBuffer returns a bytes.buffer from pool. @@ -16,10 +16,8 @@ func GetBytesBuffer() *bytes.Buffer { // PutBytesBuffer puts a bytes.buffer into pool. func PutBytesBuffer(buf *bytes.Buffer) { - if buf.Cap() > 64<<10 { - return + if buf.Cap() <= 64<<10 { + buf.Reset() + bytesBufPool.Put(buf) } - - buf.Reset() - bytesBufPool.Put(buf) } diff --git a/pkg/smux/shaper.go b/pkg/smux/shaper.go index c074186..cc38aed 100644 --- a/pkg/smux/shaper.go +++ b/pkg/smux/shaper.go @@ -6,12 +6,12 @@ func _itimediff(later, earlier uint32) int32 { type shaperHeap []writeRequest -func (h shaperHeap) Len() int { return len(h) } -func (h shaperHeap) Less(i, j int) bool { return _itimediff(h[j].prio, h[i].prio) > 0 } -func (h shaperHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] } -func (h *shaperHeap) Push(x interface{}) { *h = append(*h, x.(writeRequest)) } +func (h shaperHeap) Len() int { return len(h) } +func (h shaperHeap) Less(i, j int) bool { return _itimediff(h[j].prio, h[i].prio) > 0 } +func (h shaperHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] } +func (h *shaperHeap) Push(x any) { *h = append(*h, x.(writeRequest)) } -func (h *shaperHeap) Pop() interface{} { +func (h *shaperHeap) Pop() any { old := *h n := len(old) x := old[n-1] diff --git a/proxy/ssr/internal/obfs/base.go b/proxy/ssr/internal/obfs/base.go index 7f91aaa..57b4f07 100644 --- a/proxy/ssr/internal/obfs/base.go +++ b/proxy/ssr/internal/obfs/base.go @@ -17,8 +17,8 @@ type IObfs interface { GetServerInfo() (s *ssr.ServerInfo) Encode(data []byte) (encodedData []byte, err error) Decode(data []byte) (decodedData []byte, needSendBack bool, err error) - SetData(data interface{}) - GetData() interface{} + SetData(data any) + GetData() any GetOverhead() int } diff --git a/proxy/ssr/internal/obfs/http_simple.go b/proxy/ssr/internal/obfs/http_simple.go index c1607af..beda5dc 100644 --- a/proxy/ssr/internal/obfs/http_simple.go +++ b/proxy/ssr/internal/obfs/http_simple.go @@ -69,11 +69,11 @@ func (t *httpSimplePost) GetServerInfo() (s *ssr.ServerInfo) { return &t.ServerInfo } -func (t *httpSimplePost) SetData(data interface{}) { +func (t *httpSimplePost) SetData(data any) { } -func (t *httpSimplePost) GetData() interface{} { +func (t *httpSimplePost) GetData() any { return nil } diff --git a/proxy/ssr/internal/obfs/plain.go b/proxy/ssr/internal/obfs/plain.go index 813bcd1..3a740b8 100644 --- a/proxy/ssr/internal/obfs/plain.go +++ b/proxy/ssr/internal/obfs/plain.go @@ -33,11 +33,11 @@ func (p *plain) Decode(data []byte) (decodedData []byte, needSendBack bool, err return data, false, nil } -func (p *plain) SetData(data interface{}) { +func (p *plain) SetData(data any) { } -func (p *plain) GetData() interface{} { +func (p *plain) GetData() any { return nil } diff --git a/proxy/ssr/internal/obfs/random_head.go b/proxy/ssr/internal/obfs/random_head.go index e34e490..969977e 100644 --- a/proxy/ssr/internal/obfs/random_head.go +++ b/proxy/ssr/internal/obfs/random_head.go @@ -31,11 +31,11 @@ func (r *randomHead) GetServerInfo() (s *ssr.ServerInfo) { return &r.ServerInfo } -func (r *randomHead) SetData(data interface{}) { +func (r *randomHead) SetData(data any) { } -func (r *randomHead) GetData() interface{} { +func (r *randomHead) GetData() any { return nil } diff --git a/proxy/ssr/internal/obfs/tls12_ticket_auth.go b/proxy/ssr/internal/obfs/tls12_ticket_auth.go index 05c6cc9..970b9da 100644 --- a/proxy/ssr/internal/obfs/tls12_ticket_auth.go +++ b/proxy/ssr/internal/obfs/tls12_ticket_auth.go @@ -53,13 +53,13 @@ func (t *tls12TicketAuth) GetServerInfo() (s *ssr.ServerInfo) { return &t.ServerInfo } -func (t *tls12TicketAuth) SetData(data interface{}) { +func (t *tls12TicketAuth) SetData(data any) { if auth, ok := data.(*tlsAuthData); ok { t.data = auth } } -func (t *tls12TicketAuth) GetData() interface{} { +func (t *tls12TicketAuth) GetData() any { if t.data == nil { t.data = &tlsAuthData{} b := make([]byte, 32) diff --git a/proxy/ssr/internal/protocol/auth_aes128_md5.go b/proxy/ssr/internal/protocol/auth_aes128_md5.go index 70f5120..5e47e39 100644 --- a/proxy/ssr/internal/protocol/auth_aes128_md5.go +++ b/proxy/ssr/internal/protocol/auth_aes128_md5.go @@ -58,13 +58,13 @@ func (a *authAES128) GetServerInfo() (s *ssr.ServerInfo) { return &a.ServerInfo } -func (a *authAES128) SetData(data interface{}) { +func (a *authAES128) SetData(data any) { if auth, ok := data.(*AuthData); ok { a.data = auth } } -func (a *authAES128) GetData() interface{} { +func (a *authAES128) GetData() any { if a.data == nil { a.data = &AuthData{} } diff --git a/proxy/ssr/internal/protocol/auth_chain_a.go b/proxy/ssr/internal/protocol/auth_chain_a.go index e579052..baf8628 100644 --- a/proxy/ssr/internal/protocol/auth_chain_a.go +++ b/proxy/ssr/internal/protocol/auth_chain_a.go @@ -68,13 +68,13 @@ func (a *authChainA) GetServerInfo() (s *ssr.ServerInfo) { return &a.ServerInfo } -func (a *authChainA) SetData(data interface{}) { +func (a *authChainA) SetData(data any) { if auth, ok := data.(*AuthData); ok { a.data = auth } } -func (a *authChainA) GetData() interface{} { +func (a *authChainA) GetData() any { if a.data == nil { a.data = &AuthData{} } diff --git a/proxy/ssr/internal/protocol/auth_sha1_v4.go b/proxy/ssr/internal/protocol/auth_sha1_v4.go index eb519cc..f5b4aac 100644 --- a/proxy/ssr/internal/protocol/auth_sha1_v4.go +++ b/proxy/ssr/internal/protocol/auth_sha1_v4.go @@ -34,13 +34,13 @@ func (a *authSHA1v4) GetServerInfo() (s *ssr.ServerInfo) { return &a.ServerInfo } -func (a *authSHA1v4) SetData(data interface{}) { +func (a *authSHA1v4) SetData(data any) { if auth, ok := data.(*AuthData); ok { a.data = auth } } -func (a *authSHA1v4) GetData() interface{} { +func (a *authSHA1v4) GetData() any { if a.data == nil { a.data = &AuthData{} } diff --git a/proxy/ssr/internal/protocol/base.go b/proxy/ssr/internal/protocol/base.go index 57d1af9..0057991 100644 --- a/proxy/ssr/internal/protocol/base.go +++ b/proxy/ssr/internal/protocol/base.go @@ -23,8 +23,8 @@ type IProtocol interface { GetServerInfo() *ssr.ServerInfo PreEncrypt(data []byte) ([]byte, error) PostDecrypt(data []byte) ([]byte, int, error) - SetData(data interface{}) - GetData() interface{} + SetData(data any) + GetData() any GetOverhead() int } diff --git a/proxy/ssr/internal/protocol/origin.go b/proxy/ssr/internal/protocol/origin.go index 2ea515c..3bf67f6 100644 --- a/proxy/ssr/internal/protocol/origin.go +++ b/proxy/ssr/internal/protocol/origin.go @@ -33,11 +33,11 @@ func (o *origin) PostDecrypt(data []byte) ([]byte, int, error) { return data, len(data), nil } -func (o *origin) SetData(data interface{}) { +func (o *origin) SetData(data any) { } -func (o *origin) GetData() interface{} { +func (o *origin) GetData() any { return nil } diff --git a/proxy/ssr/internal/protocol/verify_sha1.go b/proxy/ssr/internal/protocol/verify_sha1.go index 2a6d63c..15966d7 100644 --- a/proxy/ssr/internal/protocol/verify_sha1.go +++ b/proxy/ssr/internal/protocol/verify_sha1.go @@ -63,11 +63,11 @@ func (v *verifySHA1) GetServerInfo() (s *ssr.ServerInfo) { return &v.ServerInfo } -func (v *verifySHA1) SetData(data interface{}) { +func (v *verifySHA1) SetData(data any) { } -func (v *verifySHA1) GetData() interface{} { +func (v *verifySHA1) GetData() any { return nil } diff --git a/proxy/ssr/ssr.go b/proxy/ssr/ssr.go index 8ddf2b6..df4b398 100644 --- a/proxy/ssr/ssr.go +++ b/proxy/ssr/ssr.go @@ -31,10 +31,10 @@ type SSR struct { EncryptPassword string Obfs string ObfsParam string - ObfsData interface{} + ObfsData any Protocol string ProtocolParam string - ProtocolData interface{} + ProtocolData any } // NewSSR returns a shadowsocksr proxy, ssr://method:pass@host:port/query diff --git a/rule/proxy.go b/rule/proxy.go index 6e6b100..a2ba3f5 100644 --- a/rule/proxy.go +++ b/rule/proxy.go @@ -83,7 +83,7 @@ func (p *Proxy) findDialer(dstAddr string) *FwdrGroup { var ret *FwdrGroup // check cidr - p.cidrMap.Range(func(key, value interface{}) bool { + p.cidrMap.Range(func(key, value any) bool { cidr := key.(*net.IPNet) if cidr.Contains(ip) { ret = value.(*FwdrGroup)