2
2
3
3
var util = require ( 'util' ) ;
4
4
5
- function Packet ( type , size ) {
6
- this . type = type ;
7
- this . size = + size ;
8
- }
9
-
10
5
function ReplyParser ( return_buffers ) {
11
6
this . name = exports . name ;
12
7
this . return_buffers = return_buffers ;
@@ -23,7 +18,10 @@ function IncompleteReadBuffer(message) {
23
18
util . inherits ( IncompleteReadBuffer , Error ) ;
24
19
25
20
ReplyParser . prototype . _parseResult = function ( type ) {
26
- var start , end , offset , packetHeader ;
21
+ var start = 0 ,
22
+ end = 0 ,
23
+ offset = 0 ,
24
+ packetHeader = 0 ;
27
25
28
26
if ( type === 43 || type === 45 ) { // + or -
29
27
// up to the delimiter
@@ -62,14 +60,14 @@ ReplyParser.prototype._parseResult = function (type) {
62
60
// buffer in memory
63
61
offset = this . _offset - 1 ;
64
62
65
- packetHeader = new Packet ( type , this . parseHeader ( ) ) ;
63
+ packetHeader = this . parseHeader ( ) ;
66
64
67
65
// packets with a size of -1 are considered null
68
- if ( packetHeader . size === - 1 ) {
66
+ if ( packetHeader === - 1 ) {
69
67
return null ;
70
68
}
71
69
72
- end = this . _offset + packetHeader . size ;
70
+ end = this . _offset + packetHeader ;
73
71
start = this . _offset ;
74
72
75
73
if ( end > this . _buffer . length ) {
@@ -83,15 +81,15 @@ ReplyParser.prototype._parseResult = function (type) {
83
81
return this . _buffer . slice ( start , end ) ;
84
82
}
85
83
return this . _buffer . toString ( this . _encoding , start , end ) ;
86
- } else { // *
84
+ } else if ( type === 42 ) { // *
87
85
offset = this . _offset ;
88
- packetHeader = new Packet ( type , this . parseHeader ( ) ) ;
86
+ packetHeader = this . parseHeader ( ) ;
89
87
90
- if ( packetHeader . size < 0 ) {
88
+ if ( packetHeader < 0 ) {
91
89
return null ;
92
90
}
93
91
94
- if ( packetHeader . size > this . _bytesRemaining ( ) ) {
92
+ if ( packetHeader > this . _bytesRemaining ( ) ) {
95
93
this . _offset = offset - 1 ;
96
94
throw new IncompleteReadBuffer ( 'Wait for more data.' ) ;
97
95
}
@@ -101,7 +99,7 @@ ReplyParser.prototype._parseResult = function (type) {
101
99
102
100
offset = this . _offset - 1 ;
103
101
104
- for ( i = 0 ; i < packetHeader . size ; i ++ ) {
102
+ for ( i = 0 ; i < packetHeader ; i ++ ) {
105
103
ntype = this . _buffer [ this . _offset ++ ] ;
106
104
107
105
if ( this . _offset > this . _buffer . length ) {
@@ -184,7 +182,7 @@ ReplyParser.prototype.append = function (newBuffer) {
184
182
185
183
ReplyParser . prototype . parseHeader = function ( ) {
186
184
var end = this . _packetEndOffset ( ) ,
187
- value = this . _buffer . toString ( 'ascii' , this . _offset , end - 1 ) ;
185
+ value = this . _buffer . toString ( 'ascii' , this . _offset , end - 1 ) | 0 ;
188
186
189
187
this . _offset = end + 1 ;
190
188
0 commit comments