@@ -12,7 +12,6 @@ var Buffer = require('safe-buffer').Buffer;
12
12
var BufferList = require ( './BufferList' ) ;
13
13
var EventEmitter = require ( 'events' ) . EventEmitter ;
14
14
var Util = require ( 'util' ) ;
15
- var Zlib = require ( 'zlib' ) ;
16
15
17
16
module . exports = PacketWriter ;
18
17
function PacketWriter ( ) {
@@ -44,14 +43,10 @@ PacketWriter.prototype.finalize = function finalize(parser) {
44
43
45
44
var packetNumber = parser . incrementPacketNumber ( ) ;
46
45
var packetOffset = this . _offset ;
46
+ var start = packet * MAX_PACKET_LENGTH ;
47
+ var end = start + packetLength ;
47
48
48
- this . writeUnsignedNumber ( 3 , packetLength ) ;
49
- this . writeUnsignedNumber ( 1 , packetNumber ) ;
50
-
51
- var start = packet * MAX_PACKET_LENGTH ;
52
- var end = start + packetLength ;
53
-
54
- this . writeBuffer ( buffer . slice ( start , end ) ) ;
49
+ this . writeBuffer ( this . _toPacket ( packetNumber , buffer . slice ( start , end ) ) ) ;
55
50
56
51
if ( ! parser . _compressed ) {
57
52
this . emit ( 'data' , this . _buffer . slice ( packetOffset , this . _offset ) ) ;
@@ -70,21 +65,11 @@ PacketWriter.prototype.finalize = function finalize(parser) {
70
65
? length % MAX_PACKET_LENGTH
71
66
: MAX_PACKET_LENGTH ;
72
67
73
- packetNumber = parser . incrementCompressedPacketNumber ( ) ;
74
-
75
- this . _buffer = Buffer . allocUnsafe ( packetLength + COMPRESSED_PACKET_HEADER_LENGTH ) ;
76
- this . _offset = 0 ;
77
-
78
- this . writeUnsignedNumber ( 3 , packetLength ) ;
79
- this . writeUnsignedNumber ( 1 , packetNumber ) ;
80
- this . writeUnsignedNumber ( 3 , 0 ) ;
81
-
68
+ var num = parser . incrementCompressedPacketNumber ( ) ;
82
69
var start = packet * MAX_PACKET_LENGTH ;
83
70
var end = start + packetLength ;
84
71
85
- this . writeBuffer ( buffer . slice ( start , end ) ) ;
86
-
87
- this . emit ( 'data' , this . _buffer ) ;
72
+ this . emit ( 'data' , this . _toCompressedPacket ( num , buffer . slice ( start , end ) ) ) ;
88
73
}
89
74
}
90
75
} ;
@@ -272,3 +257,42 @@ PacketWriter.prototype._allocate = function _allocate(bytes) {
272
257
this . _buffer = Buffer . alloc ( newSize ) ;
273
258
oldBuffer . copy ( this . _buffer ) ;
274
259
} ;
260
+
261
+ PacketWriter . prototype . _toCompressedPacket = function _toCompressedPacket ( num , buf ) {
262
+ var origBuffer = this . _buffer ;
263
+ var origOffset = this . _offset ;
264
+
265
+ this . _buffer = Buffer . allocUnsafe ( buf . length + COMPRESSED_PACKET_HEADER_LENGTH ) ;
266
+ this . _offset = 0 ;
267
+
268
+ this . writeUnsignedNumber ( 3 , buf . length ) ;
269
+ this . writeUnsignedNumber ( 1 , num ) ;
270
+ this . writeUnsignedNumber ( 3 , 0 ) ;
271
+ this . writeBuffer ( buf ) ;
272
+
273
+ var packet = this . _buffer ;
274
+
275
+ this . _buffer = origBuffer ;
276
+ this . _offset = origOffset ;
277
+
278
+ return packet ;
279
+ } ;
280
+
281
+ PacketWriter . prototype . _toPacket = function _toPacket ( num , buf ) {
282
+ var origBuffer = this . _buffer ;
283
+ var origOffset = this . _offset ;
284
+
285
+ this . _buffer = Buffer . allocUnsafe ( buf . length + PACKET_HEADER_LENGTH ) ;
286
+ this . _offset = 0 ;
287
+
288
+ this . writeUnsignedNumber ( 3 , buf . length ) ;
289
+ this . writeUnsignedNumber ( 1 , num ) ;
290
+ this . writeBuffer ( buf ) ;
291
+
292
+ var packet = this . _buffer ;
293
+
294
+ this . _buffer = origBuffer ;
295
+ this . _offset = origOffset ;
296
+
297
+ return packet ;
298
+ } ;
0 commit comments