diff --git a/.changeset/gold-bugs-sneeze.md b/.changeset/gold-bugs-sneeze.md new file mode 100644 index 00000000000..ba76b122381 --- /dev/null +++ b/.changeset/gold-bugs-sneeze.md @@ -0,0 +1,5 @@ +--- +"@smithy/node-http-handler": patch +--- + +remove brackets from hostname diff --git a/packages/node-http-handler/src/node-http-handler.spec.ts b/packages/node-http-handler/src/node-http-handler.spec.ts index 54add403667..c32339cdfc1 100644 --- a/packages/node-http-handler/src/node-http-handler.spec.ts +++ b/packages/node-http-handler/src/node-http-handler.spec.ts @@ -153,6 +153,24 @@ describe("NodeHttpHandler", () => { expect(hRequestSpy.mock.calls[0][0]?.port).toEqual(1234); expect(hRequestSpy.mock.calls[0][0]?.path).toEqual("/some/path?some=query#fragment"); }); + + it("removes brackets from hostname", async () => { + const nodeHttpHandler = new NodeHttpHandler({}); + const httpRequest = { + protocol: "http:", + username: "username", + password: "password", + hostname: "[host]", + port: 1234, + path: "/some/path", + query: { + some: "query", + }, + fragment: "fragment", + }; + await nodeHttpHandler.handle(httpRequest as any); + expect(hRequestSpy.mock.calls[0][0]?.host).toEqual("host"); + }); }); }); diff --git a/packages/node-http-handler/src/node-http-handler.ts b/packages/node-http-handler/src/node-http-handler.ts index 57c40f61bec..28bfa969b55 100644 --- a/packages/node-http-handler/src/node-http-handler.ts +++ b/packages/node-http-handler/src/node-http-handler.ts @@ -210,8 +210,8 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf path += `#${request.fragment}`; } - let hostname: string; - if (request.hostname.startsWith("[") && request.hostname.endsWith("]")) { + let hostname = request.hostname ?? ""; + if (hostname[0] === "[" && hostname.endsWith("]")) { hostname = request.hostname.slice(1, -1); } else { hostname = request.hostname;