@libp2p/webrtc 5.2.3 → 5.2.4-96f79bc11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.min.js +3 -3
- package/dist/src/constants.d.ts +0 -4
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +0 -4
- package/dist/src/constants.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/maconn.d.ts +1 -1
- package/dist/src/maconn.js +1 -1
- package/dist/src/muxer.js +1 -1
- package/dist/src/muxer.js.map +1 -1
- package/dist/src/private-to-private/listener.d.ts +4 -1
- package/dist/src/private-to-private/listener.d.ts.map +1 -1
- package/dist/src/private-to-private/listener.js +14 -2
- package/dist/src/private-to-private/listener.js.map +1 -1
- package/dist/src/private-to-private/transport.d.ts +3 -2
- package/dist/src/private-to-private/transport.d.ts.map +1 -1
- package/dist/src/private-to-private/transport.js +14 -6
- package/dist/src/private-to-private/transport.js.map +1 -1
- package/dist/src/private-to-public/listener.d.ts +2 -0
- package/dist/src/private-to-public/listener.d.ts.map +1 -1
- package/dist/src/private-to-public/listener.js +20 -9
- package/dist/src/private-to-public/listener.js.map +1 -1
- package/dist/src/private-to-public/transport.d.ts +2 -1
- package/dist/src/private-to-public/transport.d.ts.map +1 -1
- package/dist/src/private-to-public/transport.js +3 -3
- package/dist/src/private-to-public/transport.js.map +1 -1
- package/dist/src/private-to-public/utils/generate-noise-prologue.js +1 -1
- package/dist/src/private-to-public/utils/generate-noise-prologue.js.map +1 -1
- package/dist/src/private-to-public/utils/sdp.d.ts +1 -1
- package/dist/src/private-to-public/utils/sdp.d.ts.map +1 -1
- package/dist/src/private-to-public/utils/sdp.js +8 -8
- package/dist/src/private-to-public/utils/sdp.js.map +1 -1
- package/dist/src/stream.js +5 -5
- package/dist/src/stream.js.map +1 -1
- package/package.json +9 -9
- package/src/constants.ts +0 -4
- package/src/index.ts +1 -1
- package/src/maconn.ts +1 -1
- package/src/muxer.ts +1 -1
- package/src/private-to-private/listener.ts +20 -3
- package/src/private-to-private/transport.ts +17 -7
- package/src/private-to-public/listener.ts +25 -10
- package/src/private-to-public/transport.ts +6 -4
- package/src/private-to-public/utils/generate-noise-prologue.ts +1 -1
- package/src/private-to-public/utils/sdp.ts +8 -8
- package/src/stream.ts +5 -5
- package/dist/typedoc-urls.json +0 -14
package/dist/src/constants.d.ts
CHANGED
@@ -9,10 +9,6 @@
|
|
9
9
|
export declare const DEFAULT_ICE_SERVERS: string[];
|
10
10
|
export declare const UFRAG_ALPHABET: string[];
|
11
11
|
export declare const UFRAG_PREFIX = "libp2p+webrtc+v1/";
|
12
|
-
/**
|
13
|
-
* The time to wait, in milliseconds, for the data channel handshake to complete
|
14
|
-
*/
|
15
|
-
export declare const HANDSHAKE_TIMEOUT_MS = 10000;
|
16
12
|
export declare const CODEC_WEBRTC_DIRECT = 280;
|
17
13
|
export declare const CODEC_CERTHASH = 466;
|
18
14
|
//# sourceMappingURL=constants.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAA;AAED,eAAO,MAAM,cAAc,UAA+E,CAAA;AAE1G,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAE/C
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAA;AAED,eAAO,MAAM,cAAc,UAA+E,CAAA;AAE1G,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAE/C,eAAO,MAAM,mBAAmB,MAAS,CAAA;AACzC,eAAO,MAAM,cAAc,MAAS,CAAA"}
|
package/dist/src/constants.js
CHANGED
@@ -14,10 +14,6 @@ export const DEFAULT_ICE_SERVERS = [
|
|
14
14
|
];
|
15
15
|
export const UFRAG_ALPHABET = Array.from('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890');
|
16
16
|
export const UFRAG_PREFIX = 'libp2p+webrtc+v1/';
|
17
|
-
/**
|
18
|
-
* The time to wait, in milliseconds, for the data channel handshake to complete
|
19
|
-
*/
|
20
|
-
export const HANDSHAKE_TIMEOUT_MS = 10_000;
|
21
17
|
export const CODEC_WEBRTC_DIRECT = 0x0118;
|
22
18
|
export const CODEC_CERTHASH = 0x01d2;
|
23
19
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,qCAAqC;CACtC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAE1G,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,qCAAqC;CACtC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAE1G,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA"}
|
package/dist/src/index.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* @packageDocumentation
|
3
3
|
*
|
4
|
-
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on [WebRTC
|
4
|
+
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on [WebRTC data channels](https://webrtc.org/).
|
5
5
|
*
|
6
6
|
* [WebRTC](https://www.w3.org/TR/webrtc/) is a specification that allows real-time communication between nodes - it's commonly used in browser video conferencing applications but it also provides a reliable data transport mechanism called [data channels](https://www.w3.org/TR/webrtc/#peer-to-peer-data-api) which libp2p uses to facilitate [protocol streams](https://docs.libp2p.io/concepts/multiplex/overview/) between peers.
|
7
7
|
*
|
package/dist/src/index.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* @packageDocumentation
|
3
3
|
*
|
4
|
-
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on [WebRTC
|
4
|
+
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on [WebRTC data channels](https://webrtc.org/).
|
5
5
|
*
|
6
6
|
* [WebRTC](https://www.w3.org/TR/webrtc/) is a specification that allows real-time communication between nodes - it's commonly used in browser video conferencing applications but it also provides a reliable data transport mechanism called [data channels](https://www.w3.org/TR/webrtc/#peer-to-peer-data-api) which libp2p uses to facilitate [protocol streams](https://docs.libp2p.io/concepts/multiplex/overview/) between peers.
|
7
7
|
*
|
package/dist/src/maconn.d.ts
CHANGED
@@ -35,7 +35,7 @@ export declare class WebRTCMultiaddrConnection implements MultiaddrConnection {
|
|
35
35
|
*/
|
36
36
|
remoteAddr: Multiaddr;
|
37
37
|
/**
|
38
|
-
* Holds the
|
38
|
+
* Holds the life cycle times of the connection
|
39
39
|
*/
|
40
40
|
timeline: MultiaddrConnectionTimeline;
|
41
41
|
/**
|
package/dist/src/maconn.js
CHANGED
package/dist/src/muxer.js
CHANGED
@@ -19,7 +19,7 @@ export class DataChannelMuxerFactory {
|
|
19
19
|
this.protocol = init.protocol ?? PROTOCOL;
|
20
20
|
this.dataChannelOptions = init.dataChannelOptions ?? {};
|
21
21
|
this.log = components.logger.forComponent('libp2p:webrtc:muxerfactory');
|
22
|
-
// store any
|
22
|
+
// store any data channels opened before upgrade has been completed
|
23
23
|
this.peerConnection.ondatachannel = ({ channel }) => {
|
24
24
|
this.log.trace('incoming early datachannel with channel id %d and label "%s"', channel.id);
|
25
25
|
// 'init' channel is only used during connection establishment
|
package/dist/src/muxer.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAQ7D,MAAM,QAAQ,GAAG,SAAS,CAAA;AA+B1B,MAAM,OAAO,uBAAuB;IAClB,QAAQ,CAAQ;IAEhC;;OAEG;IACc,cAAc,CAAmB;IAC1C,eAAe,GAAqB,EAAE,CAAA;IAC7B,OAAO,CAAe;IACtB,kBAAkB,CAAqB;IACvC,UAAU,CAAmC;IAC7C,GAAG,CAAQ;IAE5B,YAAa,UAA6C,EAAE,IAAiC;QAC3F,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAA;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAA;QACvD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAA;QAEvE,
|
1
|
+
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,11 @@
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface';
|
2
|
-
import type { PeerId, ListenerEvents, Listener } from '@libp2p/interface';
|
2
|
+
import type { PeerId, ListenerEvents, Listener, Libp2pEvents, TypedEventTarget } from '@libp2p/interface';
|
3
3
|
import type { TransportManager } from '@libp2p/interface-internal';
|
4
4
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
5
5
|
export interface WebRTCPeerListenerComponents {
|
6
6
|
peerId: PeerId;
|
7
7
|
transportManager: TransportManager;
|
8
|
+
events: TypedEventTarget<Libp2pEvents>;
|
8
9
|
}
|
9
10
|
export interface WebRTCPeerListenerInit {
|
10
11
|
shutdownController: AbortController;
|
@@ -12,8 +13,10 @@ export interface WebRTCPeerListenerInit {
|
|
12
13
|
export declare class WebRTCPeerListener extends TypedEventEmitter<ListenerEvents> implements Listener {
|
13
14
|
private readonly transportManager;
|
14
15
|
private readonly shutdownController;
|
16
|
+
private readonly events;
|
15
17
|
constructor(components: WebRTCPeerListenerComponents, init: WebRTCPeerListenerInit);
|
16
18
|
listen(): Promise<void>;
|
19
|
+
onTransportListening(event: CustomEvent<Listener>): void;
|
17
20
|
getAddrs(): Multiaddr[];
|
18
21
|
updateAnnounceAddrs(): void;
|
19
22
|
close(): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAIxD,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,eAAe,CAAA;CACpC;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC3F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE1C,UAAU,EAAE,4BAA4B,EAAE,IAAI,EAAE,sBAAsB;IAU7E,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAI9B,oBAAoB,CAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAYzD,QAAQ,IAAK,SAAS,EAAE;IAaxB,mBAAmB,IAAK,IAAI;IAItB,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CAQ9B"}
|
@@ -5,15 +5,26 @@ const Circuit = fmt(P2P.matchers[0], literal('p2p-circuit'));
|
|
5
5
|
export class WebRTCPeerListener extends TypedEventEmitter {
|
6
6
|
transportManager;
|
7
7
|
shutdownController;
|
8
|
+
events;
|
8
9
|
constructor(components, init) {
|
9
10
|
super();
|
10
11
|
this.transportManager = components.transportManager;
|
12
|
+
this.events = components.events;
|
11
13
|
this.shutdownController = init.shutdownController;
|
14
|
+
this.onTransportListening = this.onTransportListening.bind(this);
|
12
15
|
}
|
13
16
|
async listen() {
|
14
|
-
|
15
|
-
|
17
|
+
this.events.addEventListener('transport:listening', this.onTransportListening);
|
18
|
+
}
|
19
|
+
onTransportListening(event) {
|
20
|
+
const circuitAddresses = event.detail.getAddrs()
|
21
|
+
.filter(ma => Circuit.exactMatch(ma))
|
22
|
+
.map(ma => {
|
23
|
+
return ma.encapsulate('/webrtc');
|
16
24
|
});
|
25
|
+
if (circuitAddresses.length > 0) {
|
26
|
+
this.safeDispatchEvent('listening');
|
27
|
+
}
|
17
28
|
}
|
18
29
|
getAddrs() {
|
19
30
|
return this.transportManager
|
@@ -29,6 +40,7 @@ export class WebRTCPeerListener extends TypedEventEmitter {
|
|
29
40
|
updateAnnounceAddrs() {
|
30
41
|
}
|
31
42
|
async close() {
|
43
|
+
this.events.removeEventListener('transport:listening', this.onTransportListening);
|
32
44
|
this.shutdownController.abort();
|
33
45
|
queueMicrotask(() => {
|
34
46
|
this.safeDispatchEvent('close');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAKpE,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-private/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAKpE,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;AAY5D,MAAM,OAAO,kBAAmB,SAAQ,iBAAiC;IACtD,gBAAgB,CAAkB;IAClC,kBAAkB,CAAiB;IACnC,MAAM,CAAgC;IAEvD,YAAa,UAAwC,EAAE,IAA4B;QACjF,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAA;QACnD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAA;QAEjD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAChF,CAAC;IAED,oBAAoB,CAAE,KAA4B;QAChD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;aAC7C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACpC,GAAG,CAAC,EAAE,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEJ,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,gBAAgB;aACzB,YAAY,EAAE;aACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;aACnB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACpC,GAAG,CAAC,EAAE,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC,CAAC,CACH;aACA,IAAI,EAAE,CAAA;IACX,CAAC;IAED,mBAAmB;IAEnB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAEjF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;QAC/B,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { serviceCapabilities, serviceDependencies, transportSymbol } from '@libp2p/interface';
|
2
2
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
3
3
|
import type { DataChannelOptions } from '../index.js';
|
4
|
-
import type { OutboundConnectionUpgradeEvents, CreateListenerOptions, DialTransportOptions, Transport, Listener, Upgrader, ComponentLogger, Connection, PeerId, CounterGroup, Metrics, Startable, OpenConnectionProgressEvents, IncomingStreamData } from '@libp2p/interface';
|
4
|
+
import type { OutboundConnectionUpgradeEvents, CreateListenerOptions, DialTransportOptions, Transport, Listener, Upgrader, ComponentLogger, Connection, PeerId, CounterGroup, Metrics, Startable, OpenConnectionProgressEvents, IncomingStreamData, Libp2pEvents, TypedEventTarget } from '@libp2p/interface';
|
5
5
|
import type { Registrar, ConnectionManager, TransportManager } from '@libp2p/interface-internal';
|
6
6
|
import type { ProgressEvent } from 'progress-events';
|
7
7
|
export declare const SIGNALING_PROTO_ID = "/webrtc-signaling/0.0.1";
|
@@ -23,6 +23,7 @@ export interface WebRTCTransportComponents {
|
|
23
23
|
connectionManager: ConnectionManager;
|
24
24
|
metrics?: Metrics;
|
25
25
|
logger: ComponentLogger;
|
26
|
+
events: TypedEventTarget<Libp2pEvents>;
|
26
27
|
}
|
27
28
|
export interface WebRTCTransportMetrics {
|
28
29
|
dialerEvents: CounterGroup;
|
@@ -54,7 +55,7 @@ export declare class WebRTCTransport implements Transport<WebRTCDialEvents>, Sta
|
|
54
55
|
*/
|
55
56
|
dialFilter(multiaddrs: Multiaddr[]): Multiaddr[];
|
56
57
|
dial(ma: Multiaddr, options: DialTransportOptions<WebRTCDialEvents>): Promise<Connection>;
|
57
|
-
_onProtocol({ connection, stream }: IncomingStreamData): Promise<void>;
|
58
|
+
_onProtocol({ connection, stream }: IncomingStreamData, signal: AbortSignal): Promise<void>;
|
58
59
|
private _closeOnShutdown;
|
59
60
|
}
|
60
61
|
export declare function splitAddr(ma: Multiaddr): {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,mBAAmB,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEtI,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,mBAAmB,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEtI,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACrT,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAIpD,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAE3D,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAEhC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAC1B,+BAA+B,GAC/B,4BAA4B,GAC5B,aAAa,CAAC,mBAAmB,CAAC,GAClC,aAAa,CAAC,+BAA+B,CAAC,GAC9C,aAAa,CAAC,8BAA8B,CAAC,GAC7C,aAAa,CAAC,uBAAuB,CAAC,GACtC,aAAa,CAAC,wBAAwB,CAAC,GACvC,aAAa,CAAC,4BAA4B,CAAC,GAC3C,aAAa,CAAC,0BAA0B,EAAE,MAAM,CAAC,GACjD,aAAa,CAAC,8BAA8B,CAAC,GAC7C,aAAa,CAAC,+BAA+B,CAAC,CAAA;AAEhD,qBAAa,eAAgB,YAAW,SAAS,CAAC,gBAAgB,CAAC,EAAE,SAAS;IAO1E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAGjC,UAAU,EAAE,yBAAyB,EACrC,IAAI,GAAE,mBAAwB;IAoBjD,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAO;IAEjC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAmB;IAEhD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAGvC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAkBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAMzD;;OAEG;IACH,YAAY,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAInD;;OAEG;IACH,UAAU,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAW3C,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC1F,WAAW,CAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8ClG,OAAO,CAAC,gBAAgB;CAezB;AAED,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4BjF"}
|
@@ -12,7 +12,6 @@ import { handleIncomingStream } from './signaling-stream-handler.js';
|
|
12
12
|
const WEBRTC_TRANSPORT = '/webrtc';
|
13
13
|
const CIRCUIT_RELAY_TRANSPORT = '/p2p-circuit';
|
14
14
|
export const SIGNALING_PROTO_ID = '/webrtc-signaling/0.0.1';
|
15
|
-
const INBOUND_CONNECTION_TIMEOUT = 30 * 1000;
|
16
15
|
export class WebRTCTransport {
|
17
16
|
components;
|
18
17
|
init;
|
@@ -53,7 +52,15 @@ export class WebRTCTransport {
|
|
53
52
|
}
|
54
53
|
async start() {
|
55
54
|
await this.components.registrar.handle(SIGNALING_PROTO_ID, (data) => {
|
56
|
-
|
55
|
+
// ensure we don't try to upgrade forever
|
56
|
+
const signal = this.components.upgrader.createInboundAbortSignal(this.shutdownController.signal);
|
57
|
+
this._onProtocol(data, signal)
|
58
|
+
.catch(err => {
|
59
|
+
this.log.error('failed to handle incoming connect from %p', data.connection.remotePeer, err);
|
60
|
+
})
|
61
|
+
.finally(() => {
|
62
|
+
signal.clear();
|
63
|
+
});
|
57
64
|
}, {
|
58
65
|
runOnLimitedConnection: true
|
59
66
|
});
|
@@ -111,14 +118,14 @@ export class WebRTCTransport {
|
|
111
118
|
skipProtection: true,
|
112
119
|
skipEncryption: true,
|
113
120
|
muxerFactory,
|
114
|
-
onProgress: options.onProgress
|
121
|
+
onProgress: options.onProgress,
|
122
|
+
signal: options.signal
|
115
123
|
});
|
116
124
|
// close the connection on shut down
|
117
125
|
this._closeOnShutdown(peerConnection, webRTCConn);
|
118
126
|
return connection;
|
119
127
|
}
|
120
|
-
async _onProtocol({ connection, stream }) {
|
121
|
-
const signal = AbortSignal.timeout(this.init.inboundConnectionTimeout ?? INBOUND_CONNECTION_TIMEOUT);
|
128
|
+
async _onProtocol({ connection, stream }, signal) {
|
122
129
|
const peerConnection = new RTCPeerConnection(await getRtcConfiguration(this.init.rtcConfiguration));
|
123
130
|
const muxerFactory = new DataChannelMuxerFactory(this.components, {
|
124
131
|
peerConnection,
|
@@ -145,7 +152,8 @@ export class WebRTCTransport {
|
|
145
152
|
await this.components.upgrader.upgradeInbound(webRTCConn, {
|
146
153
|
skipEncryption: true,
|
147
154
|
skipProtection: true,
|
148
|
-
muxerFactory
|
155
|
+
muxerFactory,
|
156
|
+
signal
|
149
157
|
});
|
150
158
|
// close the connection on shut down
|
151
159
|
this._closeOnShutdown(peerConnection, webRTCConn);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtI,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAkB,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAMpE,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAClC,MAAM,uBAAuB,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-private/transport.ts"],"names":[],"mappings":"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"}
|
@@ -6,6 +6,7 @@ export interface WebRTCDirectListenerComponents {
|
|
6
6
|
peerId: PeerId;
|
7
7
|
privateKey: PrivateKey;
|
8
8
|
logger: ComponentLogger;
|
9
|
+
upgrader: Upgrader;
|
9
10
|
metrics?: Metrics;
|
10
11
|
}
|
11
12
|
export interface WebRTCDirectListenerInit {
|
@@ -27,6 +28,7 @@ export declare class WebRTCDirectListener extends TypedEventEmitter<ListenerEven
|
|
27
28
|
private readonly init;
|
28
29
|
private readonly components;
|
29
30
|
private readonly metrics?;
|
31
|
+
private readonly shutdownController;
|
30
32
|
constructor(components: WebRTCDirectListenerComponents, init: WebRTCDirectListenerInit);
|
31
33
|
listen(ma: Multiaddr): Promise<void>;
|
32
34
|
private startUDPMuxServer;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAWzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAG3E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/I,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAIxD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAA;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,YAAY,CAAA;CAC7B;AAiBD,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAWzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAG3E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/I,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAIxD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAA;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,YAAY,CAAA;CAC7B;AAiBD,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAEvC,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,wBAAwB;IAqBjF,MAAM,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D3C,OAAO,CAAC,iBAAiB;YAgDX,kBAAkB;IAmDhC,QAAQ,IAAK,SAAS,EAAE;IAIxB,mBAAmB,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IA4B7C,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CA8B9B"}
|
@@ -6,7 +6,7 @@ import { IP4, WebRTCDirect } from '@multiformats/multiaddr-matcher';
|
|
6
6
|
import { Crypto } from '@peculiar/webcrypto';
|
7
7
|
import getPort from 'get-port';
|
8
8
|
import pWaitFor from 'p-wait-for';
|
9
|
-
import { CODEC_CERTHASH, CODEC_WEBRTC_DIRECT
|
9
|
+
import { CODEC_CERTHASH, CODEC_WEBRTC_DIRECT } from '../constants.js';
|
10
10
|
import { connect } from './utils/connect.js';
|
11
11
|
import { generateTransportCertificate } from './utils/generate-certificates.js';
|
12
12
|
import { createDialerRTCPeerConnection } from './utils/get-rtcpeerconnection.js';
|
@@ -24,6 +24,7 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
24
24
|
init;
|
25
25
|
components;
|
26
26
|
metrics;
|
27
|
+
shutdownController;
|
27
28
|
constructor(components, init) {
|
28
29
|
super();
|
29
30
|
this.init = init;
|
@@ -32,6 +33,7 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
32
33
|
this.connections = new Map();
|
33
34
|
this.log = components.logger.forComponent('libp2p:webrtc-direct:listener');
|
34
35
|
this.certificate = init.certificates?.[0];
|
36
|
+
this.shutdownController = new AbortController();
|
35
37
|
if (components.metrics != null) {
|
36
38
|
this.metrics = {
|
37
39
|
listenerEvents: components.metrics.registerCounterGroup('libp2p_webrtc-direct_listener_events_total', {
|
@@ -50,13 +52,13 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
50
52
|
.filter(([code]) => code === IP6_PROTOCOL.code)
|
51
53
|
.pop()?.[1];
|
52
54
|
if (host == null) {
|
53
|
-
throw new Error('IP4/6 host must be specified in webrtc-direct
|
55
|
+
throw new Error('IP4/6 host must be specified in webrtc-direct multiaddr');
|
54
56
|
}
|
55
57
|
const port = parseInt(parts
|
56
58
|
.filter(([code, value]) => code === UDP_PROTOCOL.code)
|
57
59
|
.pop()?.[1] ?? '');
|
58
60
|
if (isNaN(port)) {
|
59
|
-
throw new Error('UDP port must be specified in webrtc-direct
|
61
|
+
throw new Error('UDP port must be specified in webrtc-direct multiaddr');
|
60
62
|
}
|
61
63
|
// have to do this before any async work happens so starting two listeners
|
62
64
|
// for the same port concurrently (e.g. ipv4/ipv6 both port 0) results in a
|
@@ -121,15 +123,19 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
121
123
|
port = await getPort();
|
122
124
|
}
|
123
125
|
return stunListener(host, port, this.log, (ufrag, remoteHost, remotePort) => {
|
124
|
-
this.
|
126
|
+
const signal = this.components.upgrader.createInboundAbortSignal(this.shutdownController.signal);
|
127
|
+
this.incomingConnection(ufrag, remoteHost, remotePort, signal)
|
125
128
|
.catch(err => {
|
126
129
|
this.log.error('error processing incoming STUN request', err);
|
130
|
+
})
|
131
|
+
.finally(() => {
|
132
|
+
signal.clear();
|
127
133
|
});
|
128
134
|
});
|
129
135
|
})
|
130
136
|
};
|
131
137
|
}
|
132
|
-
async incomingConnection(ufrag, remoteHost, remotePort) {
|
138
|
+
async incomingConnection(ufrag, remoteHost, remotePort, signal) {
|
133
139
|
const key = `${remoteHost}:${remotePort}:${ufrag}`;
|
134
140
|
let peerConnection = this.connections.get(key);
|
135
141
|
if (peerConnection != null) {
|
@@ -137,6 +143,8 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
137
143
|
return;
|
138
144
|
}
|
139
145
|
this.log('create peer connection for %s', key);
|
146
|
+
// do not create RTCPeerConnection objects if the signal has aborted already
|
147
|
+
signal.throwIfAborted();
|
140
148
|
// https://github.com/libp2p/specs/blob/master/webrtc/webrtc-direct.md#browser-to-public-server
|
141
149
|
peerConnection = await createDialerRTCPeerConnection('server', ufrag, this.init.rtcConfiguration, this.certificate);
|
142
150
|
this.connections.set(key, peerConnection);
|
@@ -158,7 +166,7 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
158
166
|
logger: this.components.logger,
|
159
167
|
metrics: this.components.metrics,
|
160
168
|
events: this.metrics?.listenerEvents,
|
161
|
-
signal
|
169
|
+
signal,
|
162
170
|
remoteAddr: multiaddr(`/ip${isIPv4(remoteHost) ? 4 : 6}/${remoteHost}/udp/${remotePort}`),
|
163
171
|
dataChannel: this.init.dataChannel,
|
164
172
|
upgrader: this.init.upgrader,
|
@@ -196,9 +204,6 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
196
204
|
}
|
197
205
|
}
|
198
206
|
async close() {
|
199
|
-
for (const connection of this.connections.values()) {
|
200
|
-
connection.close();
|
201
|
-
}
|
202
207
|
// stop our UDP mux listeners
|
203
208
|
await Promise.all(UDP_MUX_LISTENERS
|
204
209
|
.filter(listener => listener.owner === this)
|
@@ -208,6 +213,12 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
208
213
|
}));
|
209
214
|
// remove our stopped UDP mux listeners
|
210
215
|
UDP_MUX_LISTENERS = UDP_MUX_LISTENERS.filter(listener => listener.owner !== this);
|
216
|
+
// close existing connections
|
217
|
+
for (const connection of this.connections.values()) {
|
218
|
+
connection.close();
|
219
|
+
}
|
220
|
+
// stop any in-progress incoming dials
|
221
|
+
this.shutdownController.abort();
|
211
222
|
// RTCPeerConnections will be removed from the connections map when their
|
212
223
|
// connection state changes to 'closed'/'disconnected'/'failed
|
213
224
|
await pWaitFor(() => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAOvD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;AAuB3B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;AACrC,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;AACrC,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;AAWrC,IAAI,iBAAiB,GAAmB,EAAE,CAAA;AAE1C,MAAM,OAAO,oBAAqB,SAAQ,iBAAiC;IACxD,UAAU,CAAa;IAChC,WAAW,CAAuB;IACzB,WAAW,CAAsC;IACjD,GAAG,CAAQ;IACX,IAAI,CAA0B;IAC9B,UAAU,CAAgC;IAC1C,OAAO,CAAwB;IAC/B,kBAAkB,CAAiB;IAEpD,YAAa,UAA0C,EAAE,IAA8B;QACrF,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAA;QAC1E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;QAE/C,IAAI,UAAU,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG;gBACb,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,4CAA4C,EAAE;oBACpG,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,oDAAoD;iBAC3D,CAAC;aACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,EAAa;QACzB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,KAAK;aACf,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;aAC9C,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK;aACnB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;aAC9C,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEb,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK;aACxB,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;aACrD,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAEpB,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAC1E,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,iCAAiC;QACjC,IAAI,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAEjE,yEAAyE;QACzE,4EAA4E;QAC5E,iBAAiB;QACjB,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,cAAc,EAAE,IAAI,KAAK,CAAC,CAAA;QAC9D,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAChI,IAAI,gBAAgB,GAAG,KAAK,CAAA;QAE5B,IAAI,cAAc,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACxD,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACnD,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtC,gBAAgB,GAAG,IAAI,CAAA;QACzB,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,sEAAsE;YACtE,sBAAsB;YACtB,MAAM,IAAI,kBAAkB,CAAC,iDAAiD,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9G,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAA;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAEhC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACzE,CAAC;QAED,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAChE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,2BAA2B,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC/F,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACrC,CAAC;IAEO,iBAAiB,CAAE,IAAY,EAAE,IAAY;QACnD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAC9B,KAAK,EAAE,IAAI;YACX,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE;iBACtB,IAAI,CAAC,KAAK,IAAyB,EAAE;gBACpC,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;oBAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;wBAC9C,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,OAAO;qBACpB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;oBAE5B,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC,OAAO,EAAE;wBAC9D,IAAI,EAAE,GAAG,GAAG,EAAE;qBACf,CAAC,CAAA;oBAEF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;wBAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;oBAChC,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,mEAAmE;oBACnE,YAAY;oBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;oBACzC,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;gBACxB,CAAC;gBAED,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;oBAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;oBAEhG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC;yBAC3D,KAAK,CAAC,GAAG,CAAC,EAAE;wBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAA;oBAC/D,CAAC,CAAC;yBACD,OAAO,CAAC,GAAG,EAAE;wBACZ,MAAM,CAAC,KAAK,EAAE,CAAA;oBAChB,CAAC,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC;SACL,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAE,KAAa,EAAE,UAAkB,EAAE,UAAkB,EAAE,MAAmB;QAC1G,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,UAAU,IAAI,KAAK,EAAE,CAAA;QAClD,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAE9C,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;YACzD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;QAE9C,4EAA4E;QAC5E,MAAM,CAAC,cAAc,EAAE,CAAA;QAEvB,+FAA+F;QAC/F,cAAc,GAAG,MAAM,6BAA6B,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QAEzC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC5D,QAAQ,cAAc,CAAC,eAAe,EAAE,CAAC;gBACvC,KAAK,QAAQ,CAAC;gBACd,KAAK,cAAc,CAAC;gBACpB,KAAK,QAAQ;oBACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC5B,MAAK;gBACP;oBACE,MAAK;YACT,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE;gBACnC,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;gBAChC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc;gBACpC,MAAM;gBACN,UAAU,EAAE,SAAS,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,QAAQ,UAAU,EAAE,CAAC;gBACzF,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAClC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC5B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;aACvC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC,KAAK,EAAE,CAAA;YACtB,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,mBAAmB,CAAE,UAAuB;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjC,SAAQ;YACV,CAAC;YAED,oCAAoC;YACpC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;YAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;oBACzC,SAAQ;gBACV,CAAC;gBAED,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,CAAA;gBAE3B,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;oBACjF,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;oBAE7E,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBAC7B,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,6BAA6B;QAC7B,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB;aACd,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC;aAC3C,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;YACpB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAA;YACpC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC,CAAC,CACL,CAAA;QAED,uCAAuC;QACvC,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;QAEjF,6BAA6B;QAC7B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;QAE/B,yEAAyE;QACzE,8DAA8D;QAC9D,MAAM,QAAQ,CAAC,GAAG,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;CACF;AAED,SAAS,mBAAmB,CAAE,IAAY,EAAE,IAAY,EAAE,OAAc;IACtE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,4BAA4B;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;aACvC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;aACtC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;aAChC,MAAM,CAAC,OAAO,CAAC,EAAE;YAChB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAC;aACD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,OAAO,IAAI,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO;QACL,MAAM,OAAO,IAAI,IAAI,QAAQ,IAAI,EAAE;KACpC,CAAA;AACH,CAAC"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
2
2
|
import type { DataChannelOptions, TransportCertificate } from '../index.js';
|
3
3
|
import type { WebRTCDialEvents } from '../private-to-private/transport.js';
|
4
|
-
import type { CreateListenerOptions, Transport, Listener, ComponentLogger, Connection, CounterGroup, Metrics, PeerId, DialTransportOptions, PrivateKey } from '@libp2p/interface';
|
4
|
+
import type { CreateListenerOptions, Transport, Listener, ComponentLogger, Connection, CounterGroup, Metrics, PeerId, DialTransportOptions, PrivateKey, Upgrader } from '@libp2p/interface';
|
5
5
|
import type { TransportManager } from '@libp2p/interface-internal';
|
6
6
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
7
7
|
/**
|
@@ -13,6 +13,7 @@ export interface WebRTCDirectTransportComponents {
|
|
13
13
|
metrics?: Metrics;
|
14
14
|
logger: ComponentLogger;
|
15
15
|
transportManager: TransportManager;
|
16
|
+
upgrader: Upgrader;
|
16
17
|
}
|
17
18
|
export interface WebRTCMetrics {
|
18
19
|
dialerEvents: CounterGroup;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAQxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAU,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACnM,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAErC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,qBAAa,qBAAsB,YAAW,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;gBAEnC,UAAU,EAAE,+BAA+B,EAAE,IAAI,GAAE,yBAA8B;IAe9F,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAO;IAEjC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,2BAA0B;IAEvD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED;;OAEG;IACG,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAMhG;;OAEG;IACH,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAOzD;;OAEG;IACH,YAAY,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAInD;;OAEG;IACH,UAAU,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAIjD;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAmCrG"}
|
@@ -2,7 +2,6 @@ import { serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
|
2
2
|
import { peerIdFromString } from '@libp2p/peer-id';
|
3
3
|
import { WebRTCDirect } from '@multiformats/multiaddr-matcher';
|
4
4
|
import { raceSignal } from 'race-signal';
|
5
|
-
import { HANDSHAKE_TIMEOUT_MS } from '../constants.js';
|
6
5
|
import { genUfrag } from '../util.js';
|
7
6
|
import { WebRTCDirectListener } from './listener.js';
|
8
7
|
import { connect } from './utils/connect.js';
|
@@ -34,7 +33,6 @@ export class WebRTCDirectTransport {
|
|
34
33
|
* Dial a given multiaddr
|
35
34
|
*/
|
36
35
|
async dial(ma, options) {
|
37
|
-
options?.signal?.throwIfAborted();
|
38
36
|
const rawConn = await this._connect(ma, options);
|
39
37
|
this.log('dialing address: %a', ma);
|
40
38
|
return rawConn;
|
@@ -64,6 +62,8 @@ export class WebRTCDirectTransport {
|
|
64
62
|
* Connect to a peer using a multiaddr
|
65
63
|
*/
|
66
64
|
async _connect(ma, options) {
|
65
|
+
// do not create RTCPeerConnection if the signal has already been aborted
|
66
|
+
options.signal.throwIfAborted();
|
67
67
|
let theirPeerId;
|
68
68
|
const remotePeerString = ma.getPeerId();
|
69
69
|
if (remotePeerString != null) {
|
@@ -79,7 +79,7 @@ export class WebRTCDirectTransport {
|
|
79
79
|
logger: this.components.logger,
|
80
80
|
metrics: this.components.metrics,
|
81
81
|
events: this.metrics?.dialerEvents,
|
82
|
-
signal: options.signal
|
82
|
+
signal: options.signal,
|
83
83
|
remoteAddr: ma,
|
84
84
|
dataChannel: this.init.dataChannel,
|
85
85
|
upgrader: options.upgrader,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"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"}
|
@@ -12,7 +12,7 @@ export function generateNoisePrologue(localFingerprint, remoteAddr, role) {
|
|
12
12
|
const localFpString = localFingerprint.trim().toLowerCase().replaceAll(':', '');
|
13
13
|
const localFpArray = uint8arrayFromString(localFpString, 'hex');
|
14
14
|
const local = Digest.create(sha256.code, localFpArray);
|
15
|
-
const remote = sdp.
|
15
|
+
const remote = sdp.multibaseDecoder.decode(sdp.certhash(remoteAddr));
|
16
16
|
const byteLength = PREFIX.byteLength + local.bytes.byteLength + remote.byteLength;
|
17
17
|
if (role === 'server') {
|
18
18
|
return concat([PREFIX, remote, local.bytes], byteLength);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generate-noise-prologue.js","sourceRoot":"","sources":["../../../../src/private-to-public/utils/generate-noise-prologue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;AAE3D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAE,gBAAwB,EAAE,UAAqB,EAAE,IAAyB;IAC/G,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC/E,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IACtD,MAAM,MAAM,GAAe,GAAG,CAAC,
|
1
|
+
{"version":3,"file":"generate-noise-prologue.js","sourceRoot":"","sources":["../../../../src/private-to-public/utils/generate-noise-prologue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;AAE3D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAE,gBAAwB,EAAE,UAAqB,EAAE,IAAyB;IAC/G,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC/E,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IACtD,MAAM,MAAM,GAAe,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IAChF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IAEjF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAA;AAC1D,CAAC"}
|
@@ -3,7 +3,7 @@ import type { MultihashDigest } from 'multiformats/hashes/interface';
|
|
3
3
|
/**
|
4
4
|
* Get base2 | identity decoders
|
5
5
|
*/
|
6
|
-
export declare const
|
6
|
+
export declare const multibaseDecoder: any;
|
7
7
|
export declare function getFingerprintFromSdp(sdp: string | undefined): string | undefined;
|
8
8
|
export declare function certhash(ma: Multiaddr): string;
|
9
9
|
/**
|