@libp2p/tcp 3.1.0 → 3.1.2
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/dist/src/index.d.ts +17 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/listener.d.ts +2 -1
- package/dist/src/listener.d.ts.map +1 -1
- package/dist/src/listener.js +2 -2
- package/dist/src/listener.js.map +1 -1
- package/dist/src/utils.d.ts +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +2 -2
- package/dist/src/utils.js.map +1 -1
- package/package.json +10 -10
- package/src/index.ts +24 -6
- package/src/listener.ts +5 -4
- package/src/utils.ts +3 -2
package/dist/src/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import net from 'net';
|
|
3
3
|
import { CreateListenerOptions, DialOptions, symbol, Transport } from '@libp2p/interface-transport';
|
|
4
|
-
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
5
|
-
import type { AbortOptions } from '@libp2p/interfaces';
|
|
4
|
+
import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr';
|
|
6
5
|
import type { Connection } from '@libp2p/interface-connection';
|
|
7
6
|
export interface TCPOptions {
|
|
8
7
|
/**
|
|
@@ -18,19 +17,32 @@ export interface TCPOptions {
|
|
|
18
17
|
*/
|
|
19
18
|
socketCloseTimeout?: number;
|
|
20
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Expose a subset of net.connect options
|
|
22
|
+
*/
|
|
23
|
+
export interface TCPSocketOptions extends AbortOptions {
|
|
24
|
+
noDelay?: boolean;
|
|
25
|
+
keepAlive?: boolean;
|
|
26
|
+
keepAliveInitialDelay?: number;
|
|
27
|
+
allowHalfOpen?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface TCPDialOptions extends DialOptions, TCPSocketOptions {
|
|
30
|
+
}
|
|
31
|
+
export interface TCPCreateListenerOptions extends CreateListenerOptions, TCPSocketOptions {
|
|
32
|
+
}
|
|
21
33
|
export declare class TCP implements Transport {
|
|
22
34
|
private readonly opts;
|
|
23
35
|
constructor(options?: TCPOptions);
|
|
24
36
|
get [symbol](): true;
|
|
25
37
|
get [Symbol.toStringTag](): string;
|
|
26
|
-
dial(ma: Multiaddr, options:
|
|
27
|
-
_connect(ma: Multiaddr, options
|
|
38
|
+
dial(ma: Multiaddr, options: TCPDialOptions): Promise<Connection>;
|
|
39
|
+
_connect(ma: Multiaddr, options: TCPDialOptions): Promise<net.Socket>;
|
|
28
40
|
/**
|
|
29
41
|
* Creates a TCP listener. The provided `handler` function will be called
|
|
30
42
|
* anytime a new incoming Connection has been successfully upgraded via
|
|
31
43
|
* `upgrader.upgradeInbound`.
|
|
32
44
|
*/
|
|
33
|
-
createListener(options:
|
|
45
|
+
createListener(options: TCPCreateListenerOptions): import("@libp2p/interface-transport").Listener;
|
|
34
46
|
/**
|
|
35
47
|
* Takes a list of `Multiaddr`s and returns only valid TCP addresses
|
|
36
48
|
*/
|
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,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,KAAK,EAAE,
|
|
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,6BAA6B,CAAA;AACnG,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAI9D,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAA;IAEvC;;OAEG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAA;IAExC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW,EAAE,gBAAgB;CAEpE;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB,EAAE,gBAAgB;CAExF;AAED,qBAAa,GAAI,YAAW,SAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;gBAEpB,OAAO,GAAE,UAAe;IAIrC,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAEK,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBlE,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc;IAgEtD;;;;OAIG;IACH,cAAc,CAAE,OAAO,EAAE,wBAAwB;IAQjD;;OAEG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE;CAehC"}
|
package/dist/src/index.js
CHANGED
|
@@ -20,8 +20,8 @@ export class TCP {
|
|
|
20
20
|
return '@libp2p/tcp';
|
|
21
21
|
}
|
|
22
22
|
async dial(ma, options) {
|
|
23
|
+
options.keepAlive = options.keepAlive ?? true;
|
|
23
24
|
const socket = await this._connect(ma, options);
|
|
24
|
-
socket.setKeepAlive(true);
|
|
25
25
|
// Avoid uncaught errors caused by unstable connections
|
|
26
26
|
socket.on('error', err => {
|
|
27
27
|
log('socket error', err);
|
|
@@ -37,7 +37,7 @@ export class TCP {
|
|
|
37
37
|
log('outbound connection %s upgraded', maConn.remoteAddr);
|
|
38
38
|
return conn;
|
|
39
39
|
}
|
|
40
|
-
async _connect(ma, options
|
|
40
|
+
async _connect(ma, options) {
|
|
41
41
|
if (options.signal?.aborted === true) {
|
|
42
42
|
throw new AbortError();
|
|
43
43
|
}
|
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,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,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,2BAA2B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAsC,MAAM,EAAa,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/listener.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Connection } from '@libp2p/interface-connection';
|
|
2
2
|
import type { Upgrader, Listener } from '@libp2p/interface-transport';
|
|
3
|
-
|
|
3
|
+
import type { TCPCreateListenerOptions } from './index.js';
|
|
4
|
+
interface Context extends TCPCreateListenerOptions {
|
|
4
5
|
handler?: (conn: Connection) => void;
|
|
5
6
|
upgrader: Upgrader;
|
|
6
7
|
socketInactivityTimeout?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAmB1D,UAAU,OAAQ,SAAQ,wBAAwB;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;IAClB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,OAAO,EAAE,OAAO,YAgI/C"}
|
package/dist/src/listener.js
CHANGED
|
@@ -21,10 +21,10 @@ async function attemptClose(maConn) {
|
|
|
21
21
|
*/
|
|
22
22
|
export function createListener(context) {
|
|
23
23
|
const { handler, upgrader, socketInactivityTimeout, socketCloseTimeout } = context;
|
|
24
|
+
context.keepAlive = context.keepAlive ?? true;
|
|
24
25
|
let peerId;
|
|
25
26
|
let listeningAddr;
|
|
26
|
-
const server = Object.assign(net.createServer(socket => {
|
|
27
|
-
socket.setKeepAlive(true);
|
|
27
|
+
const server = Object.assign(net.createServer(context, socket => {
|
|
28
28
|
// Avoid uncaught errors caused by unstable connections
|
|
29
29
|
socket.on('error', err => {
|
|
30
30
|
log('socket error', err);
|
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,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,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
3
3
|
import type { ListenOptions, IpcSocketConnectOpts, TcpSocketConnectOpts } from 'net';
|
|
4
4
|
export declare function multiaddrToNetConfig(addr: Multiaddr): ListenOptions | (IpcSocketConnectOpts & TcpSocketConnectOpts);
|
|
5
5
|
export declare function getMultiaddrs(proto: 'ip4' | 'ip6', ip: string, port: number): Multiaddr[];
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;AAMpF,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,CAepH;AAED,wBAAgB,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAG5E;AAED,wBAAgB,SAAS,CAAE,EAAE,EAAE,MAAM,WAEpC"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { multiaddr } from '@multiformats/multiaddr';
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
const ProtoFamily = { ip4: 'IPv4', ip6: 'IPv6' };
|
|
@@ -18,7 +18,7 @@ export function multiaddrToNetConfig(addr) {
|
|
|
18
18
|
return addr.toOptions();
|
|
19
19
|
}
|
|
20
20
|
export function getMultiaddrs(proto, ip, port) {
|
|
21
|
-
const toMa = (ip) =>
|
|
21
|
+
const toMa = (ip) => multiaddr(`/${proto}/${ip}/tcp/${port}`);
|
|
22
22
|
return (isAnyAddr(ip) ? getNetworkAddrs(ProtoFamily[proto]) : [ip]).map(toMa);
|
|
23
23
|
}
|
|
24
24
|
export function isAnyAddr(ip) {
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnD,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AAEhD,MAAM,UAAU,oBAAoB,CAAE,IAAe;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IAEjC,wBAAwB;IACxB,IAAI,UAAU,IAAI,IAAI,EAAE;QACtB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;YAC7B,sCAAsC;YACtC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAA;SACxD;aAAM;YACL,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;SAC5B;KACF;IAED,gBAAgB;IAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAE,KAAoB,EAAE,EAAU,EAAE,IAAY;IAC3E,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAA;IACrE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,SAAS,CAAE,EAAU;IACnC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAA;AAEvC,SAAS,eAAe,CAAE,MAAc;IACtC,MAAM,SAAS,GAAG,EAAE,CAAA;IAEpB,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACnD,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;oBAC7B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;iBAChC;aACF;SACF;KACF;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/tcp",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2",
|
|
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",
|
|
@@ -136,21 +136,21 @@
|
|
|
136
136
|
"release": "aegir release"
|
|
137
137
|
},
|
|
138
138
|
"dependencies": {
|
|
139
|
-
"@libp2p/interface-connection": "^3.0.
|
|
140
|
-
"@libp2p/interface-transport": "^1.0.
|
|
141
|
-
"@libp2p/interfaces": "^3.0.
|
|
139
|
+
"@libp2p/interface-connection": "^3.0.2",
|
|
140
|
+
"@libp2p/interface-transport": "^1.0.4",
|
|
141
|
+
"@libp2p/interfaces": "^3.0.3",
|
|
142
142
|
"@libp2p/logger": "^2.0.0",
|
|
143
|
-
"@libp2p/utils": "^3.0.
|
|
144
|
-
"@multiformats/mafmt": "^11.0.
|
|
145
|
-
"@multiformats/multiaddr": "^
|
|
143
|
+
"@libp2p/utils": "^3.0.2",
|
|
144
|
+
"@multiformats/mafmt": "^11.0.3",
|
|
145
|
+
"@multiformats/multiaddr": "^11.0.0",
|
|
146
146
|
"abortable-iterator": "^4.0.2",
|
|
147
147
|
"err-code": "^3.0.1",
|
|
148
148
|
"stream-to-it": "^0.2.2"
|
|
149
149
|
},
|
|
150
150
|
"devDependencies": {
|
|
151
|
-
"@libp2p/interface-mocks": "^4.0.
|
|
152
|
-
"@libp2p/interface-transport-compliance-tests": "^2.0.
|
|
153
|
-
"aegir": "^37.
|
|
151
|
+
"@libp2p/interface-mocks": "^4.0.3",
|
|
152
|
+
"@libp2p/interface-transport-compliance-tests": "^2.0.6",
|
|
153
|
+
"aegir": "^37.5.3",
|
|
154
154
|
"it-all": "^1.0.6",
|
|
155
155
|
"it-pipe": "^2.0.3",
|
|
156
156
|
"p-defer": "^4.0.0",
|
package/src/index.ts
CHANGED
|
@@ -8,9 +8,8 @@ import { multiaddrToNetConfig } from './utils.js'
|
|
|
8
8
|
import { AbortError } from '@libp2p/interfaces/errors'
|
|
9
9
|
import { CODE_CIRCUIT, CODE_P2P, CODE_UNIX } from './constants.js'
|
|
10
10
|
import { CreateListenerOptions, DialOptions, symbol, Transport } from '@libp2p/interface-transport'
|
|
11
|
-
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
11
|
+
import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr'
|
|
12
12
|
import type { Socket, IpcSocketConnectOpts, TcpSocketConnectOpts } from 'net'
|
|
13
|
-
import type { AbortOptions } from '@libp2p/interfaces'
|
|
14
13
|
import type { Connection } from '@libp2p/interface-connection'
|
|
15
14
|
|
|
16
15
|
const log = logger('libp2p:tcp')
|
|
@@ -32,6 +31,24 @@ export interface TCPOptions {
|
|
|
32
31
|
socketCloseTimeout?: number
|
|
33
32
|
}
|
|
34
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Expose a subset of net.connect options
|
|
36
|
+
*/
|
|
37
|
+
export interface TCPSocketOptions extends AbortOptions {
|
|
38
|
+
noDelay?: boolean
|
|
39
|
+
keepAlive?: boolean
|
|
40
|
+
keepAliveInitialDelay?: number
|
|
41
|
+
allowHalfOpen?: boolean
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface TCPDialOptions extends DialOptions, TCPSocketOptions {
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface TCPCreateListenerOptions extends CreateListenerOptions, TCPSocketOptions {
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
35
52
|
export class TCP implements Transport {
|
|
36
53
|
private readonly opts: TCPOptions
|
|
37
54
|
|
|
@@ -47,9 +64,10 @@ export class TCP implements Transport {
|
|
|
47
64
|
return '@libp2p/tcp'
|
|
48
65
|
}
|
|
49
66
|
|
|
50
|
-
async dial (ma: Multiaddr, options:
|
|
67
|
+
async dial (ma: Multiaddr, options: TCPDialOptions): Promise<Connection> {
|
|
68
|
+
options.keepAlive = options.keepAlive ?? true
|
|
69
|
+
|
|
51
70
|
const socket = await this._connect(ma, options)
|
|
52
|
-
socket.setKeepAlive(true)
|
|
53
71
|
|
|
54
72
|
// Avoid uncaught errors caused by unstable connections
|
|
55
73
|
socket.on('error', err => {
|
|
@@ -68,7 +86,7 @@ export class TCP implements Transport {
|
|
|
68
86
|
return conn
|
|
69
87
|
}
|
|
70
88
|
|
|
71
|
-
async _connect (ma: Multiaddr, options:
|
|
89
|
+
async _connect (ma: Multiaddr, options: TCPDialOptions) {
|
|
72
90
|
if (options.signal?.aborted === true) {
|
|
73
91
|
throw new AbortError()
|
|
74
92
|
}
|
|
@@ -137,7 +155,7 @@ export class TCP implements Transport {
|
|
|
137
155
|
* anytime a new incoming Connection has been successfully upgraded via
|
|
138
156
|
* `upgrader.upgradeInbound`.
|
|
139
157
|
*/
|
|
140
|
-
createListener (options:
|
|
158
|
+
createListener (options: TCPCreateListenerOptions) {
|
|
141
159
|
return createListener({
|
|
142
160
|
...options,
|
|
143
161
|
socketInactivityTimeout: this.opts.inboundSocketInactivityTimeout,
|
package/src/listener.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { MultiaddrConnection, Connection } from '@libp2p/interface-connecti
|
|
|
11
11
|
import type { Upgrader, Listener } from '@libp2p/interface-transport'
|
|
12
12
|
import type { Server } from 'net'
|
|
13
13
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
14
|
+
import type { TCPCreateListenerOptions } from './index.js'
|
|
14
15
|
|
|
15
16
|
const log = logger('libp2p:tcp:listener')
|
|
16
17
|
|
|
@@ -29,7 +30,7 @@ async function attemptClose (maConn: MultiaddrConnection) {
|
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
interface Context {
|
|
33
|
+
interface Context extends TCPCreateListenerOptions {
|
|
33
34
|
handler?: (conn: Connection) => void
|
|
34
35
|
upgrader: Upgrader
|
|
35
36
|
socketInactivityTimeout?: number
|
|
@@ -44,12 +45,12 @@ export function createListener (context: Context) {
|
|
|
44
45
|
handler, upgrader, socketInactivityTimeout, socketCloseTimeout
|
|
45
46
|
} = context
|
|
46
47
|
|
|
48
|
+
context.keepAlive = context.keepAlive ?? true
|
|
49
|
+
|
|
47
50
|
let peerId: string | null
|
|
48
51
|
let listeningAddr: Multiaddr
|
|
49
52
|
|
|
50
|
-
const server: ServerWithMultiaddrConnections = Object.assign(net.createServer(socket => {
|
|
51
|
-
socket.setKeepAlive(true)
|
|
52
|
-
|
|
53
|
+
const server: ServerWithMultiaddrConnections = Object.assign(net.createServer(context, socket => {
|
|
53
54
|
// Avoid uncaught errors caused by unstable connections
|
|
54
55
|
socket.on('error', err => {
|
|
55
56
|
log('socket error', err)
|
package/src/utils.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { multiaddr } from '@multiformats/multiaddr'
|
|
2
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
2
3
|
import type { ListenOptions, IpcSocketConnectOpts, TcpSocketConnectOpts } from 'net'
|
|
3
4
|
import os from 'os'
|
|
4
5
|
import path from 'path'
|
|
@@ -23,7 +24,7 @@ export function multiaddrToNetConfig (addr: Multiaddr): ListenOptions | (IpcSock
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export function getMultiaddrs (proto: 'ip4' | 'ip6', ip: string, port: number) {
|
|
26
|
-
const toMa = (ip: string) =>
|
|
27
|
+
const toMa = (ip: string) => multiaddr(`/${proto}/${ip}/tcp/${port}`)
|
|
27
28
|
return (isAnyAddr(ip) ? getNetworkAddrs(ProtoFamily[proto]) : [ip]).map(toMa)
|
|
28
29
|
}
|
|
29
30
|
|