Skip to content

Commit 09c5719

Browse files
authored
Merge pull request #795 from amqp-node/support-ipv6-urls
Add support for ipv6 urls
2 parents 28f1fd0 + 15c834e commit 09c5719

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

lib/connect.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,10 @@ function connect(url, socketOptions, openCallback) {
129129
fields = openFrames(url.vhost, config, sockopts.credentials || credentials.plain(user, pass), extraClientProperties);
130130
} else {
131131
var parts = URL(url, true); // yes, parse the query string
132+
var host = parts.hostname.replace(/^\[|\]$/g, '');
132133
protocol = parts.protocol;
133-
sockopts.host = parts.hostname;
134-
sockopts.servername = sockopts.servername || parts.hostname;
134+
sockopts.host = host;
135+
sockopts.servername = sockopts.servername || host;
135136
sockopts.port = parseInt(parts.port) || ((protocol === 'amqp:') ? 5672 : 5671);
136137
var vhost = parts.pathname ? parts.pathname.substr(1) : null;
137138
fields = openFrames(vhost, parts.query, sockopts.credentials || credentialsFromUrl(parts), extraClientProperties);

test/connect.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,13 @@ suite("Connect API", function() {
130130
kCallback(succeed(done), fail(done)));
131131
});
132132

133+
test("ipv6", function(done) {
134+
connect('amqp://[::1]', {}, function(err, connection) {
135+
if (err) { return done(err); }
136+
done();
137+
});
138+
});
139+
133140
test("using unsupported mechanism", function(done) {
134141
var creds = {
135142
mechanism: 'UNSUPPORTED',

0 commit comments

Comments
 (0)