@libp2p/tcp 8.0.12 → 8.0.13-05b52d69c

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,20 +1,18 @@
1
1
  import net from 'net';
2
2
  import { CodeError } from '@libp2p/interface/errors';
3
3
  import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events';
4
- import { logger } from '@libp2p/logger';
5
4
  import { CODE_P2P } from './constants.js';
6
5
  import { toMultiaddrConnection } from './socket-to-conn.js';
7
6
  import { getMultiaddrs, multiaddrToNetConfig } from './utils.js';
8
- const log = logger('libp2p:tcp:listener');
9
7
  /**
10
8
  * Attempts to close the given maConn. If a failure occurs, it will be logged
11
9
  */
12
- async function attemptClose(maConn) {
10
+ async function attemptClose(maConn, options) {
13
11
  try {
14
12
  await maConn.close();
15
13
  }
16
14
  catch (err) {
17
- log.error('an error occurred closing the connection', err);
15
+ options.log.error('an error occurred closing the connection', err);
18
16
  }
19
17
  }
20
18
  var TCPListenerStatusCode;
@@ -36,10 +34,12 @@ export class TCPListener extends TypedEventEmitter {
36
34
  status = { code: TCPListenerStatusCode.INACTIVE };
37
35
  metrics;
38
36
  addr;
37
+ log;
39
38
  constructor(context) {
40
39
  super();
41
40
  this.context = context;
42
41
  context.keepAlive = context.keepAlive ?? true;
42
+ this.log = context.logger.forComponent('libp2p:tcp:listener');
43
43
  this.addr = 'unknown';
44
44
  this.server = net.createServer(context, this.onSocket.bind(this));
45
45
  // https://nodejs.org/api/net.html#servermaxconnections
@@ -120,7 +120,7 @@ export class TCPListener extends TypedEventEmitter {
120
120
  }
121
121
  // Avoid uncaught errors caused by unstable connections
122
122
  socket.on('error', err => {
123
- log('socket error', err);
123
+ this.log('socket error', err);
124
124
  this.metrics?.events.increment({ [`${this.addr} error`]: true });
125
125
  });
126
126
  let maConn;
@@ -130,19 +130,20 @@ export class TCPListener extends TypedEventEmitter {
130
130
  socketInactivityTimeout: this.context.socketInactivityTimeout,
131
131
  socketCloseTimeout: this.context.socketCloseTimeout,
132
132
  metrics: this.metrics?.events,
133
- metricPrefix: `${this.addr} `
133
+ metricPrefix: `${this.addr} `,
134
+ logger: this.context.logger
134
135
  });
135
136
  }
136
137
  catch (err) {
137
- log.error('inbound connection failed', err);
138
+ this.log.error('inbound connection failed', err);
138
139
  this.metrics?.errors.increment({ [`${this.addr} inbound_to_connection`]: true });
139
140
  return;
140
141
  }
141
- log('new inbound connection %s', maConn.remoteAddr);
142
+ this.log('new inbound connection %s', maConn.remoteAddr);
142
143
  try {
143
144
  this.context.upgrader.upgradeInbound(maConn)
144
145
  .then((conn) => {
145
- log('inbound connection upgraded %s', maConn.remoteAddr);
146
+ this.log('inbound connection upgraded %s', maConn.remoteAddr);
146
147
  this.connections.add(maConn);
147
148
  socket.once('close', () => {
148
149
  this.connections.delete(maConn);
@@ -153,7 +154,7 @@ export class TCPListener extends TypedEventEmitter {
153
154
  // we can do. resume() will be called again every time a connection is dropped, which
154
155
  // acts as an eventual retry mechanism. onListenError allows the consumer act on this.
155
156
  this.resume().catch(e => {
156
- log.error('error attempting to listen server once connection count under limit', e);
157
+ this.log.error('error attempting to listen server once connection count under limit', e);
157
158
  this.context.closeServerOnMaxConnections?.onListenError?.(e);
158
159
  });
159
160
  }
@@ -164,25 +165,29 @@ export class TCPListener extends TypedEventEmitter {
164
165
  if (this.context.closeServerOnMaxConnections != null &&
165
166
  this.connections.size >= this.context.closeServerOnMaxConnections.closeAbove) {
166
167
  this.pause(false).catch(e => {
167
- log.error('error attempting to close server once connection count over limit', e);
168
+ this.log.error('error attempting to close server once connection count over limit', e);
168
169
  });
169
170
  }
170
171
  this.dispatchEvent(new CustomEvent('connection', { detail: conn }));
171
172
  })
172
173
  .catch(async (err) => {
173
- log.error('inbound connection failed', err);
174
+ this.log.error('inbound connection failed', err);
174
175
  this.metrics?.errors.increment({ [`${this.addr} inbound_upgrade`]: true });
175
- await attemptClose(maConn);
176
+ await attemptClose(maConn, {
177
+ log: this.log
178
+ });
176
179
  })
177
180
  .catch(err => {
178
- log.error('closing inbound connection failed', err);
181
+ this.log.error('closing inbound connection failed', err);
179
182
  });
180
183
  }
181
184
  catch (err) {
182
- log.error('inbound connection failed', err);
183
- attemptClose(maConn)
185
+ this.log.error('inbound connection failed', err);
186
+ attemptClose(maConn, {
187
+ log: this.log
188
+ })
184
189
  .catch(err => {
185
- log.error('closing inbound connection failed', err);
190
+ this.log.error('closing inbound connection failed', err);
186
191
  this.metrics?.errors.increment({ [`${this.addr} inbound_closing_failed`]: true });
187
192
  });
188
193
  }
@@ -212,7 +217,7 @@ export class TCPListener extends TypedEventEmitter {
212
217
  }
213
218
  }
214
219
  catch (err) {
215
- log.error('could not turn %s:%s into multiaddr', address.address, address.port, err);
220
+ this.log.error('could not turn %s:%s into multiaddr', address.address, address.port, err);
216
221
  }
217
222
  }
218
223
  return addrs.map(ma => peerId != null ? ma.encapsulate(`/p2p/${peerId}`) : ma);
@@ -241,9 +246,11 @@ export class TCPListener extends TypedEventEmitter {
241
246
  async close() {
242
247
  // Close connections and server the same time to avoid any race condition
243
248
  await Promise.all([
244
- Promise.all(Array.from(this.connections.values()).map(async (maConn) => attemptClose(maConn))),
249
+ Promise.all(Array.from(this.connections.values()).map(async (maConn) => attemptClose(maConn, {
250
+ log: this.log
251
+ }))),
245
252
  this.pause(true).catch(e => {
246
- log.error('error attempting to close server once connection count over limit', e);
253
+ this.log.error('error attempting to close server once connection count over limit', e);
247
254
  })
248
255
  ]);
249
256
  }
@@ -261,7 +268,7 @@ export class TCPListener extends TypedEventEmitter {
261
268
  this.server.listen(netConfig, resolve);
262
269
  });
263
270
  this.status = { ...this.status, code: TCPListenerStatusCode.ACTIVE };
264
- log('Listening on %s', this.server.address());
271
+ this.log('Listening on %s', this.server.address());
265
272
  }
266
273
  async pause(permanent) {
267
274
  if (!this.server.listening && this.status.code === TCPListenerStatusCode.PAUSED && permanent) {
@@ -271,7 +278,7 @@ export class TCPListener extends TypedEventEmitter {
271
278
  if (!this.server.listening || this.status.code !== TCPListenerStatusCode.ACTIVE) {
272
279
  return;
273
280
  }
274
- log('Closing server on %s', this.server.address());
281
+ this.log('Closing server on %s', this.server.address());
275
282
  // NodeJS implementation tracks listening status with `this._handle` property.
276
283
  // - Server.close() sets this._handle to null immediately. If this._handle is null, ERR_SERVER_NOT_RUNNING is thrown
277
284
  // - Server.listening returns `this._handle !== null` https://github.com/nodejs/node/blob/386d761943bb1b217fba27d6b80b658c23009e60/lib/net.js#L1675
@@ -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":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ComponentLogger } from '@libp2p/interface';
1
2
  import type { MultiaddrConnection } from '@libp2p/interface/connection';
2
3
  import type { CounterGroup } from '@libp2p/interface/metrics';
3
4
  import type { Multiaddr } from '@multiformats/multiaddr';
@@ -10,6 +11,7 @@ interface ToConnectionOptions {
10
11
  socketCloseTimeout?: number;
11
12
  metrics?: CounterGroup;
12
13
  metricPrefix?: string;
14
+ logger: ComponentLogger;
13
15
  }
14
16
  /**
15
17
  * Convert a socket into a MultiaddrConnection
@@ -1 +1 @@
1
- {"version":3,"file":"socket-to-conn.d.ts","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAIjC,UAAU,mBAAmB;IAC3B,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,WAAY,MAAM,WAAW,mBAAmB,KAAG,mBAyJpF,CAAA"}
1
+ {"version":3,"file":"socket-to-conn.d.ts","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAEjC,UAAU,mBAAmB;IAC3B,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,WAAY,MAAM,WAAW,mBAAmB,KAAG,mBAiKpF,CAAA"}
@@ -1,16 +1,15 @@
1
1
  import { CodeError } from '@libp2p/interface/errors';
2
- import { logger } from '@libp2p/logger';
3
2
  import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr';
4
3
  // @ts-expect-error no types
5
4
  import toIterable from 'stream-to-it';
6
5
  import { CLOSE_TIMEOUT, SOCKET_TIMEOUT } from './constants.js';
7
6
  import { multiaddrToNetConfig } from './utils.js';
8
- const log = logger('libp2p:tcp:socket');
9
7
  /**
10
8
  * Convert a socket into a MultiaddrConnection
11
9
  * https://github.com/libp2p/interface-transport#multiaddrconnection
12
10
  */
13
11
  export const toMultiaddrConnection = (socket, options) => {
12
+ const log = options.logger.forComponent('libp2p:tcp:socket');
14
13
  const metrics = options.metrics;
15
14
  const metricPrefix = options.metricPrefix ?? '';
16
15
  const inactivityTimeout = options.socketInactivityTimeout ?? SOCKET_TIMEOUT;
@@ -93,7 +92,13 @@ export const toMultiaddrConnection = (socket, options) => {
93
92
  log('%s socket was already destroyed when trying to close', lOptsStr);
94
93
  return;
95
94
  }
96
- options.signal = options.signal ?? AbortSignal.timeout(closeTimeout);
95
+ if (options.signal == null) {
96
+ const signal = AbortSignal.timeout(closeTimeout);
97
+ options = {
98
+ ...options,
99
+ signal
100
+ };
101
+ }
97
102
  try {
98
103
  log('%s closing socket', lOptsStr);
99
104
  await new Promise((resolve, reject) => {
@@ -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": "8.0.12",
3
+ "version": "8.0.13-05b52d69c",
4
4
  "description": "A TCP transport for libp2p",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/transport-tcp#readme",
@@ -51,21 +51,21 @@
51
51
  "test:electron-main": "aegir test -t electron-main"
52
52
  },
53
53
  "dependencies": {
54
- "@libp2p/interface": "^0.1.5",
55
- "@libp2p/logger": "^3.0.5",
56
- "@libp2p/utils": "^4.0.6",
57
- "@multiformats/mafmt": "^12.1.2",
58
- "@multiformats/multiaddr": "^12.1.5",
54
+ "@libp2p/interface": "0.1.6-05b52d69c",
55
+ "@libp2p/utils": "4.0.7-05b52d69c",
56
+ "@multiformats/mafmt": "^12.1.6",
57
+ "@multiformats/multiaddr": "^12.1.10",
59
58
  "@types/sinon": "^17.0.0",
60
59
  "stream-to-it": "^0.2.2"
61
60
  },
62
61
  "devDependencies": {
63
- "@libp2p/interface-compliance-tests": "^4.1.4",
62
+ "@libp2p/interface-compliance-tests": "4.1.5-05b52d69c",
63
+ "@libp2p/logger": "3.1.0-05b52d69c",
64
64
  "aegir": "^41.0.2",
65
- "it-all": "^3.0.1",
65
+ "it-all": "^3.0.3",
66
66
  "it-pipe": "^3.0.1",
67
67
  "p-defer": "^4.0.0",
68
68
  "sinon": "^17.0.0",
69
- "uint8arrays": "^4.0.4"
69
+ "uint8arrays": "^4.0.6"
70
70
  }
71
71
  }
package/src/index.ts CHANGED
@@ -22,7 +22,7 @@
22
22
  * const listener = transport.createListener({
23
23
  * upgrader,
24
24
  * handler: (socket) => {
25
- * console.log('new connection opened')
25
+ * console.this.log('new connection opened')
26
26
  * pipe(
27
27
  * ['hello', ' ', 'World!'],
28
28
  * socket
@@ -32,14 +32,14 @@
32
32
  *
33
33
  * const addr = multiaddr('/ip4/127.0.0.1/tcp/9090')
34
34
  * await listener.listen(addr)
35
- * console.log('listening')
35
+ * console.this.log('listening')
36
36
  *
37
37
  * const socket = await transport.dial(addr, { upgrader })
38
38
  * const values = await pipe(
39
39
  * socket,
40
40
  * all
41
41
  * )
42
- * console.log(`Value: ${values.toString()}`)
42
+ * console.this.log(`Value: ${values.toString()}`)
43
43
  *
44
44
  * // Close connection after reading
45
45
  * await listener.close()
@@ -57,19 +57,17 @@
57
57
  import net from 'net'
58
58
  import { AbortError, CodeError } from '@libp2p/interface/errors'
59
59
  import { type CreateListenerOptions, type DialOptions, symbol, type Transport, type Listener } from '@libp2p/interface/transport'
60
- import { logger } from '@libp2p/logger'
61
60
  import * as mafmt from '@multiformats/mafmt'
62
61
  import { CODE_CIRCUIT, CODE_P2P, CODE_UNIX } from './constants.js'
63
62
  import { type CloseServerOnMaxConnectionsOpts, TCPListener } from './listener.js'
64
63
  import { toMultiaddrConnection } from './socket-to-conn.js'
65
64
  import { multiaddrToNetConfig } from './utils.js'
65
+ import type { ComponentLogger, Logger } from '@libp2p/interface'
66
66
  import type { Connection } from '@libp2p/interface/connection'
67
67
  import type { CounterGroup, Metrics } from '@libp2p/interface/metrics'
68
68
  import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr'
69
69
  import type { Socket, IpcSocketConnectOpts, TcpSocketConnectOpts } from 'net'
70
70
 
71
- const log = logger('libp2p:tcp')
72
-
73
71
  export interface TCPOptions {
74
72
  /**
75
73
  * An optional number in ms that is used as an inactivity timeout after which the socket will be closed
@@ -125,6 +123,7 @@ export interface TCPCreateListenerOptions extends CreateListenerOptions, TCPSock
125
123
 
126
124
  export interface TCPComponents {
127
125
  metrics?: Metrics
126
+ logger: ComponentLogger
128
127
  }
129
128
 
130
129
  export interface TCPMetrics {
@@ -135,8 +134,10 @@ class TCP implements Transport {
135
134
  private readonly opts: TCPOptions
136
135
  private readonly metrics?: TCPMetrics
137
136
  private readonly components: TCPComponents
137
+ private readonly log: Logger
138
138
 
139
139
  constructor (components: TCPComponents, options: TCPOptions = {}) {
140
+ this.log = components.logger.forComponent('libp2p:tcp')
140
141
  this.opts = options
141
142
  this.components = components
142
143
 
@@ -162,32 +163,33 @@ class TCP implements Transport {
162
163
 
163
164
  // Avoid uncaught errors caused by unstable connections
164
165
  socket.on('error', err => {
165
- log('socket error', err)
166
+ this.log('socket error', err)
166
167
  })
167
168
 
168
169
  const maConn = toMultiaddrConnection(socket, {
169
170
  remoteAddr: ma,
170
171
  socketInactivityTimeout: this.opts.outboundSocketInactivityTimeout,
171
172
  socketCloseTimeout: this.opts.socketCloseTimeout,
172
- metrics: this.metrics?.dialerEvents
173
+ metrics: this.metrics?.dialerEvents,
174
+ logger: this.components.logger
173
175
  })
174
176
 
175
177
  const onAbort = (): void => {
176
178
  maConn.close().catch(err => {
177
- log.error('Error closing maConn after abort', err)
179
+ this.log.error('Error closing maConn after abort', err)
178
180
  })
179
181
  }
180
182
  options.signal?.addEventListener('abort', onAbort, { once: true })
181
183
 
182
- log('new outbound connection %s', maConn.remoteAddr)
184
+ this.log('new outbound connection %s', maConn.remoteAddr)
183
185
  const conn = await options.upgrader.upgradeOutbound(maConn)
184
- log('outbound connection %s upgraded', maConn.remoteAddr)
186
+ this.log('outbound connection %s upgraded', maConn.remoteAddr)
185
187
 
186
188
  options.signal?.removeEventListener('abort', onAbort)
187
189
 
188
190
  if (options.signal?.aborted === true) {
189
191
  conn.close().catch(err => {
190
- log.error('Error closing conn after abort', err)
192
+ this.log.error('Error closing conn after abort', err)
191
193
  })
192
194
 
193
195
  throw new AbortError()
@@ -206,7 +208,7 @@ class TCP implements Transport {
206
208
  const cOpts = multiaddrToNetConfig(ma) as (IpcSocketConnectOpts & TcpSocketConnectOpts)
207
209
  const cOptsStr = cOpts.path ?? `${cOpts.host ?? ''}:${cOpts.port}`
208
210
 
209
- log('dialing %j', cOpts)
211
+ this.log('dialing %j', cOpts)
210
212
  const rawSocket = net.connect(cOpts)
211
213
 
212
214
  const onError = (err: Error): void => {
@@ -217,7 +219,7 @@ class TCP implements Transport {
217
219
  }
218
220
 
219
221
  const onTimeout = (): void => {
220
- log('connection timeout %s', cOptsStr)
222
+ this.log('connection timeout %s', cOptsStr)
221
223
  this.metrics?.dialerEvents.increment({ timeout: true })
222
224
 
223
225
  const err = new CodeError(`connection timeout after ${Date.now() - start}ms`, 'ERR_CONNECT_TIMEOUT')
@@ -226,13 +228,13 @@ class TCP implements Transport {
226
228
  }
227
229
 
228
230
  const onConnect = (): void => {
229
- log('connection opened %j', cOpts)
231
+ this.log('connection opened %j', cOpts)
230
232
  this.metrics?.dialerEvents.increment({ connect: true })
231
233
  done()
232
234
  }
233
235
 
234
236
  const onAbort = (): void => {
235
- log('connection aborted %j', cOpts)
237
+ this.log('connection aborted %j', cOpts)
236
238
  this.metrics?.dialerEvents.increment({ abort: true })
237
239
  rawSocket.destroy()
238
240
  done(new AbortError())
@@ -277,7 +279,8 @@ class TCP implements Transport {
277
279
  closeServerOnMaxConnections: this.opts.closeServerOnMaxConnections,
278
280
  socketInactivityTimeout: this.opts.inboundSocketInactivityTimeout,
279
281
  socketCloseTimeout: this.opts.socketCloseTimeout,
280
- metrics: this.components.metrics
282
+ metrics: this.components.metrics,
283
+ logger: this.components.logger
281
284
  })
282
285
  }
283
286
 
@@ -301,8 +304,8 @@ class TCP implements Transport {
301
304
  }
302
305
  }
303
306
 
304
- export function tcp (init: TCPOptions = {}): (components?: TCPComponents) => Transport {
305
- return (components: TCPComponents = {}) => {
307
+ export function tcp (init: TCPOptions = {}): (components: TCPComponents) => Transport {
308
+ return (components: TCPComponents) => {
306
309
  return new TCP(components, init)
307
310
  }
308
311
  }
package/src/listener.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import net from 'net'
2
2
  import { CodeError } from '@libp2p/interface/errors'
3
3
  import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events'
4
- import { logger } from '@libp2p/logger'
5
4
  import { CODE_P2P } from './constants.js'
6
5
  import { toMultiaddrConnection } from './socket-to-conn.js'
7
6
  import {
@@ -10,21 +9,20 @@ import {
10
9
  type NetConfig
11
10
  } from './utils.js'
12
11
  import type { TCPCreateListenerOptions } from './index.js'
12
+ import type { ComponentLogger, Logger, LoggerOptions } from '@libp2p/interface'
13
13
  import type { MultiaddrConnection, Connection } from '@libp2p/interface/connection'
14
14
  import type { CounterGroup, MetricGroup, Metrics } from '@libp2p/interface/metrics'
15
15
  import type { Listener, ListenerEvents, Upgrader } from '@libp2p/interface/transport'
16
16
  import type { Multiaddr } from '@multiformats/multiaddr'
17
17
 
18
- const log = logger('libp2p:tcp:listener')
19
-
20
18
  /**
21
19
  * Attempts to close the given maConn. If a failure occurs, it will be logged
22
20
  */
23
- async function attemptClose (maConn: MultiaddrConnection): Promise<void> {
21
+ async function attemptClose (maConn: MultiaddrConnection, options: LoggerOptions): Promise<void> {
24
22
  try {
25
23
  await maConn.close()
26
24
  } catch (err) {
27
- log.error('an error occurred closing the connection', err)
25
+ options.log.error('an error occurred closing the connection', err)
28
26
  }
29
27
  }
30
28
 
@@ -45,6 +43,7 @@ interface Context extends TCPCreateListenerOptions {
45
43
  backlog?: number
46
44
  metrics?: Metrics
47
45
  closeServerOnMaxConnections?: CloseServerOnMaxConnectionsOpts
46
+ logger: ComponentLogger
48
47
  }
49
48
 
50
49
  export interface TCPListenerMetrics {
@@ -78,12 +77,14 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
78
77
  private status: Status = { code: TCPListenerStatusCode.INACTIVE }
79
78
  private metrics?: TCPListenerMetrics
80
79
  private addr: string
80
+ private readonly log: Logger
81
81
 
82
82
  constructor (private readonly context: Context) {
83
83
  super()
84
84
 
85
85
  context.keepAlive = context.keepAlive ?? true
86
86
 
87
+ this.log = context.logger.forComponent('libp2p:tcp:listener')
87
88
  this.addr = 'unknown'
88
89
  this.server = net.createServer(context, this.onSocket.bind(this))
89
90
 
@@ -172,7 +173,7 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
172
173
  }
173
174
  // Avoid uncaught errors caused by unstable connections
174
175
  socket.on('error', err => {
175
- log('socket error', err)
176
+ this.log('socket error', err)
176
177
  this.metrics?.events.increment({ [`${this.addr} error`]: true })
177
178
  })
178
179
 
@@ -183,19 +184,20 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
183
184
  socketInactivityTimeout: this.context.socketInactivityTimeout,
184
185
  socketCloseTimeout: this.context.socketCloseTimeout,
185
186
  metrics: this.metrics?.events,
186
- metricPrefix: `${this.addr} `
187
+ metricPrefix: `${this.addr} `,
188
+ logger: this.context.logger
187
189
  })
188
190
  } catch (err) {
189
- log.error('inbound connection failed', err)
191
+ this.log.error('inbound connection failed', err)
190
192
  this.metrics?.errors.increment({ [`${this.addr} inbound_to_connection`]: true })
191
193
  return
192
194
  }
193
195
 
194
- log('new inbound connection %s', maConn.remoteAddr)
196
+ this.log('new inbound connection %s', maConn.remoteAddr)
195
197
  try {
196
198
  this.context.upgrader.upgradeInbound(maConn)
197
199
  .then((conn) => {
198
- log('inbound connection upgraded %s', maConn.remoteAddr)
200
+ this.log('inbound connection upgraded %s', maConn.remoteAddr)
199
201
  this.connections.add(maConn)
200
202
 
201
203
  socket.once('close', () => {
@@ -210,7 +212,7 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
210
212
  // we can do. resume() will be called again every time a connection is dropped, which
211
213
  // acts as an eventual retry mechanism. onListenError allows the consumer act on this.
212
214
  this.resume().catch(e => {
213
- log.error('error attempting to listen server once connection count under limit', e)
215
+ this.log.error('error attempting to listen server once connection count under limit', e)
214
216
  this.context.closeServerOnMaxConnections?.onListenError?.(e as Error)
215
217
  })
216
218
  }
@@ -225,27 +227,31 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
225
227
  this.connections.size >= this.context.closeServerOnMaxConnections.closeAbove
226
228
  ) {
227
229
  this.pause(false).catch(e => {
228
- log.error('error attempting to close server once connection count over limit', e)
230
+ this.log.error('error attempting to close server once connection count over limit', e)
229
231
  })
230
232
  }
231
233
 
232
234
  this.dispatchEvent(new CustomEvent<Connection>('connection', { detail: conn }))
233
235
  })
234
236
  .catch(async err => {
235
- log.error('inbound connection failed', err)
237
+ this.log.error('inbound connection failed', err)
236
238
  this.metrics?.errors.increment({ [`${this.addr} inbound_upgrade`]: true })
237
239
 
238
- await attemptClose(maConn)
240
+ await attemptClose(maConn, {
241
+ log: this.log
242
+ })
239
243
  })
240
244
  .catch(err => {
241
- log.error('closing inbound connection failed', err)
245
+ this.log.error('closing inbound connection failed', err)
242
246
  })
243
247
  } catch (err) {
244
- log.error('inbound connection failed', err)
248
+ this.log.error('inbound connection failed', err)
245
249
 
246
- attemptClose(maConn)
250
+ attemptClose(maConn, {
251
+ log: this.log
252
+ })
247
253
  .catch(err => {
248
- log.error('closing inbound connection failed', err)
254
+ this.log.error('closing inbound connection failed', err)
249
255
  this.metrics?.errors.increment({ [`${this.addr} inbound_closing_failed`]: true })
250
256
  })
251
257
  }
@@ -276,7 +282,7 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
276
282
  addrs = addrs.concat(getMultiaddrs('ip6', address.address, address.port))
277
283
  }
278
284
  } catch (err) {
279
- log.error('could not turn %s:%s into multiaddr', address.address, address.port, err)
285
+ this.log.error('could not turn %s:%s into multiaddr', address.address, address.port, err)
280
286
  }
281
287
  }
282
288
 
@@ -310,9 +316,11 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
310
316
  async close (): Promise<void> {
311
317
  // Close connections and server the same time to avoid any race condition
312
318
  await Promise.all([
313
- Promise.all(Array.from(this.connections.values()).map(async maConn => attemptClose(maConn))),
319
+ Promise.all(Array.from(this.connections.values()).map(async maConn => attemptClose(maConn, {
320
+ log: this.log
321
+ }))),
314
322
  this.pause(true).catch(e => {
315
- log.error('error attempting to close server once connection count over limit', e)
323
+ this.log.error('error attempting to close server once connection count over limit', e)
316
324
  })
317
325
  ])
318
326
  }
@@ -334,7 +342,7 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
334
342
  })
335
343
 
336
344
  this.status = { ...this.status, code: TCPListenerStatusCode.ACTIVE }
337
- log('Listening on %s', this.server.address())
345
+ this.log('Listening on %s', this.server.address())
338
346
  }
339
347
 
340
348
  private async pause (permanent: boolean): Promise<void> {
@@ -347,7 +355,7 @@ export class TCPListener extends TypedEventEmitter<ListenerEvents> implements Li
347
355
  return
348
356
  }
349
357
 
350
- log('Closing server on %s', this.server.address())
358
+ this.log('Closing server on %s', this.server.address())
351
359
 
352
360
  // NodeJS implementation tracks listening status with `this._handle` property.
353
361
  // - Server.close() sets this._handle to null immediately. If this._handle is null, ERR_SERVER_NOT_RUNNING is thrown