diff --git a/lib/connection.js b/lib/connection.js index 6584c871..59247a7c 100644 --- a/lib/connection.js +++ b/lib/connection.js @@ -13,6 +13,21 @@ var util = require('util'); var Writer = require('buffer-writer'); var Reader = require('packet-reader'); +var indexOf = + 'indexOf' in Buffer.prototype ? + function indexOf(buffer, value, start) { + return buffer.indexOf(value, start); + } : + function indexOf(buffer, value, start) { + for (var i = start, len = buffer.length; i < len; i++) { + if (buffer[i] === value) { + return i; + } + } + + return -1; + }; + var TEXT_MODE = 0; var BINARY_MODE = 1; var Connection = function(config) { @@ -647,8 +662,9 @@ Connection.prototype.readBytes = function(buffer, length) { Connection.prototype.parseCString = function(buffer) { var start = this.offset; - while(buffer[this.offset++] !== 0) { } - return buffer.toString(this.encoding, start, this.offset - 1); + var end = indexOf(buffer, 0, start); + this.offset = end + 1; + return buffer.toString(this.encoding, start, end); }; //end parsing methods module.exports = Connection;