@libp2p/tcp 1.0.3 → 1.0.4

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.
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import net from 'net';
3
- import type { Transport, Upgrader, ListenerOptions } from '@libp2p/interfaces/transport';
3
+ import type { Transport, Upgrader, ListenerOptions, Listener } from '@libp2p/interfaces/transport';
4
4
  import type { Multiaddr } from '@multiformats/multiaddr';
5
5
  /**
6
6
  * @typedef {import('multiaddr').Multiaddr} Multiaddr
@@ -25,7 +25,7 @@ export declare class TCP implements Transport<DialOptions, ListenerOptions> {
25
25
  * anytime a new incoming Connection has been successfully upgraded via
26
26
  * `upgrader.upgradeInbound`.
27
27
  */
28
- createListener(options?: ListenerOptions): import("@libp2p/interfaces/transport").Listener;
28
+ createListener(options?: ListenerOptions): Listener;
29
29
  /**
30
30
  * Takes a list of `Multiaddr`s and returns only valid TCP addresses
31
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD;;;;;;GAMG;AAEH,UAAU,UAAU;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,qBAAa,GAAI,YAAW,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAEvB,OAAO,EAAE,UAAU;IAU1B,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,WAAgB;IAe9C,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,WAAgB;IA+DxD;;;;OAIG;IACH,cAAc,CAAE,OAAO,GAAE,eAAoB;IAI7C;;OAEG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE;CAWhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD;;;;;;GAMG;AAEH,UAAU,UAAU;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,qBAAa,GAAI,YAAW,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAEvB,OAAO,EAAE,UAAU;IAU1B,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,WAAgB;IAe9C,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,WAAgB;IA+DxD;;;;OAIG;IACH,cAAc,CAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ;IAIxD;;OAEG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE;CAWhC"}
package/dist/src/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import net from 'net';
2
2
  import * as mafmt from '@multiformats/mafmt';
3
3
  import errCode from 'err-code';
4
- import debug from 'debug';
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
8
  import { AbortError } from 'abortable-iterator';
9
9
  import { CODE_CIRCUIT, CODE_P2P } from './constants.js';
10
- const log = debug('libp2p:tcp');
10
+ const log = logger('libp2p:tcp');
11
11
  export class TCP {
12
12
  constructor(options) {
13
13
  const { upgrader } = options;
@@ -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,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKvD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;AAkB/B,MAAM,OAAO,GAAG;IAGd,YAAa,OAAmB;QAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAE5B,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAA;SAC7G;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,EAAa,EAAE,UAAuB,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAE/C,uDAAuD;QACvD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACvB,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACxF,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACzD,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,EAAa,EAAE,UAAuB,EAAE;QACtD,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE;YACpC,MAAM,IAAI,UAAU,EAAE,CAAA;SACvB;QAED,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;YAEtC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;YACxB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAEpC,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC7B,GAAG,CAAC,OAAO,GAAG,oBAAoB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAA;gBAE5E,IAAI,CAAC,GAAG,CAAC,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBAEvD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,qBAAqB,CAAC,CAAA;gBACzG,mDAAmD;gBACnD,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC9B,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;gBAClC,IAAI,EAAE,CAAA;YACR,CAAC,CAAA;YAED,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;gBACnC,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA;YACxB,CAAC,CAAA;YAED,MAAM,IAAI,GAAG,CAAC,GAAS,EAAE,EAAE;gBACzB,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC1C,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAC9C,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAE9C,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;oBAC1B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;iBACrD;gBAED,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBACnB;gBAED,OAAO,CAAC,SAAS,CAAC,CAAA;YACpB,CAAC,CAAA;YAED,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9B,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAElC,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC1B,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;aAClD;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAE,UAA2B,EAAE;QAC3C,OAAO,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC;IAED;;OAEG;IACH,MAAM,CAAE,UAAuB;QAC7B,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAElE,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO,KAAK,CAAA;aACb;YAED,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,27 @@
1
+ /// <reference types="node" />
2
+ import net from 'net';
3
+ import { EventEmitter } from '@libp2p/interfaces';
1
4
  import type { Connection } from '@libp2p/interfaces/connection';
2
- import type { Upgrader, Listener } from '@libp2p/interfaces/transport';
5
+ import type { MultiaddrConnection, Upgrader, Listener, ListenerEvents, ConnectionHandler } from '@libp2p/interfaces/transport';
6
+ import type { Multiaddr } from '@multiformats/multiaddr';
3
7
  interface Context {
4
8
  handler?: (conn: Connection) => void;
5
9
  upgrader: Upgrader;
6
10
  }
11
+ declare class TCPListener extends EventEmitter<ListenerEvents> implements Listener {
12
+ private peerId?;
13
+ private listeningAddr?;
14
+ private readonly server;
15
+ private connections;
16
+ constructor(upgrader: Upgrader, handler?: ConnectionHandler);
17
+ getAddrs(): Multiaddr[];
18
+ listen(ma: Multiaddr): Promise<void>;
19
+ close(): Promise<void>;
20
+ trackConn(maConn: MultiaddrConnection, socket: net.Socket): void;
21
+ }
7
22
  /**
8
23
  * Create listener
9
24
  */
10
- export declare function createListener(context: Context): Listener;
25
+ export declare function createListener(context: Context): TCPListener;
11
26
  export {};
12
27
  //# sourceMappingURL=listener.d.ts.map
@@ -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;AAuB3F,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"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":";AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAQrB,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAE9H,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAexD,UAAU,OAAO;IACf,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,cAAM,WAAY,SAAQ,YAAY,CAAC,cAAc,CAAE,YAAW,QAAQ;IACxE,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,aAAa,CAAC,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAAuB;gBAE7B,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAiE5D,QAAQ;IA2BF,MAAM,CAAE,EAAE,EAAE,SAAS;IAuBrB,KAAK;IAcX,SAAS,CAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM;CAS3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,OAAO,EAAE,OAAO,eAM/C"}
@@ -1,10 +1,10 @@
1
1
  import net from 'net';
2
- import { EventEmitter } from 'events';
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
- const log = Object.assign(debug('libp2p:tcp:listener'), { error: debug('libp2p:tcp:listener:error') });
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
  */
@@ -16,115 +16,130 @@ async function attemptClose(maConn) {
16
16
  log.error('an error occurred closing the connection', err);
17
17
  }
18
18
  }
19
- /**
20
- * Create listener
21
- */
22
- export function createListener(context) {
23
- const { handler, upgrader } = context;
24
- let peerId;
25
- let listeningAddr;
26
- const server = Object.assign(net.createServer(socket => {
27
- // Avoid uncaught errors caused by unstable connections
28
- socket.on('error', err => {
29
- log('socket error', err);
30
- });
31
- let maConn;
32
- try {
33
- maConn = toMultiaddrConnection(socket, { listeningAddr });
34
- }
35
- catch (err) {
36
- log.error('inbound connection failed', err);
37
- return;
38
- }
39
- log('new inbound connection %s', maConn.remoteAddr);
40
- try {
41
- upgrader.upgradeInbound(maConn)
42
- .then((conn) => {
43
- log('inbound connection %s upgraded', maConn.remoteAddr);
44
- trackConn(server, maConn, socket);
45
- if (handler != null) {
46
- handler(conn);
47
- }
48
- listener.emit('connection', conn);
49
- })
50
- .catch(async (err) => {
51
- log.error('inbound connection failed', err);
52
- await attemptClose(maConn);
53
- })
54
- .catch(err => {
55
- log.error('closing inbound connection failed', err);
56
- });
57
- }
58
- catch (err) {
59
- log.error('inbound connection failed', err);
60
- attemptClose(maConn)
61
- .catch(err => {
62
- log.error('closing inbound connection failed', err);
19
+ class TCPListener extends EventEmitter {
20
+ constructor(upgrader, handler) {
21
+ super();
22
+ this.connections = [];
23
+ this.server = net.createServer(socket => {
24
+ // Avoid uncaught errors caused by unstable connections
25
+ socket.on('error', err => {
26
+ log('socket error', err);
63
27
  });
64
- }
65
- }),
66
- // Keep track of open connections to destroy in case of timeout
67
- { __connections: [] });
68
- const listener = Object.assign(new EventEmitter(), {
69
- getAddrs: () => {
70
- let addrs = [];
71
- const address = server.address();
72
- if (address == null) {
73
- throw new Error('Listener is not ready yet');
74
- }
75
- if (typeof address === 'string') {
76
- throw new Error('Incorrect server address type');
77
- }
78
- // Because TCP will only return the IPv6 version
79
- // we need to capture from the passed multiaddr
80
- if (listeningAddr.toString().startsWith('/ip4')) {
81
- addrs = addrs.concat(getMultiaddrs('ip4', address.address, address.port));
28
+ let maConn;
29
+ try {
30
+ maConn = toMultiaddrConnection(socket, { listeningAddr: this.listeningAddr });
82
31
  }
83
- else if (address.family === 'IPv6') {
84
- addrs = addrs.concat(getMultiaddrs('ip6', address.address, address.port));
85
- }
86
- return addrs.map(ma => peerId != null ? ma.encapsulate(`/p2p/${peerId}`) : ma);
87
- },
88
- listen: async (ma) => {
89
- listeningAddr = ma;
90
- peerId = ma.getPeerId();
91
- if (peerId == null) {
92
- listeningAddr = ma.decapsulateCode(CODE_P2P);
32
+ catch (err) {
33
+ log.error('inbound connection failed', err);
34
+ return;
93
35
  }
94
- return await new Promise((resolve, reject) => {
95
- const options = multiaddrToNetConfig(listeningAddr);
96
- server.listen(options, (err) => {
97
- if (err != null) {
98
- return reject(err);
36
+ log('new inbound connection %s', maConn.remoteAddr);
37
+ try {
38
+ upgrader.upgradeInbound(maConn)
39
+ .then((conn) => {
40
+ log('inbound connection %s upgraded', maConn.remoteAddr);
41
+ this.trackConn(maConn, socket);
42
+ if (handler != null) {
43
+ handler(conn);
99
44
  }
100
- log('Listening on %s', server.address());
101
- resolve();
45
+ this.dispatchEvent(new CustomEvent('connection', {
46
+ detail: conn
47
+ }));
48
+ })
49
+ .catch(async (err) => {
50
+ log.error('inbound connection failed', err);
51
+ await attemptClose(maConn);
52
+ })
53
+ .catch(err => {
54
+ log.error('closing inbound connection failed', err);
55
+ });
56
+ }
57
+ catch (err) {
58
+ log.error('inbound connection failed', err);
59
+ attemptClose(maConn)
60
+ .catch(err => {
61
+ log.error('closing inbound connection failed', err);
102
62
  });
103
- });
104
- },
105
- close: async () => {
106
- if (!server.listening) {
107
- return;
108
63
  }
109
- await Promise.all([
110
- server.__connections.map(async (maConn) => await attemptClose(maConn))
111
- ]);
112
- await new Promise((resolve, reject) => {
113
- server.close(err => (err != null) ? reject(err) : resolve());
64
+ });
65
+ this.server.on('error', err => {
66
+ this.dispatchEvent(new CustomEvent('error', {
67
+ detail: err
68
+ }));
69
+ });
70
+ this.server.on('close', () => {
71
+ this.dispatchEvent(new CustomEvent('close'));
72
+ });
73
+ this.server.on('listening', () => {
74
+ this.dispatchEvent(new CustomEvent('listening'));
75
+ });
76
+ }
77
+ getAddrs() {
78
+ let addrs = [];
79
+ const address = this.server.address();
80
+ if (address == null) {
81
+ throw new Error('Listener is not ready yet');
82
+ }
83
+ if (typeof address === 'string') {
84
+ throw new Error('Incorrect server address type');
85
+ }
86
+ if (this.listeningAddr == null) {
87
+ throw new Error('Listener is not ready yet');
88
+ }
89
+ // Because TCP will only return the IPv6 version
90
+ // we need to capture from the passed multiaddr
91
+ if (this.listeningAddr.toString().startsWith('/ip4')) {
92
+ addrs = addrs.concat(getMultiaddrs('ip4', address.address, address.port));
93
+ }
94
+ else if (address.family === 'IPv6') {
95
+ addrs = addrs.concat(getMultiaddrs('ip6', address.address, address.port));
96
+ }
97
+ return addrs.map(ma => this.peerId != null ? ma.encapsulate(`/p2p/${this.peerId}`) : ma);
98
+ }
99
+ async listen(ma) {
100
+ const peerId = ma.getPeerId();
101
+ if (peerId == null) {
102
+ ma = ma.decapsulateCode(CODE_P2P);
103
+ }
104
+ else {
105
+ this.peerId = peerId;
106
+ }
107
+ this.listeningAddr = ma;
108
+ return await new Promise((resolve, reject) => {
109
+ const options = multiaddrToNetConfig(ma);
110
+ this.server.listen(options, (err) => {
111
+ if (err != null) {
112
+ return reject(err);
113
+ }
114
+ log('Listening on %s', this.server.address());
115
+ resolve();
114
116
  });
117
+ });
118
+ }
119
+ async close() {
120
+ if (!this.server.listening) {
121
+ return;
115
122
  }
116
- });
117
- server
118
- .on('listening', () => listener.emit('listening'))
119
- .on('error', err => listener.emit('error', err))
120
- .on('close', () => listener.emit('close'));
121
- return listener;
123
+ await Promise.all([
124
+ this.connections.map(async (maConn) => await attemptClose(maConn))
125
+ ]);
126
+ await new Promise((resolve, reject) => {
127
+ this.server.close(err => (err != null) ? reject(err) : resolve());
128
+ });
129
+ }
130
+ trackConn(maConn, socket) {
131
+ this.connections.push(maConn);
132
+ const untrackConn = () => {
133
+ this.connections = this.connections.filter(c => c !== maConn);
134
+ };
135
+ socket.once('close', untrackConn);
136
+ }
122
137
  }
123
- function trackConn(server, maConn, socket) {
124
- server.__connections.push(maConn);
125
- const untrackConn = () => {
126
- server.__connections = server.__connections.filter(c => c !== maConn);
127
- };
128
- socket.once('close', untrackConn);
138
+ /**
139
+ * Create listener
140
+ */
141
+ export function createListener(context) {
142
+ const { handler, upgrader } = context;
143
+ return new TCPListener(upgrader, handler);
129
144
  }
130
145
  //# sourceMappingURL=listener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EACL,aAAa,EACb,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAM9D,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAEzC;;GAEG;AACH,KAAK,UAAU,YAAY,CAAE,MAA2B;IACtD,IAAI;QACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;KACrB;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAA;KAC3D;AACH,CAAC;AAOD,MAAM,WAAY,SAAQ,YAA4B;IAMpD,YAAa,QAAkB,EAAE,OAA2B;QAC1D,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QAErB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YACtC,uDAAuD;YACvD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBACvB,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;YAEF,IAAI,MAA2B,CAAA;YAC/B,IAAI;gBACF,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;aAC9E;YAAC,OAAO,GAAG,EAAE;gBACZ,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;gBAC3C,OAAM;aACP;YAED,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;YACnD,IAAI;gBACF,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;qBAC5B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACb,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;oBAExD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;oBAE9B,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,OAAO,CAAC,IAAI,CAAC,CAAA;qBACd;oBAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE;wBAC/C,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC,CAAA;gBACL,CAAC,CAAC;qBACD,KAAK,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;oBACjB,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;oBAE3C,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;gBAC5B,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;gBACrD,CAAC,CAAC,CAAA;aACL;YAAC,OAAO,GAAG,EAAE;gBACZ,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;gBAE3C,YAAY,CAAC,MAAM,CAAC;qBACjB,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;gBACrD,CAAC,CAAC,CAAA;aACL;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE;gBAC1C,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC,CAAA;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,KAAK,GAAgB,EAAE,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAErC,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;SAC7C;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;SACjD;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;SAC7C;QAED,gDAAgD;QAChD,+CAA+C;QAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACpD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;SAC1E;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;YACpC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;SAC1E;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,EAAa;QACzB,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAE7B,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;SAClC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;SACrB;QAED,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QAEvB,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;YACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAS,EAAE,EAAE;gBACxC,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBACnB;gBACD,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC7C,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,OAAM;SACP;QAED,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;SACjE,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CAAE,MAA2B,EAAE,MAAkB;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE7B,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;QAC/D,CAAC,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAE,OAAgB;IAC9C,MAAM,EACJ,OAAO,EAAE,QAAQ,EAClB,GAAG,OAAO,CAAA;IAEX,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { abortableSource } from 'abortable-iterator';
2
- import debug from 'debug';
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 = debug('libp2p:tcp:socket');
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":"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"}
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",
3
+ "version": "1.0.4",
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,25 +129,23 @@
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/utils": "^1.0.1",
138
+ "@libp2p/logger": "^1.0.2",
139
+ "@libp2p/utils": "^1.0.6",
139
140
  "@multiformats/mafmt": "^11.0.0",
140
141
  "@multiformats/multiaddr": "^10.1.1",
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.0.1",
148
- "@libp2p/interfaces": "^1.0.0",
149
- "@types/debug": "^4.1.5",
150
- "@types/mocha": "^9.0.0",
147
+ "@libp2p/interface-compliance-tests": "^1.1.2",
148
+ "@libp2p/interfaces": "^1.3.2",
151
149
  "aegir": "^36.1.3",
152
150
  "it-pipe": "^2.0.3",
153
151
  "sinon": "^13.0.0",
package/src/index.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import net from 'net'
2
2
  import * as mafmt from '@multiformats/mafmt'
3
3
  import errCode from 'err-code'
4
- import debug from 'debug'
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
8
  import { AbortError } from 'abortable-iterator'
9
9
  import { CODE_CIRCUIT, CODE_P2P } from './constants.js'
10
- import type { Transport, Upgrader, ListenerOptions } from '@libp2p/interfaces/transport'
10
+ import type { Transport, Upgrader, ListenerOptions, Listener } from '@libp2p/interfaces/transport'
11
11
  import type { Multiaddr } from '@multiformats/multiaddr'
12
12
  import type { Socket } from 'net'
13
13
 
14
- const log = debug('libp2p:tcp')
14
+ const log = logger('libp2p:tcp')
15
15
 
16
16
  /**
17
17
  * @typedef {import('multiaddr').Multiaddr} Multiaddr
@@ -125,7 +125,7 @@ export class TCP implements Transport<DialOptions, ListenerOptions> {
125
125
  * anytime a new incoming Connection has been successfully upgraded via
126
126
  * `upgrader.upgradeInbound`.
127
127
  */
128
- createListener (options: ListenerOptions = {}) {
128
+ createListener (options: ListenerOptions = {}): Listener {
129
129
  return createListener({ upgrader: this._upgrader, ...options })
130
130
  }
131
131
 
package/src/listener.ts CHANGED
@@ -1,24 +1,18 @@
1
1
  import net from 'net'
2
- import { EventEmitter } from 'events'
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
- import type { MultiaddrConnection, Upgrader, Listener } from '@libp2p/interfaces/transport'
11
+ import type { MultiaddrConnection, Upgrader, Listener, ListenerEvents, ConnectionHandler } from '@libp2p/interfaces/transport'
12
12
  import type { Server } from 'net'
13
13
  import type { Multiaddr } from '@multiformats/multiaddr'
14
14
 
15
- const log = Object.assign(
16
- debug('libp2p:tcp:listener'),
17
- { error: debug('libp2p:tcp:listener:error') })
18
-
19
- interface ServerWithMultiaddrConnections extends Server {
20
- __connections: MultiaddrConnection[]
21
- }
15
+ const log = logger('libp2p:tcp:listener')
22
16
 
23
17
  /**
24
18
  * Attempts to close the given maConn. If a failure occurs, it will be logged
@@ -36,135 +30,159 @@ interface Context {
36
30
  upgrader: Upgrader
37
31
  }
38
32
 
39
- /**
40
- * Create listener
41
- */
42
- export function createListener (context: Context) {
43
- const {
44
- handler, upgrader
45
- } = context
33
+ class TCPListener extends EventEmitter<ListenerEvents> implements Listener {
34
+ private peerId?: string
35
+ private listeningAddr?: Multiaddr
36
+ private readonly server: Server
37
+ private connections: MultiaddrConnection[]
38
+
39
+ constructor (upgrader: Upgrader, handler?: ConnectionHandler) {
40
+ super()
41
+
42
+ this.connections = []
43
+
44
+ this.server = net.createServer(socket => {
45
+ // Avoid uncaught errors caused by unstable connections
46
+ socket.on('error', err => {
47
+ log('socket error', err)
48
+ })
46
49
 
47
- let peerId: string | null
48
- let listeningAddr: Multiaddr
50
+ let maConn: MultiaddrConnection
51
+ try {
52
+ maConn = toMultiaddrConnection(socket, { listeningAddr: this.listeningAddr })
53
+ } catch (err) {
54
+ log.error('inbound connection failed', err)
55
+ return
56
+ }
49
57
 
50
- const server: ServerWithMultiaddrConnections = Object.assign(net.createServer(socket => {
51
- // Avoid uncaught errors caused by unstable connections
52
- socket.on('error', err => {
53
- log('socket error', err)
58
+ log('new inbound connection %s', maConn.remoteAddr)
59
+ try {
60
+ upgrader.upgradeInbound(maConn)
61
+ .then((conn) => {
62
+ log('inbound connection %s upgraded', maConn.remoteAddr)
63
+
64
+ this.trackConn(maConn, socket)
65
+
66
+ if (handler != null) {
67
+ handler(conn)
68
+ }
69
+
70
+ this.dispatchEvent(new CustomEvent('connection', {
71
+ detail: conn
72
+ }))
73
+ })
74
+ .catch(async err => {
75
+ log.error('inbound connection failed', err)
76
+
77
+ await attemptClose(maConn)
78
+ })
79
+ .catch(err => {
80
+ log.error('closing inbound connection failed', err)
81
+ })
82
+ } catch (err) {
83
+ log.error('inbound connection failed', err)
84
+
85
+ attemptClose(maConn)
86
+ .catch(err => {
87
+ log.error('closing inbound connection failed', err)
88
+ })
89
+ }
90
+ })
91
+ this.server.on('error', err => {
92
+ this.dispatchEvent(new CustomEvent('error', {
93
+ detail: err
94
+ }))
54
95
  })
96
+ this.server.on('close', () => {
97
+ this.dispatchEvent(new CustomEvent('close'))
98
+ })
99
+ this.server.on('listening', () => {
100
+ this.dispatchEvent(new CustomEvent('listening'))
101
+ })
102
+ }
55
103
 
56
- let maConn: MultiaddrConnection
57
- try {
58
- maConn = toMultiaddrConnection(socket, { listeningAddr })
59
- } catch (err) {
60
- log.error('inbound connection failed', err)
61
- return
104
+ getAddrs () {
105
+ let addrs: Multiaddr[] = []
106
+ const address = this.server.address()
107
+
108
+ if (address == null) {
109
+ throw new Error('Listener is not ready yet')
62
110
  }
63
111
 
64
- log('new inbound connection %s', maConn.remoteAddr)
65
- try {
66
- upgrader.upgradeInbound(maConn)
67
- .then((conn) => {
68
- log('inbound connection %s upgraded', maConn.remoteAddr)
69
- trackConn(server, maConn, socket)
70
-
71
- if (handler != null) {
72
- handler(conn)
73
- }
74
-
75
- listener.emit('connection', conn)
76
- })
77
- .catch(async err => {
78
- log.error('inbound connection failed', err)
79
-
80
- await attemptClose(maConn)
81
- })
82
- .catch(err => {
83
- log.error('closing inbound connection failed', err)
84
- })
85
- } catch (err) {
86
- log.error('inbound connection failed', err)
87
-
88
- attemptClose(maConn)
89
- .catch(err => {
90
- log.error('closing inbound connection failed', err)
91
- })
112
+ if (typeof address === 'string') {
113
+ throw new Error('Incorrect server address type')
92
114
  }
93
- }),
94
- // Keep track of open connections to destroy in case of timeout
95
- { __connections: [] })
96
115
 
97
- const listener: Listener = Object.assign(new EventEmitter(), {
98
- getAddrs: () => {
99
- let addrs: Multiaddr[] = []
100
- const address = server.address()
116
+ if (this.listeningAddr == null) {
117
+ throw new Error('Listener is not ready yet')
118
+ }
101
119
 
102
- if (address == null) {
103
- throw new Error('Listener is not ready yet')
104
- }
120
+ // Because TCP will only return the IPv6 version
121
+ // we need to capture from the passed multiaddr
122
+ if (this.listeningAddr.toString().startsWith('/ip4')) {
123
+ addrs = addrs.concat(getMultiaddrs('ip4', address.address, address.port))
124
+ } else if (address.family === 'IPv6') {
125
+ addrs = addrs.concat(getMultiaddrs('ip6', address.address, address.port))
126
+ }
105
127
 
106
- if (typeof address === 'string') {
107
- throw new Error('Incorrect server address type')
108
- }
128
+ return addrs.map(ma => this.peerId != null ? ma.encapsulate(`/p2p/${this.peerId}`) : ma)
129
+ }
109
130
 
110
- // Because TCP will only return the IPv6 version
111
- // we need to capture from the passed multiaddr
112
- if (listeningAddr.toString().startsWith('/ip4')) {
113
- addrs = addrs.concat(getMultiaddrs('ip4', address.address, address.port))
114
- } else if (address.family === 'IPv6') {
115
- addrs = addrs.concat(getMultiaddrs('ip6', address.address, address.port))
116
- }
131
+ async listen (ma: Multiaddr) {
132
+ const peerId = ma.getPeerId()
117
133
 
118
- return addrs.map(ma => peerId != null ? ma.encapsulate(`/p2p/${peerId}`) : ma)
119
- },
120
- listen: async (ma: Multiaddr) => {
121
- listeningAddr = ma
122
- peerId = ma.getPeerId()
134
+ if (peerId == null) {
135
+ ma = ma.decapsulateCode(CODE_P2P)
136
+ } else {
137
+ this.peerId = peerId
138
+ }
123
139
 
124
- if (peerId == null) {
125
- listeningAddr = ma.decapsulateCode(CODE_P2P)
126
- }
140
+ this.listeningAddr = ma
127
141
 
128
- return await new Promise<void>((resolve, reject) => {
129
- const options = multiaddrToNetConfig(listeningAddr)
130
- server.listen(options, (err?: any) => {
131
- if (err != null) {
132
- return reject(err)
133
- }
134
- log('Listening on %s', server.address())
135
- resolve()
136
- })
142
+ return await new Promise<void>((resolve, reject) => {
143
+ const options = multiaddrToNetConfig(ma)
144
+ this.server.listen(options, (err?: any) => {
145
+ if (err != null) {
146
+ return reject(err)
147
+ }
148
+ log('Listening on %s', this.server.address())
149
+ resolve()
137
150
  })
138
- },
139
- close: async () => {
140
- if (!server.listening) {
141
- return
142
- }
143
-
144
- await Promise.all([
145
- server.__connections.map(async maConn => await attemptClose(maConn))
146
- ])
151
+ })
152
+ }
147
153
 
148
- await new Promise<void>((resolve, reject) => {
149
- server.close(err => (err != null) ? reject(err) : resolve())
150
- })
154
+ async close () {
155
+ if (!this.server.listening) {
156
+ return
151
157
  }
152
- })
153
158
 
154
- server
155
- .on('listening', () => listener.emit('listening'))
156
- .on('error', err => listener.emit('error', err))
157
- .on('close', () => listener.emit('close'))
159
+ await Promise.all([
160
+ this.connections.map(async maConn => await attemptClose(maConn))
161
+ ])
158
162
 
159
- return listener
160
- }
163
+ await new Promise<void>((resolve, reject) => {
164
+ this.server.close(err => (err != null) ? reject(err) : resolve())
165
+ })
166
+ }
167
+
168
+ trackConn (maConn: MultiaddrConnection, socket: net.Socket) {
169
+ this.connections.push(maConn)
161
170
 
162
- function trackConn (server: ServerWithMultiaddrConnections, maConn: MultiaddrConnection, socket: net.Socket) {
163
- server.__connections.push(maConn)
171
+ const untrackConn = () => {
172
+ this.connections = this.connections.filter(c => c !== maConn)
173
+ }
164
174
 
165
- const untrackConn = () => {
166
- server.__connections = server.__connections.filter(c => c !== maConn)
175
+ socket.once('close', untrackConn)
167
176
  }
177
+ }
178
+
179
+ /**
180
+ * Create listener
181
+ */
182
+ export function createListener (context: Context) {
183
+ const {
184
+ handler, upgrader
185
+ } = context
168
186
 
169
- socket.once('close', untrackConn)
187
+ return new TCPListener(upgrader, handler)
170
188
  }
@@ -1,5 +1,5 @@
1
1
  import { abortableSource } from 'abortable-iterator'
2
- import debug from 'debug'
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 = debug('libp2p:tcp:socket')
11
+ const log = logger('libp2p:tcp:socket')
12
12
 
13
13
  interface ToConnectionOptions {
14
14
  listeningAddr?: Multiaddr