From 605ee279ae50b1bcf6ec7d03c676e54d5593f810 Mon Sep 17 00:00:00 2001 From: Jacob Heun Date: Thu, 19 Sep 2019 15:20:54 +0200 Subject: [PATCH] fix: ensure timeline.close is set (#113) * fix(test): dns4 isnt a valid tcp multiaddr It should be resolved first * fix: ensure timeline.close is set on the multiaddrConn * chore: add docs to gitignore They are generated and uploaded on release --- .gitignore | 1 + package.json | 4 ++-- src/socket-to-conn.js | 9 +++++++++ test/compliance.spec.js | 3 +-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9faa8e0..9a5d409 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules package-lock.json coverage .nyc_output +docs diff --git a/package.json b/package.json index 2132262..aba29a0 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "aegir": "^20.0.0", "chai": "^4.2.0", "dirty-chai": "^2.0.1", - "interface-transport": "^0.6.1", + "interface-transport": "^0.7.0", "sinon": "^7.3.1" }, "dependencies": { @@ -45,7 +45,7 @@ "debug": "^4.1.1", "err-code": "^2.0.0", "ip-address": "^6.1.0", - "mafmt": "^6.0.9", + "mafmt": "^7.0.0", "multiaddr": "^7.1.0", "stream-to-it": "^0.1.1" }, diff --git a/src/socket-to-conn.js b/src/socket-to-conn.js index 83e9a4d..c1dccaf 100644 --- a/src/socket-to-conn.js +++ b/src/socket-to-conn.js @@ -79,5 +79,14 @@ module.exports = (socket, options) => { } } + socket.once('close', () => { + // In instances where `close` was not explicitly called, + // such as an iterable stream ending, ensure we have set the close + // timeline + if (!maConn.timeline.close) { + maConn.timeline.close = Date.now() + } + }) + return maConn } diff --git a/test/compliance.spec.js b/test/compliance.spec.js index b337d3f..09b334f 100644 --- a/test/compliance.spec.js +++ b/test/compliance.spec.js @@ -14,8 +14,7 @@ describe('interface-transport compliance', () => { const addrs = [ multiaddr('/ip4/127.0.0.1/tcp/9091'), multiaddr('/ip4/127.0.0.1/tcp/9092'), - multiaddr('/ip4/127.0.0.1/tcp/9093'), - multiaddr('/dns4/ipfs.io') + multiaddr('/ip4/127.0.0.1/tcp/9093') ] // Used by the dial tests to simulate a delayed connect