From 21f87476f6f45b5086ee309952c19fc2a484080f Mon Sep 17 00:00:00 2001 From: Vasco Santos Date: Fri, 20 Dec 2019 16:33:36 +0000 Subject: [PATCH] fix: transport should not handle connection if upgradeInbound throws (#119) --- package.json | 2 +- src/listener.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 073f70d..32ab215 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "aegir": "^20.4.1", "chai": "^4.2.0", "dirty-chai": "^2.0.1", - "libp2p-interfaces": "^0.1.6", + "libp2p-interfaces": "^0.2.0", "it-pipe": "^1.1.0", "sinon": "^7.5.0", "streaming-iterables": "^4.1.1" diff --git a/src/listener.js b/src/listener.js index 91269c5..10b57a2 100644 --- a/src/listener.js +++ b/src/listener.js @@ -2,7 +2,10 @@ const net = require('net') const EventEmitter = require('events') -const log = require('debug')('libp2p:tcp:listener') +const debug = require('debug') +const log = debug('libp2p:tcp:listener') +log.error = debug('libp2p:tcp:listener:error') + const toConnection = require('./socket-to-conn') const { CODE_P2P } = require('./constants') const { @@ -20,7 +23,14 @@ module.exports = ({ handler, upgrader }, options) => { const maConn = toConnection(socket, { listeningAddr }) log('new inbound connection %s', maConn.remoteAddr) - const conn = await upgrader.upgradeInbound(maConn) + let conn + try { + conn = await upgrader.upgradeInbound(maConn) + } catch (err) { + log.error('inbound connection failed to upgrade', err) + return maConn.close() + } + log('inbound connection %s upgraded', maConn.remoteAddr) trackConn(server, maConn)