From cd3b754f713cefac2ccfa50c06e403a108c02a16 Mon Sep 17 00:00:00 2001 From: Pedro Teixeira Date: Fri, 30 Jun 2017 11:01:23 +0100 Subject: [PATCH] fix: when peer is discovered but not online yet (racing cond), delay dial until libp2p is online --- src/core/components/libp2p.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/components/libp2p.js b/src/core/components/libp2p.js index 54328fe255..b164856e50 100644 --- a/src/core/components/libp2p.js +++ b/src/core/components/libp2p.js @@ -26,10 +26,15 @@ module.exports = function libp2p (self) { self._libp2pNode = new Node(self._peerInfo, self._peerInfoBook, options) self._libp2pNode.on('peer:discovery', (peerInfo) => { - if (self.isOnline()) { + const dial = () => { self._peerInfoBook.put(peerInfo) self._libp2pNode.dial(peerInfo, () => {}) } + if (self.isOnline()) { + dial() + } else { + self._libp2pNode.once('online', dial) + } }) self._libp2pNode.on('peer:connect', (peerInfo) => {