From 7b27e6aa3bee87ba4ceb72043411f5ae3da6fe9f Mon Sep 17 00:00:00 2001 From: Steve Cresswell <229672+cressie176@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:43:41 +0100 Subject: [PATCH 1/3] Add support for ipv6 urls --- lib/connect.js | 5 +++-- test/connect.js | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/connect.js b/lib/connect.js index e746d5f8..fe62c418 100644 --- a/lib/connect.js +++ b/lib/connect.js @@ -129,9 +129,10 @@ function connect(url, socketOptions, openCallback) { fields = openFrames(url.vhost, config, sockopts.credentials || credentials.plain(user, pass), extraClientProperties); } else { var parts = URL(url, true); // yes, parse the query string + var host = parts.hostname.replace(/^\[|\]$/g, ''); protocol = parts.protocol; - sockopts.host = parts.hostname; - sockopts.servername = sockopts.servername || parts.hostname; + sockopts.host = host + sockopts.servername = sockopts.servername || host sockopts.port = parseInt(parts.port) || ((protocol === 'amqp:') ? 5672 : 5671); var vhost = parts.pathname ? parts.pathname.substr(1) : null; fields = openFrames(vhost, parts.query, sockopts.credentials || credentialsFromUrl(parts), extraClientProperties); diff --git a/test/connect.js b/test/connect.js index fcfd5c01..281e7f2f 100644 --- a/test/connect.js +++ b/test/connect.js @@ -130,6 +130,13 @@ suite("Connect API", function() { kCallback(succeed(done), fail(done))); }); + test("ipv6", function(done) { + connect('amqp://[::1]', {}, function(err, connection) { + if (err) { return done(err); } + done(); + }); + }); + test("using unsupported mechanism", function(done) { var creds = { mechanism: 'UNSUPPORTED', From 6f7160f6517dfe4d1935b4c4314849433f5b97ad Mon Sep 17 00:00:00 2001 From: Stephen Cresswell <229672+cressie176@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:46:15 +0100 Subject: [PATCH 2/3] Update lib/connect.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/connect.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/connect.js b/lib/connect.js index fe62c418..4f244942 100644 --- a/lib/connect.js +++ b/lib/connect.js @@ -131,7 +131,7 @@ function connect(url, socketOptions, openCallback) { var parts = URL(url, true); // yes, parse the query string var host = parts.hostname.replace(/^\[|\]$/g, ''); protocol = parts.protocol; - sockopts.host = host + sockopts.host = host; sockopts.servername = sockopts.servername || host sockopts.port = parseInt(parts.port) || ((protocol === 'amqp:') ? 5672 : 5671); var vhost = parts.pathname ? parts.pathname.substr(1) : null; From 15c834e115ad44a92433ff0c4b3d07a0a2b3e6b4 Mon Sep 17 00:00:00 2001 From: Stephen Cresswell <229672+cressie176@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:46:22 +0100 Subject: [PATCH 3/3] Update lib/connect.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/connect.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/connect.js b/lib/connect.js index 4f244942..4cde5d90 100644 --- a/lib/connect.js +++ b/lib/connect.js @@ -132,7 +132,7 @@ function connect(url, socketOptions, openCallback) { var host = parts.hostname.replace(/^\[|\]$/g, ''); protocol = parts.protocol; sockopts.host = host; - sockopts.servername = sockopts.servername || host + sockopts.servername = sockopts.servername || host; sockopts.port = parseInt(parts.port) || ((protocol === 'amqp:') ? 5672 : 5671); var vhost = parts.pathname ? parts.pathname.substr(1) : null; fields = openFrames(vhost, parts.query, sockopts.credentials || credentialsFromUrl(parts), extraClientProperties);