From 5b59fc3a47b44af819ad5de90be0671169c21f1f Mon Sep 17 00:00:00 2001 From: Jacob Heun Date: Wed, 30 Oct 2019 13:35:26 +0100 Subject: [PATCH] fix: catch inbound upgrade errors (#96) License: MIT Signed-off-by: Jacob Heun --- src/listener.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/listener.js b/src/listener.js index 1104a8b..9072a03 100644 --- a/src/listener.js +++ b/src/listener.js @@ -4,8 +4,9 @@ const EventEmitter = require('events') const os = require('os') const multiaddr = require('multiaddr') const { createServer } = require('it-ws') - -const log = require('debug')('libp2p:websockets:listener') +const debug = require('debug') +const log = debug('libp2p:websockets:listener') +log.error = debug('libp2p:websockets:listener:error') const toConnection = require('./socket-to-conn') @@ -17,7 +18,14 @@ module.exports = ({ handler, upgrader }, options = {}) => { 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)