From 2d0ad3516d779f979857afee2087508377c92c75 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Fri, 24 Feb 2023 12:18:44 -0800 Subject: [PATCH 1/4] Only filter by wss not dns --- src/filters.ts | 5 ++--- src/index.ts | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/filters.ts b/src/filters.ts index e01ffcf..0abad28 100644 --- a/src/filters.ts +++ b/src/filters.ts @@ -21,7 +21,7 @@ export function all (multiaddrs: Multiaddr[]) { }) } -export function dnsWss (multiaddrs: Multiaddr[]) { +export function wss (multiaddrs: Multiaddr[]) { return multiaddrs.filter((ma) => { if (ma.protoCodes().includes(CODE_CIRCUIT)) { return false @@ -29,8 +29,7 @@ export function dnsWss (multiaddrs: Multiaddr[]) { const testMa = ma.decapsulateCode(CODE_P2P) - return mafmt.WebSocketsSecure.matches(testMa) && - mafmt.DNS.matches(testMa.decapsulateCode(CODE_TCP).decapsulateCode(CODE_WSS)) + return mafmt.WebSocketsSecure.matches(testMa) }) } diff --git a/src/index.ts b/src/index.ts index 16e6d04..725cfc6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -133,7 +133,7 @@ class WebSockets implements Transport { // Browser if (isBrowser || isWebWorker) { - return filters.dnsWss(multiaddrs) + return filters.wss(multiaddrs) } return filters.all(multiaddrs) From fc2cff53ce995eb019dbbd9787e4b6b766131dad Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Fri, 24 Feb 2023 12:28:56 -0800 Subject: [PATCH 2/4] Update test --- test/browser.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/browser.ts b/test/browser.ts index c86bc2c..fe848ca 100644 --- a/test/browser.ts +++ b/test/browser.ts @@ -40,7 +40,7 @@ describe('libp2p-websockets', () => { expect(res[0].subarray()).to.equalBytes(data) }) - it('should filter out no DNS websocket addresses', function () { + it('should filter out no wss websocket addresses', function () { const ma1 = multiaddr('/ip4/127.0.0.1/tcp/80/ws') const ma2 = multiaddr('/ip4/127.0.0.1/tcp/443/wss') const ma3 = multiaddr('/ip6/::1/tcp/80/ws') @@ -49,7 +49,8 @@ describe('libp2p-websockets', () => { const valid = ws.filter([ma1, ma2, ma3, ma4]) if (isBrowser || isWebWorker) { - expect(valid.length).to.equal(0) + expect(valid.length).to.equal(2) + expect(valid).to.equal([ma2, ma4]) } else { expect(valid.length).to.equal(4) } From 0feb952ced5b6200c0427ad6573d35cc722b45e9 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Fri, 24 Feb 2023 12:32:24 -0800 Subject: [PATCH 3/4] Update test --- test/browser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/browser.ts b/test/browser.ts index fe848ca..7d2e505 100644 --- a/test/browser.ts +++ b/test/browser.ts @@ -50,7 +50,7 @@ describe('libp2p-websockets', () => { if (isBrowser || isWebWorker) { expect(valid.length).to.equal(2) - expect(valid).to.equal([ma2, ma4]) + expect(valid).to.deep.equal([ma2, ma4]) } else { expect(valid.length).to.equal(4) } From 0e251e616c7aac0362e9636fb4edd5a3052faf68 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Mon, 27 Feb 2023 10:05:42 -0800 Subject: [PATCH 4/4] Add back dnsWss --- src/filters.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/filters.ts b/src/filters.ts index 0abad28..8e227fd 100644 --- a/src/filters.ts +++ b/src/filters.ts @@ -33,6 +33,19 @@ export function wss (multiaddrs: Multiaddr[]) { }) } +export function dnsWss (multiaddrs: Multiaddr[]) { + return multiaddrs.filter((ma) => { + if (ma.protoCodes().includes(CODE_CIRCUIT)) { + return false + } + + const testMa = ma.decapsulateCode(CODE_P2P) + + return mafmt.WebSocketsSecure.matches(testMa) && + mafmt.DNS.matches(testMa.decapsulateCode(CODE_TCP).decapsulateCode(CODE_WSS)) + }) +} + export function dnsWsOrWss (multiaddrs: Multiaddr[]) { return multiaddrs.filter((ma) => { if (ma.protoCodes().includes(CODE_CIRCUIT)) {