From 12d2aebb707c1003dbeffb7a0b3d53536642914d Mon Sep 17 00:00:00 2001 From: Matt Ranney Date: Tue, 30 Nov 2010 13:05:07 -0800 Subject: [PATCH] Send empty Array for 0 length mb replies instead of null. --- index.js | 10 +++++++--- test.js | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 2046ee6a0d..981e331fe2 100644 --- a/index.js +++ b/index.js @@ -151,9 +151,11 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { this.multi_bulk_length = +small_toString(this.tmp_buffer); this.multi_bulk_replies = []; this.state = "type"; - if (this.multi_bulk_length <= 0) { + if (this.multi_bulk_length < 0) { this.send_reply(null); this.multi_bulk_length = 0; + } else if (this.multi_bulk_length === 0) { + this.send_reply([]); } } else { this.emit("error", new Error("didn't see LF after NL reading multi bulk count")); @@ -347,10 +349,12 @@ Object.defineProperty(Queue.prototype, 'length', { } }); -function RedisClient(stream) { +function RedisClient(stream, options) { events.EventEmitter.call(this); this.stream = stream; + this.options = options; + this.connected = false; this.connections = 0; this.attempts = 1; @@ -827,7 +831,7 @@ exports.createClient = function (port_arg, host_arg, options) { net_client = net.createConnection(port, host); - red_client = new RedisClient(net_client); + red_client = new RedisClient(net_client, options); red_client.port = port; red_client.host = host; diff --git a/test.js b/test.js index 4131ffc770..9a7a7bbb07 100644 --- a/test.js +++ b/test.js @@ -160,7 +160,7 @@ tests.MULTI_3 = function () { ]) .scard("some set") .exec(function (err, replies) { - assert.strictEqual(replies[2][0], null, name); + assert.deepEqual(replies[2][0], [], name); next(name); }); }; @@ -366,7 +366,7 @@ tests.MULTIBULK_ZERO_LENGTH = function () { var name = "MULTIBULK_ZERO_LENGTH"; client.KEYS(['users:*'], function (err, results) { assert.strictEqual(null, err, 'error on empty multibulk reply'); - assert.strictEqual(null, results); + assert.deepEqual([], results); next(name); }); }; @@ -494,7 +494,7 @@ tests.HGETALL_NULL = function () { client.hgetall('missing', function (err, obj) { assert.strictEqual(null, err); - assert.strictEqual(null, obj); + assert.deepEqual([], obj); next(name); }); };