diff --git a/index.js b/index.js index a070e93b0b..b93ddfe5a3 100644 --- a/index.js +++ b/index.js @@ -1270,6 +1270,9 @@ var createClient = function (port_arg, host_arg, options) { if (parsed.auth) { options.auth_pass = parsed.auth.split(':')[1]; } + if (parsed.protocol !== 'redis:') { + throw new Error('Connection string must use the "redis:" protocol'); + } options.host = parsed.hostname; options.port = parsed.port; } else { diff --git a/test/connection.spec.js b/test/connection.spec.js index ee883f60b6..1c70f62021 100644 --- a/test/connection.spec.js +++ b/test/connection.spec.js @@ -307,6 +307,18 @@ describe("connection tests", function () { } }); + it("throws on protocol other than redis in the redis url", function () { + client = { + end: function() {} + }; + try { + redis.createClient(config.HOST[ip] + ':' + config.PORT); + throw new Error('failed'); + } catch (err) { + assert.equal(err.message, 'Connection string must use the "redis:" protocol'); + } + }); + if (ip === 'IPv4') { it('allows connecting with the redis url and the default port', function (done) { client = redis.createClient('redis://foo:porkchopsandwiches@' + config.HOST[ip]);