feat: relay filtering

* feat: filter IPFS addrs correctly

* feat: mafmt addrs now support /ipfs no need for ad-hoc filtering

* feat: skip p2p-circuit addresses
This commit is contained in:
Dmitriy Ryajov 2017-10-13 08:13:28 -07:00 committed by David Dias
parent 7572279838
commit 11c4f451f4
3 changed files with 13 additions and 2 deletions

View File

@ -67,10 +67,16 @@ class TCP {
if (!Array.isArray(multiaddrs)) { if (!Array.isArray(multiaddrs)) {
multiaddrs = [multiaddrs] multiaddrs = [multiaddrs]
} }
return multiaddrs.filter((ma) => { return multiaddrs.filter((ma) => {
if (includes(ma.protoNames(), 'p2p-circuit')) {
return false
}
if (includes(ma.protoNames(), 'ipfs')) { if (includes(ma.protoNames(), 'ipfs')) {
ma = ma.decapsulate('ipfs') ma = ma.decapsulate('ipfs')
} }
return mafmt.TCP.matches(ma) return mafmt.TCP.matches(ma)
}) })
} }

View File

@ -273,8 +273,11 @@ describe('filter addrs', () => {
const mh2 = multiaddr('/ip4/127.0.0.1/udp/9090') const mh2 = multiaddr('/ip4/127.0.0.1/udp/9090')
const mh3 = multiaddr('/ip4/127.0.0.1/tcp/9090/http') const mh3 = multiaddr('/ip4/127.0.0.1/tcp/9090/http')
const mh4 = multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw') const mh4 = multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
const mh5 = multiaddr('/ip4/127.0.0.1/tcp/9090/http/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
const mh6 = multiaddr('/ip4/127.0.0.1/tcp/9090/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw' +
'/p2p-circuit/ipfs/Qmb6owHp6eaWArVbcJJbQSyifyJBttMMjYV76N2hMbf5Vw')
const valid = tcp.filter([mh1, mh2, mh3, mh4]) const valid = tcp.filter([mh1, mh2, mh3, mh4, mh5, mh6])
expect(valid.length).to.equal(2) expect(valid.length).to.equal(2)
expect(valid[0]).to.deep.equal(mh1) expect(valid[0]).to.deep.equal(mh1)
expect(valid[1]).to.deep.equal(mh4) expect(valid[1]).to.deep.equal(mh4)
@ -349,6 +352,7 @@ describe('valid Connection', () => {
const conn = tcp.dial(ma) const conn = tcp.dial(ma)
pull(conn, pull.onEnd(endHandler)) pull(conn, pull.onEnd(endHandler))
function endHandler () { function endHandler () {
conn.getPeerInfo((err, peerInfo) => { conn.getPeerInfo((err, peerInfo) => {
expect(err).to.exist() expect(err).to.exist()
@ -375,6 +379,7 @@ describe('valid Connection', () => {
const conn = tcp.dial(ma) const conn = tcp.dial(ma)
pull(conn, pull.onEnd(endHandler)) pull(conn, pull.onEnd(endHandler))
function endHandler () { function endHandler () {
conn.setPeerInfo('arroz') conn.setPeerInfo('arroz')
conn.getPeerInfo((err, peerInfo) => { conn.getPeerInfo((err, peerInfo) => {