From b1cffc70d0da7875b21bc1d2622b374402e0f07d Mon Sep 17 00:00:00 2001 From: JGAntunes Date: Mon, 26 Mar 2018 04:03:03 +0100 Subject: [PATCH 1/2] fix: add start method --- src/ping.js | 41 ++++++++++++++++++++++------------------- test/test-ping.js | 6 ++++++ 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/ping.js b/src/ping.js index d369c6f..4022a49 100644 --- a/src/ping.js +++ b/src/ping.js @@ -17,19 +17,21 @@ class Ping extends EventEmitter { constructor (swarm, peer) { super() - let stop = false - let shake - let self = this + this._stopped = false + this.peer = peer + this.swarm = swarm + } - log('dialing %s to %s', PROTOCOL, peer.id.toB58String()) + start () { + log('dialing %s to %s', PROTOCOL, this.peer.id.toB58String()) - swarm.dial(peer, PROTOCOL, (err, conn) => { + this.swarm.dial(this.peer, PROTOCOL, (err, conn) => { if (err) { return this.emit('error', err) } const stream = handshake({ timeout: 0 }) - shake = stream.handshake + this.shake = stream.handshake pull( stream, @@ -38,11 +40,12 @@ class Ping extends EventEmitter { ) // write and wait to see ping back + const self = this function next () { let start = new Date() let buf = rnd(PING_LENGTH) - shake.write(buf) - shake.read(PING_LENGTH, (err, bufBack) => { + self.shake.write(buf) + self.shake.read(PING_LENGTH, (err, bufBack) => { let end = new Date() if (err || !buf.equals(bufBack)) { const err = new Error('Received wrong ping ack') @@ -51,7 +54,7 @@ class Ping extends EventEmitter { self.emit('ping', end - start) - if (stop) { + if (self._stopped) { return } next() @@ -60,19 +63,19 @@ class Ping extends EventEmitter { next() }) + } - this.stop = () => { - if (stop || !shake) { - return - } + stop () { + if (this._stopped || !this.shake) { + return + } - stop = true + this._stopped = true - pull( - pull.empty(), - shake.rest() - ) - } + pull( + pull.empty(), + this.shake.rest() + ) } } diff --git a/test/test-ping.js b/test/test-ping.js index 93e114a..3c4aa67 100644 --- a/test/test-ping.js +++ b/test/test-ping.js @@ -72,6 +72,8 @@ describe('libp2p ping', () => { p.stop() done() }) + + p.start() }) it('ping 5 times from peerB to peerA', (done) => { @@ -90,6 +92,8 @@ describe('libp2p ping', () => { done() } }) + + p.start() }) it('ping itself', (done) => { @@ -104,6 +108,8 @@ describe('libp2p ping', () => { p.stop() done() }) + + p.start() }) it('unmount PING protocol', () => { From ba53aeab913e75f00e02b32346dc3184955488d9 Mon Sep 17 00:00:00 2001 From: JGAntunes Date: Mon, 26 Mar 2018 17:57:51 +0100 Subject: [PATCH 2/2] chore: update docs --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cc44a54..65cf55e 100644 --- a/README.md +++ b/README.md @@ -23,4 +23,6 @@ p.on('ping', function (time) { console.log(time + 'ms') p.stop() // stop sending pings }) + +p.start() ```