Compare commits

...

4 Commits

Author SHA1 Message Date
David Dias
665f7c6d66 chore: release version v0.18.2 2016-05-24 14:08:13 +01:00
David Dias
03e02dfba9 chore: update contributors 2016-05-24 14:08:12 +01:00
David Dias
019f84885d Merge pull request #68 from diasdavid/fix/identify
Make identify not freak out on missing pubkey, it is ok.. this enables webrtc-star discovery to work fine
2016-05-24 14:04:48 +01:00
David Dias
ceaae4c53f Make identify not freak out on missing pubkey, it is ok.. this enables webrtc-star discovery to work fine 2016-05-24 13:51:34 +01:00
3 changed files with 41 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "libp2p-swarm",
"version": "0.18.1",
"version": "0.18.2",
"description": "libp2p swarm implementation in JavaScript",
"main": "lib/index.js",
"jsnext:main": "src/index.js",

View File

@@ -62,7 +62,7 @@ exports.exec = (rawConn, muxer, peerInfo, callback) => {
pbs.identify({
protocolVersion: 'na',
agentVersion: 'na',
publicKey: peerInfo.id.pubKey,
publicKey: peerInfo.id.pubKey || new Buffer(0),
listenAddrs: peerInfo.multiaddrs.map((mh) => mh.buffer),
observedAddr: obsMultiaddr ? obsMultiaddr.buffer : new Buffer('')
})
@@ -91,7 +91,7 @@ exports.handler = (peerInfo, swarm) => {
pbs.identify({
protocolVersion: 'na',
agentVersion: 'na',
publicKey: peerInfo.id.pubKey,
publicKey: peerInfo.id.pubKey || new Buffer(0),
listenAddrs: peerInfo.multiaddrs.map((ma) => ma.buffer),
observedAddr: obsMultiaddr ? obsMultiaddr.buffer : new Buffer('')
})

View File

@@ -17,9 +17,11 @@ describe('high level API (swarm with spdy + webrtc-star)', function () {
let swarm1
let peer1
let wstar1
let swarm2
let peer2
let wstar2
before(() => {
const id1 = peerId.create()
@@ -37,12 +39,14 @@ describe('high level API (swarm with spdy + webrtc-star)', function () {
})
it('add WebRTCStar transport to swarm 1', () => {
swarm1.transport.add('wstar', new WebRTCStar())
wstar1 = new WebRTCStar()
swarm1.transport.add('wstar', wstar1)
expect(Object.keys(swarm1.transports).length).to.equal(1)
})
it('add WebRTCStar transport to swarm 2', () => {
swarm2.transport.add('wstar', new WebRTCStar())
wstar2 = new WebRTCStar()
swarm2.transport.add('wstar', wstar2)
expect(Object.keys(swarm2.transports).length).to.equal(1)
})
@@ -76,7 +80,7 @@ describe('high level API (swarm with spdy + webrtc-star)', function () {
conn.pipe(bl((err, data) => {
expect(err).to.not.exist
expect(data.toString()).to.equal(text)
// expect(Object.keys(swarm2.muxedConns).length).to.equal(1)
expect(Object.keys(swarm2.muxedConns).length).to.equal(1)
done()
}))
@@ -85,6 +89,37 @@ describe('high level API (swarm with spdy + webrtc-star)', function () {
})
})
it('create a third node and check that discovery works', (done) => {
wstar1.discovery.on('peer', (peerInfo) => {
expect(Object.keys(swarm1.muxedConns).length).to.equal(1)
swarm1.dial(peerInfo, () => {
expect(Object.keys(swarm1.muxedConns).length).to.equal(2)
})
})
wstar2.discovery.on('peer', (peerInfo) => {
swarm2.dial(peerInfo)
})
const id3 = peerId.create()
const peer3 = new PeerInfo(id3)
const mh3 = multiaddr('/libp2p-webrtc-star/ip4/127.0.0.1/tcp/15555/ws/ipfs/' + id3.toB58String())
peer3.multiaddr.add(mh3)
const swarm3 = new Swarm(peer3)
const wstar3 = new WebRTCStar()
swarm3.transport.add('wstar', wstar3)
swarm3.connection.addStreamMuxer(spdy)
swarm3.connection.reuse()
swarm3.listen(() => {
setTimeout(() => {
expect(Object.keys(swarm1.muxedConns).length).to.equal(2)
expect(Object.keys(swarm2.muxedConns).length).to.equal(2)
expect(Object.keys(swarm3.muxedConns).length).to.equal(2)
swarm3.close(done)
}, 8000)
})
})
it('close', (done) => {
parallel([
swarm1.close,