From 2593f87f7c5e8f456b6cdf292bea5abce751bc3b Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Mon, 28 Feb 2022 15:05:34 +1100 Subject: [PATCH 1/2] Extract logic to function --- src/socket-to-conn.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/socket-to-conn.js b/src/socket-to-conn.js index 573dbc2..cc6b01a 100644 --- a/src/socket-to-conn.js +++ b/src/socket-to-conn.js @@ -44,9 +44,7 @@ module.exports = (socket, options = {}) => { conn: socket, - localAddr: socket.localAddress && socket.localPort - ? toMultiaddr(socket.localAddress, socket.localPort) - : undefined, + localAddr: toLocalAddr(socket), // If the remote address was passed, use it - it may have the peer ID encapsulated remoteAddr: options.remoteAddr, @@ -98,3 +96,15 @@ module.exports = (socket, options = {}) => { return maConn } + +/** + * Get local multiaddr from socket. + * + * @param {SimplePeer} socket + * @returns {Multiaddr|undefined} + */ +function toLocalAddr (socket) { + return socket.localAddress && socket.localPort + ? toMultiaddr(socket.localAddress, socket.localPort) + : undefined +} From c8cae5bcb70206c244aea3613466f60006dad377 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Mon, 28 Feb 2022 15:12:09 +1100 Subject: [PATCH 2/2] Do note throw if localAddress is fqdn --- src/socket-to-conn.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/socket-to-conn.js b/src/socket-to-conn.js index cc6b01a..026f373 100644 --- a/src/socket-to-conn.js +++ b/src/socket-to-conn.js @@ -104,7 +104,11 @@ module.exports = (socket, options = {}) => { * @returns {Multiaddr|undefined} */ function toLocalAddr (socket) { - return socket.localAddress && socket.localPort - ? toMultiaddr(socket.localAddress, socket.localPort) - : undefined + if (socket.localAddress && socket.localPort) { + try { + return toMultiaddr(socket.localAddress, socket.localPort) + } catch { + // Might fail if the socket.localAddress is fqdn + } + } }