@@ -18,13 +18,13 @@ type compressedReader struct {
18
18
buf packetReader
19
19
bytesBuf []byte
20
20
mc * mysqlConn
21
- br * bytes.Reader
22
21
zr io.ReadCloser
23
22
}
24
23
25
24
type compressedWriter struct {
26
25
connWriter io.Writer
27
26
mc * mysqlConn
27
+ header []byte
28
28
}
29
29
30
30
func NewCompressedReader (buf packetReader , mc * mysqlConn ) * compressedReader {
@@ -39,6 +39,7 @@ func NewCompressedWriter(connWriter io.Writer, mc *mysqlConn) *compressedWriter
39
39
return & compressedWriter {
40
40
connWriter : connWriter ,
41
41
mc : mc ,
42
+ header : []byte {0 , 0 , 0 , 0 , 0 , 0 , 0 },
42
43
}
43
44
}
44
45
@@ -86,21 +87,17 @@ func (cr *compressedReader) uncompressPacket() error {
86
87
}
87
88
88
89
// write comprData to a bytes.buffer, then read it using zlib into data
89
- if cr .br == nil {
90
- cr .br = bytes .NewReader (comprData )
91
- } else {
92
- cr .br .Reset (comprData )
93
- }
90
+ br := bytes .NewReader (comprData )
94
91
95
92
resetter , ok := cr .zr .(zlib.Resetter )
96
93
97
94
if ok {
98
- err := resetter .Reset (cr . br , []byte {})
95
+ err := resetter .Reset (br , []byte {})
99
96
if err != nil {
100
97
return err
101
98
}
102
99
} else {
103
- cr .zr , err = zlib .NewReader (cr . br )
100
+ cr .zr , err = zlib .NewReader (br )
104
101
if err != nil {
105
102
return err
106
103
}
@@ -222,7 +219,7 @@ func (cw *compressedWriter) Write(data []byte) (int, error) {
222
219
}
223
220
224
221
func (cw * compressedWriter ) writeComprPacketToNetwork (data []byte , uncomprLength int ) error {
225
- data = append ([] byte { 0 , 0 , 0 , 0 , 0 , 0 , 0 } , data ... )
222
+ data = append (cw . header , data ... )
226
223
227
224
comprLength := len (data ) - 7
228
225
0 commit comments