Skip to content
This repository was archived by the owner on Sep 29, 2024. It is now read-only.

Commit 06bd6ff

Browse files
authored
fix: lint errors (#572)
1 parent 1e9abca commit 06bd6ff

23 files changed

+540
-234
lines changed

.github/workflows/ci.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ jobs:
3838
- name: Go Tidy
3939
run: go mod tidy && git diff --exit-code
4040

41-
- name: Go Mod
42-
run: go mod download
43-
4441
- name: Go Mod Verify
4542
run: go mod verify
4643

4744
- name: Run linter
4845
uses: golangci/golangci-lint-action@v3
4946
with:
5047
version: latest
48+
skip-cache: true
49+
skip-pkg-cache: true
50+
skip-build-cache: true
5151

5252
- name: Run tests
5353
run: |

.golangci.yml

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# More info on config here: https://github.com/golangci/golangci-lint#config-file
12
run:
23
timeout: 3m
34
deadline: 5m
@@ -6,3 +7,9 @@ output:
67
format: colored-line-number
78
print-issued-lines: true
89
print-linter-name: true
10+
11+
issues:
12+
exclude-use-default: false
13+
exclude:
14+
# support go 1.13 with deprecated APIs
15+
- SA1019

connection.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (c *conn) connect() error {
8484
root := newNamespaceConn(c, aliasRootNamespace, rootHandler.broadcast)
8585
c.namespaces.Set(rootNamespace, root)
8686

87-
root.Join(root.ID())
87+
root.Join(root.Conn.ID())
8888

8989
c.namespaces.Range(func(ns string, nc *namespaceConn) {
9090
nc.SetContext(c.Conn.Context())

connection_handlers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func connectPacketHandler(c *conn, header parser.Header) error {
7373
if !ok {
7474
conn = newNamespaceConn(c, header.Namespace, handler.broadcast)
7575
c.namespaces.Set(header.Namespace, conn)
76-
conn.Join(c.ID())
76+
conn.Join(c.Conn.ID())
7777
}
7878

7979
_, err := handler.dispatch(conn, header)

engineio/client.go

+19-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package engineio
22

33
import (
4-
"fmt"
54
"io"
65
"net"
76
"net/http"
@@ -13,14 +12,9 @@ import (
1312
"github.com/googollee/go-socket.io/engineio/packet"
1413
"github.com/googollee/go-socket.io/engineio/session"
1514
"github.com/googollee/go-socket.io/engineio/transport"
15+
"github.com/googollee/go-socket.io/logger"
1616
)
1717

18-
// Pauser is connection which can be paused and resumes.
19-
type Pauser interface {
20-
Pause()
21-
Resume()
22-
}
23-
2418
// Opener is client connection which need receive open message first.
2519
type Opener interface {
2620
Open() (transport.ConnParameters, error)
@@ -72,14 +66,19 @@ func (c *client) NextReader() (session.FrameType, io.ReadCloser, error) {
7266
}
7367

7468
case packet.CLOSE:
75-
c.Close()
69+
if err = c.Close(); err != nil {
70+
logger.Error("close client with packet close:", err)
71+
}
72+
7673
return 0, nil, io.EOF
7774

7875
case packet.MESSAGE:
7976
return session.FrameType(ft), r, nil
8077
}
8178

82-
r.Close()
79+
if err = r.Close(); err != nil {
80+
logger.Error("close reader:", err)
81+
}
8382
}
8483
}
8584

@@ -104,7 +103,11 @@ func (c *client) RemoteHeader() http.Header {
104103
}
105104

106105
func (c *client) serve() {
107-
defer c.conn.Close()
106+
defer func() {
107+
if closeErr := c.conn.Close(); closeErr != nil {
108+
logger.Error("close connect:", closeErr)
109+
}
110+
}()
108111

109112
for {
110113
select {
@@ -115,15 +118,19 @@ func (c *client) serve() {
115118

116119
w, err := c.conn.NextWriter(frame.String, packet.PING)
117120
if err != nil {
121+
logger.Error("get next writer with string frame and packet ping:", err)
122+
118123
return
119124
}
120125

121-
if err := w.Close(); err != nil {
126+
if err = w.Close(); err != nil {
127+
logger.Error("close writer:", err)
128+
122129
return
123130
}
124131

125132
if err = c.conn.SetWriteDeadline(time.Now().Add(c.params.PingInterval + c.params.PingTimeout)); err != nil {
126-
fmt.Printf("set writer's deadline error,msg:%s\n", err.Error())
133+
logger.Error("set writer deadline:", err)
127134
}
128135
}
129136
}

engineio/dialer.go

+23-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/googollee/go-socket.io/engineio/packet"
1010
"github.com/googollee/go-socket.io/engineio/transport"
11+
"github.com/googollee/go-socket.io/logger"
1112
)
1213

1314
// Dialer is dialer configure.
@@ -19,6 +20,8 @@ type Dialer struct {
1920
func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (Conn, error) {
2021
u, err := url.Parse(urlStr)
2122
if err != nil {
23+
logger.Error("parse url str:", err)
24+
2225
return nil, err
2326
}
2427

@@ -30,44 +33,62 @@ func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (Conn, error) {
3033

3134
for i := len(d.Transports) - 1; i >= 0; i-- {
3235
if conn != nil {
33-
conn.Close()
36+
if closeErr := conn.Close(); closeErr != nil {
37+
logger.Error("close connect:", closeErr)
38+
}
3439
}
3540

3641
t := d.Transports[i]
3742

3843
conn, err = t.Dial(u, requestHeader)
3944
if err != nil {
45+
logger.Error("transport dial:", err)
46+
4047
continue
4148
}
4249

4350
var params transport.ConnParameters
4451
if p, ok := conn.(Opener); ok {
4552
params, err = p.Open()
4653
if err != nil {
54+
logger.Error("open transport connect:", err)
55+
4756
continue
4857
}
4958
} else {
5059
var pt packet.Type
5160
var r io.ReadCloser
61+
5262
_, pt, r, err = conn.NextReader()
5363
if err != nil {
5464
continue
5565
}
66+
5667
func() {
57-
defer r.Close()
68+
defer func() {
69+
if closeErr := r.Close(); closeErr != nil {
70+
logger.Error("close connect reader:", closeErr)
71+
}
72+
}()
73+
5874
if pt != packet.OPEN {
5975
err = errors.New("invalid open")
76+
6077
return
6178
}
79+
6280
params, err = transport.ReadConnParameters(r)
6381
if err != nil {
6482
return
6583
}
6684
}()
6785
}
6886
if err != nil {
87+
logger.Error("transport dialer:", err)
88+
6989
continue
7090
}
91+
7192
ret := &client{
7293
conn: conn,
7394
params: params,

engineio/packet/decoder_test.go

+29-9
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"testing"
77

88
"github.com/stretchr/testify/assert"
9+
"github.com/stretchr/testify/require"
910

1011
"github.com/googollee/go-socket.io/engineio/frame"
1112
)
@@ -58,7 +59,8 @@ var tests = []struct {
5859
}
5960

6061
func TestDecoder(t *testing.T) {
61-
at := assert.New(t)
62+
should := assert.New(t)
63+
must := require.New(t)
6264

6365
for _, test := range tests {
6466
r := NewFakeConnReader(test.frames)
@@ -67,20 +69,23 @@ func TestDecoder(t *testing.T) {
6769
for {
6870
ft, pt, fr, err := decoder.NextReader()
6971
if err != nil {
70-
at.Equal(io.EOF, err)
72+
should.Equal(io.EOF, err)
7173
break
7274
}
75+
7376
b, err := ioutil.ReadAll(fr)
74-
at.Nil(err)
75-
fr.Close()
77+
must.NoError(err)
78+
79+
err = fr.Close()
80+
must.NoError(err)
7681

7782
output = append(output, Packet{
7883
FType: ft,
7984
PType: pt,
8085
Data: b,
8186
})
8287
}
83-
at.Equal(test.packets, output)
88+
should.Equal(test.packets, output)
8489
}
8590
}
8691

@@ -90,9 +95,24 @@ func BenchmarkDecoder(b *testing.B) {
9095
b.ResetTimer()
9196

9297
for i := 0; i < b.N; i++ {
93-
_, _, fr, _ := decoder.NextReader()
94-
fr.Close()
95-
_, _, fr, _ = decoder.NextReader()
96-
fr.Close()
98+
_, _, fr, err := decoder.NextReader()
99+
if err != nil {
100+
b.Error(err)
101+
}
102+
103+
err = fr.Close()
104+
if err != nil {
105+
b.Error(err)
106+
}
107+
108+
_, _, fr, err = decoder.NextReader()
109+
if err != nil {
110+
b.Error(err)
111+
}
112+
113+
err = fr.Close()
114+
if err != nil {
115+
b.Error(err)
116+
}
97117
}
98118
}

engineio/packet/encoder.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"io"
55

66
"github.com/googollee/go-socket.io/engineio/frame"
7+
"github.com/googollee/go-socket.io/logger"
78
)
89

910
// FrameWriter is the writer which supports framing.
@@ -35,7 +36,10 @@ func (e *Encoder) NextWriter(ft frame.Type, pt Type) (io.WriteCloser, error) {
3536
}
3637

3738
if _, err := w.Write(b[:]); err != nil {
38-
w.Close()
39+
if closeErr := w.Close(); closeErr != nil {
40+
logger.Error("close writer after write:", closeErr)
41+
}
42+
3943
return nil, err
4044
}
4145

engineio/packet/encoder_test.go

+18-4
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,24 @@ func BenchmarkEncoder(b *testing.B) {
3232
b.ResetTimer()
3333

3434
for i := 0; i < b.N; i++ {
35-
w, _ := encoder.NextWriter(frame.String, MESSAGE)
36-
w.Close()
35+
w, err := encoder.NextWriter(frame.String, MESSAGE)
36+
if err != nil {
37+
b.Error(err)
38+
}
39+
40+
err = w.Close()
41+
if err != nil {
42+
b.Error(err)
43+
}
3744

38-
w, _ = encoder.NextWriter(frame.Binary, MESSAGE)
39-
w.Close()
45+
w, err = encoder.NextWriter(frame.Binary, MESSAGE)
46+
if err != nil {
47+
b.Error(err)
48+
}
49+
50+
err = w.Close()
51+
if err != nil {
52+
b.Error(err)
53+
}
4054
}
4155
}

engineio/payload/encoder.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ func (e *encoder) Write(p []byte) (int, error) {
6161

6262
func (e *encoder) Close() error {
6363
if e.b64Writer != nil {
64-
e.b64Writer.Close()
64+
if err := e.b64Writer.Close(); err != nil {
65+
return err
66+
}
6567
}
6668

6769
var writeHeader func() error

0 commit comments

Comments
 (0)