File tree 2 files changed +21
-19
lines changed
2 files changed +21
-19
lines changed Original file line number Diff line number Diff line change @@ -163,6 +163,8 @@ func TestPingMarkBadConnection(t *testing.T) {
163
163
netConn : nc ,
164
164
buf : newBuffer (nc ),
165
165
maxAllowedPacket : defaultMaxAllowedPacket ,
166
+ closech : make (chan struct {}),
167
+ cfg : NewConfig (),
166
168
}
167
169
168
170
err := mc .Ping (context .Background ())
@@ -184,8 +186,8 @@ func TestPingErrInvalidConn(t *testing.T) {
184
186
185
187
err := mc .Ping (context .Background ())
186
188
187
- if err != ErrInvalidConn {
188
- t .Errorf ("expected ErrInvalidConn , got %#v" , err )
189
+ if err != nc . err {
190
+ t .Errorf ("expected %#v , got %#v" , nc . err , err )
189
191
}
190
192
}
191
193
Original file line number Diff line number Diff line change @@ -124,32 +124,32 @@ func (mc *mysqlConn) writePacket(data []byte) error {
124
124
}
125
125
126
126
n , err := mc .netConn .Write (data [:4 + size ])
127
- if err == nil && n == 4 + size {
128
- mc .sequence ++
129
- if size != maxPacketSize {
130
- return nil
131
- }
132
- pktLen -= size
133
- data = data [size :]
134
- continue
135
- }
136
-
137
- // Handle error
138
- if err == nil { // n != len(data)
139
- mc .cleanup ()
140
- mc .log (ErrMalformPkt )
141
- } else {
127
+ if err != nil {
142
128
if cerr := mc .canceled .Value (); cerr != nil {
143
129
return cerr
144
130
}
131
+ mc .cleanup ()
145
132
if n == 0 && pktLen == len (data )- 4 {
146
133
// only for the first loop iteration when nothing was written yet
134
+ mc .log (err )
147
135
return errBadConnNoWrite
136
+ } else {
137
+ return err
148
138
}
139
+ }
140
+ if n != 4 + size {
141
+ // io.Writer(b) must return a non-nil error if it cannot write len(b) bytes.
142
+ // The io.ErrShortWrite error is used to indicate that this rule has not been followed.
149
143
mc .cleanup ()
150
- mc .log (err )
144
+ return io .ErrShortWrite
145
+ }
146
+
147
+ mc .sequence ++
148
+ if size != maxPacketSize {
149
+ return nil
151
150
}
152
- return ErrInvalidConn
151
+ pktLen -= size
152
+ data = data [size :]
153
153
}
154
154
}
155
155
You can’t perform that action at this time.
0 commit comments