discovery-swarm
Advanced tools
Comparing version 6.0.0 to 6.0.1
@@ -209,6 +209,11 @@ var discovery = require('discovery-channel') | ||
var peerSeen = self._peersSeen[id] || self._peersSeen[longId] | ||
if (peerSeen) { | ||
self.emit('peer-rejected', peer, { reason: (peerSeen === PEER_BANNED) ? 'banned' : 'duplicate' }) | ||
var peerConnected = self._peersIds[id] || self._peersIds[longId] | ||
if (peerSeen && peerSeen === PEER_BANNED) { | ||
self.emit('peer-rejected', peer, { reason: 'banned' }) | ||
return | ||
} else if (peerSeen && peerConnected) { | ||
self.emit('peer-rejected', peer, { reason: 'duplicate' }) | ||
return | ||
} | ||
self._peersSeen[longId] = PEER_SEEN | ||
@@ -215,0 +220,0 @@ self._peersQueued.push(peerify(peer, channel)) |
{ | ||
"name": "discovery-swarm", | ||
"version": "6.0.0", | ||
"version": "6.0.1", | ||
"description": "A network swarm that uses discovery-channel to find peers", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
60
test.js
@@ -224,1 +224,61 @@ var test = require('tape') | ||
}) | ||
test('peer should be able to reconnect after disconnection', function (t) { | ||
var swarms = [] | ||
var reconnecting = false | ||
var stablePeer = create() | ||
var disconnectingPeer = create() | ||
stablePeer.on('connection', function (connection, info) { | ||
proceedWithDisconnection() | ||
}) | ||
stablePeer.join('test') | ||
disconnectingPeer.join('test') | ||
function create () { | ||
var s = swarm({ dht: false, utp: false }) | ||
swarms.push(s) | ||
return s | ||
} | ||
function proceedWithDisconnection () { | ||
stablePeer.on('connection-closed', function (connection, info) { | ||
reconnect() | ||
}) | ||
disconnectingPeer.leave('test') | ||
} | ||
function reconnect () { | ||
if (!reconnecting) { | ||
reconnecting = true | ||
failInCaseOfRejection() | ||
successIfAbleToReconnect() | ||
disconnectingPeer.join('test') | ||
} | ||
} | ||
function failInCaseOfRejection () { | ||
stablePeer.on('peer-rejected', function (peerAddress, details) { | ||
t.fail('Peer should be able to reconnect but is rejected') | ||
swarms.forEach(function (s) { | ||
s.destroy() | ||
}) | ||
t.end() | ||
}) | ||
} | ||
function successIfAbleToReconnect () { | ||
disconnectingPeer.on('connection', function (connection, info) { | ||
t.ok(connection, 'got connection') | ||
swarms.forEach(function (s) { | ||
s.destroy() | ||
}) | ||
t.end() | ||
}) | ||
} | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
28951
694