From b1b91398e27d0b8852a74a87f0d8ccc5f34340b4 Mon Sep 17 00:00:00 2001 From: Cayman Date: Thu, 14 Jul 2022 07:03:06 -0500 Subject: [PATCH] fix: update muxer behavior (#1289) - use `direction` in `muxerFactory.createStreamMuxer` - use `muxer.close` instead of `muxer.streams.forEach(s => s.close())` --- src/upgrader.ts | 3 ++- test/relay/auto-relay.node.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/upgrader.ts b/src/upgrader.ts index cb344dff..9cf8fc50 100644 --- a/src/upgrader.ts +++ b/src/upgrader.ts @@ -315,6 +315,7 @@ export class DefaultUpgrader extends EventEmitter implements Upg if (muxerFactory != null) { // Create the muxer muxer = muxerFactory.createStreamMuxer({ + direction, // Run anytime a remote stream is created onIncomingStream: muxedStream => { if (connection == null) { @@ -469,7 +470,7 @@ export class DefaultUpgrader extends EventEmitter implements Upg await maConn.close() // Ensure remaining streams are closed if (muxer != null) { - muxer.streams.forEach(s => s.close()) + muxer.close() } } }) diff --git a/test/relay/auto-relay.node.ts b/test/relay/auto-relay.node.ts index 94dd19e4..1363144e 100644 --- a/test/relay/auto-relay.node.ts +++ b/test/relay/auto-relay.node.ts @@ -1,6 +1,7 @@ /* eslint-env mocha */ import { expect } from 'aegir/chai' +import { pEvent } from 'p-event' import defer from 'p-defer' import pWaitFor from 'p-wait-for' import sinon from 'sinon' @@ -205,6 +206,7 @@ describe('auto-relay', () => { // Disconnect from peer used for relay await relayLibp2p2.stop() + await pEvent(relayLibp2p1.connectionManager, 'peer:disconnect', { timeout: 500 }) // Should not be using the relay any more await expect(usingAsRelay(relayLibp2p1, relayLibp2p2, {