fix: overwrite stream fields after handshake (#1305)

Instead of creating a new stream objects instead just overwrite the duplex fields with ones from the mss stream.
This commit is contained in:
Alex Potsides 2022-09-08 12:47:03 +01:00 committed by GitHub
parent d63e08115b
commit 43b0418998
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 14 deletions

View File

@ -9,7 +9,7 @@
"@libp2p/delegated-content-routing": "^2.0.1",
"@libp2p/delegated-peer-routing": "^2.0.1",
"@libp2p/kad-dht": "^3.0.0",
"@libp2p/mplex": "^5.0.0",
"@libp2p/mplex": "^5.2.1",
"@libp2p/webrtc-star": "^3.0.0",
"@libp2p/websockets": "^3.0.0",
"react": "^17.0.2",

View File

@ -11,7 +11,7 @@
"dependencies": {
"@chainsafe/libp2p-noise": "^8.0.0",
"@libp2p/bootstrap": "^2.0.0",
"@libp2p/mplex": "^5.0.0",
"@libp2p/mplex": "^5.2.1",
"@libp2p/webrtc-star": "^3.0.0",
"@libp2p/websockets": "^3.0.0",
"libp2p": "../../"

View File

@ -12,7 +12,7 @@
"@libp2p/webrtc-direct": "^2.0.0",
"@chainsafe/libp2p-noise": "^8.0.0",
"@libp2p/bootstrap": "^2.0.0",
"@libp2p/mplex": "^5.0.0",
"@libp2p/mplex": "^5.2.1",
"libp2p": "../../",
"wrtc": "^0.4.7"
},

View File

@ -180,7 +180,7 @@
"@libp2p/interop": "^2.0.0",
"@libp2p/kad-dht": "^3.0.4",
"@libp2p/mdns": "^3.0.0",
"@libp2p/mplex": "^5.0.0",
"@libp2p/mplex": "^5.2.1",
"@libp2p/pubsub": "^3.0.1",
"@libp2p/tcp": "^3.0.5",
"@libp2p/topology": "^3.0.0",

View File

@ -440,20 +440,17 @@ export class DefaultUpgrader extends EventEmitter<UpgraderEvents> implements Upg
throw err
}
muxedStream.stat.protocol = protocol
// If a protocol stream has been successfully negotiated and is to be passed to the application,
// the peerstore should ensure that the peer is registered with that protocol
this.components.getPeerStore().protoBook.add(remotePeer, [protocol]).catch(err => log.error(err))
return {
...muxedStream,
...stream,
stat: {
...muxedStream.stat,
protocol
}
}
// after the handshake the returned stream can have early data so override
// the souce/sink
muxedStream.source = stream.source
muxedStream.sink = stream.sink
muxedStream.stat.protocol = protocol
return muxedStream
} catch (err: any) {
log.error('could not create new stream', err)