@libp2p/tcp 1.0.3 → 1.0.6
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 +2 -2
- package/dist/src/index.d.ts +8 -21
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +13 -13
- package/dist/src/index.js.map +1 -1
- package/dist/src/listener.d.ts.map +1 -1
- package/dist/src/listener.js +8 -8
- package/dist/src/listener.js.map +1 -1
- package/dist/src/socket-to-conn.js +2 -2
- package/dist/src/socket-to-conn.js.map +1 -1
- package/package.json +10 -12
- package/src/index.ts +16 -35
- package/src/listener.ts +8 -10
- package/src/socket-to-conn.ts +2 -2
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
import { TCP } from '@libp2p/tcp'
|
|
42
42
|
import { Multiaddr } from '@multiformats/multiaddr'
|
|
43
43
|
import pipe from 'it-pipe'
|
|
44
|
-
import
|
|
44
|
+
import all from 'it-all'
|
|
45
45
|
|
|
46
46
|
// A simple upgrader that just returns the MultiaddrConnection
|
|
47
47
|
const upgrader = {
|
|
@@ -66,7 +66,7 @@ console.log('listening')
|
|
|
66
66
|
const socket = await tcp.dial(addr)
|
|
67
67
|
const values = await pipe(
|
|
68
68
|
socket,
|
|
69
|
-
|
|
69
|
+
all
|
|
70
70
|
)
|
|
71
71
|
console.log(`Value: ${values.toString()}`)
|
|
72
72
|
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,35 +1,22 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import net from 'net';
|
|
3
|
-
import
|
|
3
|
+
import { CreateListenerOptions, DialOptions, symbol, Transport } from '@libp2p/interfaces/transport';
|
|
4
4
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
interface TCPOptions {
|
|
13
|
-
upgrader: Upgrader;
|
|
14
|
-
}
|
|
15
|
-
interface DialOptions {
|
|
16
|
-
signal?: AbortSignal;
|
|
17
|
-
}
|
|
18
|
-
export declare class TCP implements Transport<DialOptions, ListenerOptions> {
|
|
19
|
-
private readonly _upgrader;
|
|
20
|
-
constructor(options: TCPOptions);
|
|
21
|
-
dial(ma: Multiaddr, options?: DialOptions): Promise<import("@libp2p/interfaces/dist/src/connection").Connection>;
|
|
22
|
-
_connect(ma: Multiaddr, options?: DialOptions): Promise<net.Socket>;
|
|
5
|
+
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
|
+
export declare class TCP implements Transport {
|
|
7
|
+
get [symbol](): true;
|
|
8
|
+
get [Symbol.toStringTag](): string;
|
|
9
|
+
dial(ma: Multiaddr, options: DialOptions): Promise<import("@libp2p/interfaces/dist/src/connection").Connection>;
|
|
10
|
+
_connect(ma: Multiaddr, options?: AbortOptions): Promise<net.Socket>;
|
|
23
11
|
/**
|
|
24
12
|
* Creates a TCP listener. The provided `handler` function will be called
|
|
25
13
|
* anytime a new incoming Connection has been successfully upgraded via
|
|
26
14
|
* `upgrader.upgradeInbound`.
|
|
27
15
|
*/
|
|
28
|
-
createListener(options
|
|
16
|
+
createListener(options: CreateListenerOptions): import("@libp2p/interfaces/transport").Listener;
|
|
29
17
|
/**
|
|
30
18
|
* Takes a list of `Multiaddr`s and returns only valid TCP addresses
|
|
31
19
|
*/
|
|
32
20
|
filter(multiaddrs: Multiaddr[]): Multiaddr[];
|
|
33
21
|
}
|
|
34
|
-
export {};
|
|
35
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,qBAAa,GAAI,YAAW,SAAS;IACnC,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAEK,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW;IAezC,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB;IA+DzD;;;;OAIG;IACH,cAAc,CAAE,OAAO,EAAE,qBAAqB;IAI9C;;OAEG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE;CAWhC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import net from 'net';
|
|
2
2
|
import * as mafmt from '@multiformats/mafmt';
|
|
3
3
|
import errCode from 'err-code';
|
|
4
|
-
import
|
|
4
|
+
import { logger } from '@libp2p/logger';
|
|
5
5
|
import { toMultiaddrConnection } from './socket-to-conn.js';
|
|
6
6
|
import { createListener } from './listener.js';
|
|
7
7
|
import { multiaddrToNetConfig } from './utils.js';
|
|
8
|
-
import { AbortError } from '
|
|
8
|
+
import { AbortError } from '@libp2p/interfaces/errors';
|
|
9
9
|
import { CODE_CIRCUIT, CODE_P2P } from './constants.js';
|
|
10
|
-
|
|
10
|
+
import { symbol } from '@libp2p/interfaces/transport';
|
|
11
|
+
const log = logger('libp2p:tcp');
|
|
11
12
|
export class TCP {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this._upgrader = upgrader;
|
|
13
|
+
get [symbol]() {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
get [Symbol.toStringTag]() {
|
|
17
|
+
return this.constructor.name;
|
|
18
18
|
}
|
|
19
|
-
async dial(ma, options
|
|
19
|
+
async dial(ma, options) {
|
|
20
20
|
const socket = await this._connect(ma, options);
|
|
21
21
|
// Avoid uncaught errors caused by unstable connections
|
|
22
22
|
socket.on('error', err => {
|
|
@@ -24,7 +24,7 @@ export class TCP {
|
|
|
24
24
|
});
|
|
25
25
|
const maConn = toMultiaddrConnection(socket, { remoteAddr: ma, signal: options.signal });
|
|
26
26
|
log('new outbound connection %s', maConn.remoteAddr);
|
|
27
|
-
const conn = await
|
|
27
|
+
const conn = await options.upgrader.upgradeOutbound(maConn);
|
|
28
28
|
log('outbound connection %s upgraded', maConn.remoteAddr);
|
|
29
29
|
return conn;
|
|
30
30
|
}
|
|
@@ -81,8 +81,8 @@ export class TCP {
|
|
|
81
81
|
* anytime a new incoming Connection has been successfully upgraded via
|
|
82
82
|
* `upgrader.upgradeInbound`.
|
|
83
83
|
*/
|
|
84
|
-
createListener(options
|
|
85
|
-
return createListener(
|
|
84
|
+
createListener(options) {
|
|
85
|
+
return createListener(options);
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
88
88
|
* Takes a list of `Multiaddr`s and returns only valid TCP addresses
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAC5C,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAuB,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAuB,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAqB3F,UAAU,OAAO;IACf,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,OAAO,EAAE,OAAO,YAsH/C"}
|
package/dist/src/listener.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import net from 'net';
|
|
2
|
-
import {
|
|
3
|
-
import debug from 'debug';
|
|
2
|
+
import { logger } from '@libp2p/logger';
|
|
4
3
|
import { toMultiaddrConnection } from './socket-to-conn.js';
|
|
5
4
|
import { CODE_P2P } from './constants.js';
|
|
6
5
|
import { getMultiaddrs, multiaddrToNetConfig } from './utils.js';
|
|
7
|
-
|
|
6
|
+
import { EventEmitter, CustomEvent } from '@libp2p/interfaces';
|
|
7
|
+
const log = logger('libp2p:tcp:listener');
|
|
8
8
|
/**
|
|
9
9
|
* Attempts to close the given maConn. If a failure occurs, it will be logged
|
|
10
10
|
*/
|
|
@@ -45,7 +45,7 @@ export function createListener(context) {
|
|
|
45
45
|
if (handler != null) {
|
|
46
46
|
handler(conn);
|
|
47
47
|
}
|
|
48
|
-
listener.
|
|
48
|
+
listener.dispatchEvent(new CustomEvent('connection', { detail: conn }));
|
|
49
49
|
})
|
|
50
50
|
.catch(async (err) => {
|
|
51
51
|
log.error('inbound connection failed', err);
|
|
@@ -70,7 +70,7 @@ export function createListener(context) {
|
|
|
70
70
|
let addrs = [];
|
|
71
71
|
const address = server.address();
|
|
72
72
|
if (address == null) {
|
|
73
|
-
|
|
73
|
+
return [];
|
|
74
74
|
}
|
|
75
75
|
if (typeof address === 'string') {
|
|
76
76
|
throw new Error('Incorrect server address type');
|
|
@@ -115,9 +115,9 @@ export function createListener(context) {
|
|
|
115
115
|
}
|
|
116
116
|
});
|
|
117
117
|
server
|
|
118
|
-
.on('listening', () => listener.
|
|
119
|
-
.on('error', err => listener.
|
|
120
|
-
.on('close', () => listener.
|
|
118
|
+
.on('listening', () => listener.dispatchEvent(new CustomEvent('listening')))
|
|
119
|
+
.on('error', err => listener.dispatchEvent(new CustomEvent('error', { detail: err })))
|
|
120
|
+
.on('close', () => listener.dispatchEvent(new CustomEvent('close')));
|
|
121
121
|
return listener;
|
|
122
122
|
}
|
|
123
123
|
function trackConn(server, maConn, socket) {
|
package/dist/src/listener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { abortableSource } from 'abortable-iterator';
|
|
2
|
-
import
|
|
2
|
+
import { logger } from '@libp2p/logger';
|
|
3
3
|
// @ts-expect-error no types
|
|
4
4
|
import toIterable from 'stream-to-it';
|
|
5
5
|
import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr';
|
|
6
6
|
import { CLOSE_TIMEOUT } from './constants.js';
|
|
7
|
-
const log =
|
|
7
|
+
const log = logger('libp2p:tcp:socket');
|
|
8
8
|
/**
|
|
9
9
|
* Convert a socket into a MultiaddrConnection
|
|
10
10
|
* https://github.com/libp2p/interface-transport#multiaddrconnection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/tcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Node.js implementation of the TCP module that libp2p uses, which implements the interface-connection and interface-transport interfaces",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-tcp#readme",
|
|
@@ -129,29 +129,27 @@
|
|
|
129
129
|
"dep-check": "aegir dep-check dist/src/**/*.js dist/test/**/*.js",
|
|
130
130
|
"build": "tsc",
|
|
131
131
|
"pretest": "npm run build",
|
|
132
|
-
"test": "aegir test -f ./dist/test",
|
|
132
|
+
"test": "aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js",
|
|
133
133
|
"test:node": "npm run test -- -t node --cov",
|
|
134
134
|
"test:electron-main": "npm run test -- -t electron-main",
|
|
135
135
|
"release": "semantic-release"
|
|
136
136
|
},
|
|
137
137
|
"dependencies": {
|
|
138
|
-
"@libp2p/
|
|
139
|
-
"@
|
|
140
|
-
"@multiformats/
|
|
138
|
+
"@libp2p/logger": "^1.1.2",
|
|
139
|
+
"@libp2p/utils": "^1.0.9",
|
|
140
|
+
"@multiformats/mafmt": "^11.0.2",
|
|
141
|
+
"@multiformats/multiaddr": "^10.1.5",
|
|
141
142
|
"abortable-iterator": "^4.0.2",
|
|
142
|
-
"debug": "^4.3.1",
|
|
143
143
|
"err-code": "^3.0.1",
|
|
144
144
|
"stream-to-it": "^0.2.2"
|
|
145
145
|
},
|
|
146
146
|
"devDependencies": {
|
|
147
|
-
"@libp2p/interface-compliance-tests": "^1.
|
|
148
|
-
"@libp2p/interfaces": "^1.
|
|
149
|
-
"@types/debug": "^4.1.5",
|
|
150
|
-
"@types/mocha": "^9.0.0",
|
|
147
|
+
"@libp2p/interface-compliance-tests": "^1.1.17",
|
|
148
|
+
"@libp2p/interfaces": "^1.3.14",
|
|
151
149
|
"aegir": "^36.1.3",
|
|
150
|
+
"it-all": "^1.0.6",
|
|
152
151
|
"it-pipe": "^2.0.3",
|
|
153
|
-
"sinon": "^13.0.
|
|
154
|
-
"streaming-iterables": "^6.0.0",
|
|
152
|
+
"sinon": "^13.0.1",
|
|
155
153
|
"uint8arrays": "^3.0.0"
|
|
156
154
|
}
|
|
157
155
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,48 +1,29 @@
|
|
|
1
1
|
import net from 'net'
|
|
2
2
|
import * as mafmt from '@multiformats/mafmt'
|
|
3
3
|
import errCode from 'err-code'
|
|
4
|
-
import
|
|
4
|
+
import { logger } from '@libp2p/logger'
|
|
5
5
|
import { toMultiaddrConnection } from './socket-to-conn.js'
|
|
6
6
|
import { createListener } from './listener.js'
|
|
7
7
|
import { multiaddrToNetConfig } from './utils.js'
|
|
8
|
-
import { AbortError } from '
|
|
8
|
+
import { AbortError } from '@libp2p/interfaces/errors'
|
|
9
9
|
import { CODE_CIRCUIT, CODE_P2P } from './constants.js'
|
|
10
|
-
import
|
|
10
|
+
import { CreateListenerOptions, DialOptions, symbol, Transport } from '@libp2p/interfaces/transport'
|
|
11
11
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
12
12
|
import type { Socket } from 'net'
|
|
13
|
+
import type { AbortOptions } from '@libp2p/interfaces'
|
|
13
14
|
|
|
14
|
-
const log =
|
|
15
|
+
const log = logger('libp2p:tcp')
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* @typedef {import('libp2p-interfaces/src/transport/types').Listener} Listener
|
|
21
|
-
* @typedef {import('net').Socket} Socket
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
interface TCPOptions {
|
|
25
|
-
upgrader: Upgrader
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
interface DialOptions {
|
|
29
|
-
signal?: AbortSignal
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export class TCP implements Transport<DialOptions, ListenerOptions> {
|
|
33
|
-
private readonly _upgrader: Upgrader
|
|
34
|
-
|
|
35
|
-
constructor (options: TCPOptions) {
|
|
36
|
-
const { upgrader } = options
|
|
37
|
-
|
|
38
|
-
if (upgrader == null) {
|
|
39
|
-
throw new Error('An upgrader must be provided. See https://github.com/libp2p/interface-transport#upgrader.')
|
|
40
|
-
}
|
|
17
|
+
export class TCP implements Transport {
|
|
18
|
+
get [symbol] (): true {
|
|
19
|
+
return true
|
|
20
|
+
}
|
|
41
21
|
|
|
42
|
-
|
|
22
|
+
get [Symbol.toStringTag] () {
|
|
23
|
+
return this.constructor.name
|
|
43
24
|
}
|
|
44
25
|
|
|
45
|
-
async dial (ma: Multiaddr, options: DialOptions
|
|
26
|
+
async dial (ma: Multiaddr, options: DialOptions) {
|
|
46
27
|
const socket = await this._connect(ma, options)
|
|
47
28
|
|
|
48
29
|
// Avoid uncaught errors caused by unstable connections
|
|
@@ -52,12 +33,12 @@ export class TCP implements Transport<DialOptions, ListenerOptions> {
|
|
|
52
33
|
|
|
53
34
|
const maConn = toMultiaddrConnection(socket, { remoteAddr: ma, signal: options.signal })
|
|
54
35
|
log('new outbound connection %s', maConn.remoteAddr)
|
|
55
|
-
const conn = await
|
|
36
|
+
const conn = await options.upgrader.upgradeOutbound(maConn)
|
|
56
37
|
log('outbound connection %s upgraded', maConn.remoteAddr)
|
|
57
38
|
return conn
|
|
58
39
|
}
|
|
59
40
|
|
|
60
|
-
async _connect (ma: Multiaddr, options:
|
|
41
|
+
async _connect (ma: Multiaddr, options: AbortOptions = {}) {
|
|
61
42
|
if (options.signal?.aborted === true) {
|
|
62
43
|
throw new AbortError()
|
|
63
44
|
}
|
|
@@ -125,8 +106,8 @@ export class TCP implements Transport<DialOptions, ListenerOptions> {
|
|
|
125
106
|
* anytime a new incoming Connection has been successfully upgraded via
|
|
126
107
|
* `upgrader.upgradeInbound`.
|
|
127
108
|
*/
|
|
128
|
-
createListener (options:
|
|
129
|
-
return createListener(
|
|
109
|
+
createListener (options: CreateListenerOptions) {
|
|
110
|
+
return createListener(options)
|
|
130
111
|
}
|
|
131
112
|
|
|
132
113
|
/**
|
package/src/listener.ts
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import net from 'net'
|
|
2
|
-
import {
|
|
3
|
-
import debug from 'debug'
|
|
2
|
+
import { logger } from '@libp2p/logger'
|
|
4
3
|
import { toMultiaddrConnection } from './socket-to-conn.js'
|
|
5
4
|
import { CODE_P2P } from './constants.js'
|
|
6
5
|
import {
|
|
7
6
|
getMultiaddrs,
|
|
8
7
|
multiaddrToNetConfig
|
|
9
8
|
} from './utils.js'
|
|
9
|
+
import { EventEmitter, CustomEvent } from '@libp2p/interfaces'
|
|
10
10
|
import type { Connection } from '@libp2p/interfaces/connection'
|
|
11
11
|
import type { MultiaddrConnection, Upgrader, Listener } from '@libp2p/interfaces/transport'
|
|
12
12
|
import type { Server } from 'net'
|
|
13
13
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
14
14
|
|
|
15
|
-
const log =
|
|
16
|
-
debug('libp2p:tcp:listener'),
|
|
17
|
-
{ error: debug('libp2p:tcp:listener:error') })
|
|
15
|
+
const log = logger('libp2p:tcp:listener')
|
|
18
16
|
|
|
19
17
|
interface ServerWithMultiaddrConnections extends Server {
|
|
20
18
|
__connections: MultiaddrConnection[]
|
|
@@ -72,7 +70,7 @@ export function createListener (context: Context) {
|
|
|
72
70
|
handler(conn)
|
|
73
71
|
}
|
|
74
72
|
|
|
75
|
-
listener.
|
|
73
|
+
listener.dispatchEvent(new CustomEvent<Connection>('connection', { detail: conn }))
|
|
76
74
|
})
|
|
77
75
|
.catch(async err => {
|
|
78
76
|
log.error('inbound connection failed', err)
|
|
@@ -100,7 +98,7 @@ export function createListener (context: Context) {
|
|
|
100
98
|
const address = server.address()
|
|
101
99
|
|
|
102
100
|
if (address == null) {
|
|
103
|
-
|
|
101
|
+
return []
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
if (typeof address === 'string') {
|
|
@@ -152,9 +150,9 @@ export function createListener (context: Context) {
|
|
|
152
150
|
})
|
|
153
151
|
|
|
154
152
|
server
|
|
155
|
-
.on('listening', () => listener.
|
|
156
|
-
.on('error', err => listener.
|
|
157
|
-
.on('close', () => listener.
|
|
153
|
+
.on('listening', () => listener.dispatchEvent(new CustomEvent('listening')))
|
|
154
|
+
.on('error', err => listener.dispatchEvent(new CustomEvent<Error>('error', { detail: err })))
|
|
155
|
+
.on('close', () => listener.dispatchEvent(new CustomEvent('close')))
|
|
158
156
|
|
|
159
157
|
return listener
|
|
160
158
|
}
|
package/src/socket-to-conn.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { abortableSource } from 'abortable-iterator'
|
|
2
|
-
import
|
|
2
|
+
import { logger } from '@libp2p/logger'
|
|
3
3
|
// @ts-expect-error no types
|
|
4
4
|
import toIterable from 'stream-to-it'
|
|
5
5
|
import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr'
|
|
@@ -8,7 +8,7 @@ import type { Socket } from 'net'
|
|
|
8
8
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
9
9
|
import type { MultiaddrConnection } from '@libp2p/interfaces/transport'
|
|
10
10
|
|
|
11
|
-
const log =
|
|
11
|
+
const log = logger('libp2p:tcp:socket')
|
|
12
12
|
|
|
13
13
|
interface ToConnectionOptions {
|
|
14
14
|
listeningAddr?: Multiaddr
|