From ba0346cbb65e9caeceef290f44ab2b2dcff1af66 Mon Sep 17 00:00:00 2001 From: Jacob Heun Date: Tue, 24 Sep 2019 14:36:48 +0200 Subject: [PATCH] fix: listen with multiaddr7 License: MIT Signed-off-by: Jacob Heun --- src/listener.js | 5 ++++- test/listen-dial.spec.js | 13 +++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/listener.js b/src/listener.js index 30b3076..232a8f6 100644 --- a/src/listener.js +++ b/src/listener.js @@ -84,7 +84,10 @@ module.exports = (handler) => { listener.listen = (ma, callback) => { listeningAddr = ma - if (includes(ma.protoNames(), 'ipfs')) { + if (typeof ma.decapsulateCode === 'function') { + ipfsId = getIpfsId(ma) + listeningAddr = ma.decapsulateCode(IPFS_CODE) + } else if (includes(ma.protoNames(), 'ipfs')) { ipfsId = getIpfsId(ma) listeningAddr = ma.decapsulate('ipfs') } diff --git a/test/listen-dial.spec.js b/test/listen-dial.spec.js index 8a59872..a8c4174 100644 --- a/test/listen-dial.spec.js +++ b/test/listen-dial.spec.js @@ -127,6 +127,19 @@ describe('listen', () => { }) }) }) + + it('getAddrs preserves IPFS Id (multiaddr 7)', (done) => { + const mh = multiaddr7('/ip4/127.0.0.1/tcp/9090/p2p/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw') + const listener = tcp.createListener((conn) => {}) + listener.listen(mh, () => { + listener.getAddrs((err, multiaddrs) => { + expect(err).to.not.exist() + expect(multiaddrs.length).to.equal(1) + expect(multiaddrs[0]).to.deep.equal(mh) + listener.close(done) + }) + }) + }) }) describe('dial', () => {