mirror of
https://github.com/fluencelabs/js-libp2p-websockets
synced 2025-04-27 20:32:24 +00:00
fix: support multiaddr 7 (#94)
This commit is contained in:
parent
5a9434bc58
commit
996c5323a1
@ -53,6 +53,7 @@
|
|||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"interface-transport": "~0.3.7",
|
"interface-transport": "~0.3.7",
|
||||||
"multiaddr": "^6.0.6",
|
"multiaddr": "^6.0.6",
|
||||||
|
"multiaddr7": "npm:multiaddr@^7.0.0",
|
||||||
"pull-goodbye": "0.0.2",
|
"pull-goodbye": "0.0.2",
|
||||||
"pull-stream": "^3.6.9"
|
"pull-stream": "^3.6.9"
|
||||||
},
|
},
|
||||||
|
@ -55,7 +55,9 @@ class WebSockets {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ma.protoNames().includes('ipfs')) {
|
if (typeof ma.decapsulateCode === 'function') {
|
||||||
|
ma = ma.decapsulateCode(421) // multiaddr 7
|
||||||
|
} else if (ma.protoNames().includes('ipfs')) {
|
||||||
ma = ma.decapsulate('ipfs')
|
ma = ma.decapsulate('ipfs')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,10 +25,6 @@ module.exports = (options, handler) => {
|
|||||||
callback = callback || noop
|
callback = callback || noop
|
||||||
listeningMultiaddr = ma
|
listeningMultiaddr = ma
|
||||||
|
|
||||||
if (ma.protoNames().includes('ipfs')) {
|
|
||||||
ma = ma.decapsulate('ipfs')
|
|
||||||
}
|
|
||||||
|
|
||||||
listener._listen(ma.toOptions(), callback)
|
listener._listen(ma.toOptions(), callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
42
test/node.js
42
test/node.js
@ -7,6 +7,7 @@ const dirtyChai = require('dirty-chai')
|
|||||||
const expect = chai.expect
|
const expect = chai.expect
|
||||||
chai.use(dirtyChai)
|
chai.use(dirtyChai)
|
||||||
const multiaddr = require('multiaddr')
|
const multiaddr = require('multiaddr')
|
||||||
|
const multiaddr7 = require('multiaddr7')
|
||||||
const pull = require('pull-stream')
|
const pull = require('pull-stream')
|
||||||
const goodbye = require('pull-goodbye')
|
const goodbye = require('pull-goodbye')
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ describe('listen', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('getAddrs on port 0 listen', (done) => {
|
it('getAddrs on port 0 listen', (done) => {
|
||||||
const addr = multiaddr(`/ip4/127.0.0.1/tcp/0/ws`)
|
const addr = multiaddr('/ip4/127.0.0.1/tcp/0/ws')
|
||||||
const listener = ws.createListener((conn) => {
|
const listener = ws.createListener((conn) => {
|
||||||
})
|
})
|
||||||
listener.listen(addr, () => {
|
listener.listen(addr, () => {
|
||||||
@ -110,7 +111,7 @@ describe('listen', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('getAddrs from listening on 0.0.0.0', (done) => {
|
it('getAddrs from listening on 0.0.0.0', (done) => {
|
||||||
const addr = multiaddr(`/ip4/0.0.0.0/tcp/9003/ws`)
|
const addr = multiaddr('/ip4/0.0.0.0/tcp/9003/ws')
|
||||||
const listener = ws.createListener((conn) => {
|
const listener = ws.createListener((conn) => {
|
||||||
})
|
})
|
||||||
listener.listen(addr, () => {
|
listener.listen(addr, () => {
|
||||||
@ -123,7 +124,7 @@ describe('listen', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('getAddrs from listening on 0.0.0.0 and port 0', (done) => {
|
it('getAddrs from listening on 0.0.0.0 and port 0', (done) => {
|
||||||
const addr = multiaddr(`/ip4/0.0.0.0/tcp/0/ws`)
|
const addr = multiaddr('/ip4/0.0.0.0/tcp/0/ws')
|
||||||
const listener = ws.createListener((conn) => {
|
const listener = ws.createListener((conn) => {
|
||||||
})
|
})
|
||||||
listener.listen(addr, () => {
|
listener.listen(addr, () => {
|
||||||
@ -150,6 +151,21 @@ describe('listen', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('getAddrs preserves p2p Id', (done) => {
|
||||||
|
const ma = multiaddr7('/ip4/127.0.0.1/tcp/9090/ws/p2p/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
|
||||||
|
|
||||||
|
const listener = ws.createListener((conn) => { })
|
||||||
|
|
||||||
|
listener.listen(ma, () => {
|
||||||
|
listener.getAddrs((err, addrs) => {
|
||||||
|
expect(err).to.not.exist()
|
||||||
|
expect(addrs.length).to.equal(1)
|
||||||
|
expect(addrs[0]).to.deep.equal(ma)
|
||||||
|
listener.close(done)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('ip6', () => {
|
describe('ip6', () => {
|
||||||
@ -198,6 +214,16 @@ describe('listen', () => {
|
|||||||
listener.close(done)
|
listener.close(done)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('listen on addr with /p2p/QmHASH', (done) => {
|
||||||
|
const ma = multiaddr7('/ip6/::1/tcp/9091/ws/p2p/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
|
||||||
|
|
||||||
|
const listener = ws.createListener((conn) => { })
|
||||||
|
|
||||||
|
listener.listen(ma, () => {
|
||||||
|
listener.close(done)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -343,6 +369,16 @@ describe('filter addrs', () => {
|
|||||||
expect(valid[1]).to.deep.equal(ma2)
|
expect(valid[1]).to.deep.equal(ma2)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should filter correct ipv4 addresses with p2p id', function () {
|
||||||
|
const ma1 = multiaddr7('/ip4/127.0.0.1/tcp/80/ws/p2p/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
|
||||||
|
const ma2 = multiaddr7('/ip4/127.0.0.1/tcp/80/wss/p2p/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
|
||||||
|
|
||||||
|
const valid = ws.filter([ma1, ma2])
|
||||||
|
expect(valid.length).to.equal(2)
|
||||||
|
expect(valid[0]).to.deep.equal(ma1)
|
||||||
|
expect(valid[1]).to.deep.equal(ma2)
|
||||||
|
})
|
||||||
|
|
||||||
it('should filter correct ipv6 address', function () {
|
it('should filter correct ipv6 address', function () {
|
||||||
const ma1 = multiaddr('/ip6/::1/tcp/80/ws')
|
const ma1 = multiaddr('/ip6/::1/tcp/80/ws')
|
||||||
const ma2 = multiaddr('/ip6/::1/tcp/443/wss')
|
const ma2 = multiaddr('/ip6/::1/tcp/443/wss')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user