@libp2p/upnp-nat 3.0.4 → 3.0.5-66c3ec5e1
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/constants.d.ts +4 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +4 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/gateway-finder.d.ts +6 -0
- package/dist/src/gateway-finder.d.ts.map +1 -1
- package/dist/src/gateway-finder.js +31 -15
- package/dist/src/gateway-finder.js.map +1 -1
- package/dist/src/index.d.ts +62 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/upnp-nat.d.ts.map +1 -1
- package/dist/src/upnp-nat.js +7 -1
- package/dist/src/upnp-nat.js.map +1 -1
- package/package.json +7 -7
- package/src/constants.ts +5 -0
- package/src/gateway-finder.ts +40 -15
- package/src/index.ts +68 -0
- package/src/upnp-nat.ts +7 -1
- package/dist/typedoc-urls.json +0 -12
package/dist/src/constants.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export declare const DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL = 5000;
|
|
2
|
+
export declare const DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT = 5000;
|
|
3
|
+
export declare const DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL = 1000;
|
|
1
4
|
export declare const DEFAULT_GATEWAY_SEARCH_TIMEOUT = 60000;
|
|
2
5
|
export declare const DEFAULT_GATEWAY_SEARCH_INTERVAL = 300000;
|
|
6
|
+
export declare const DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL = 10000;
|
|
3
7
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,QAAS,CAAA;AACpD,eAAO,MAAM,+BAA+B,SAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uCAAuC,OAAQ,CAAA;AAC5D,eAAO,MAAM,sCAAsC,OAAQ,CAAA;AAC3D,eAAO,MAAM,+CAA+C,OAAQ,CAAA;AAEpE,eAAO,MAAM,8BAA8B,QAAS,CAAA;AACpD,eAAO,MAAM,+BAA+B,SAAU,CAAA;AACtD,eAAO,MAAM,uCAAuC,QAAS,CAAA"}
|
package/dist/src/constants.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export const DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL = 5_000;
|
|
2
|
+
export const DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT = 5_000;
|
|
3
|
+
export const DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL = 1_000;
|
|
1
4
|
export const DEFAULT_GATEWAY_SEARCH_TIMEOUT = 60_000;
|
|
2
5
|
export const DEFAULT_GATEWAY_SEARCH_INTERVAL = 300_000;
|
|
6
|
+
export const DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL = 10_000;
|
|
3
7
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAA;AACpD,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uCAAuC,GAAG,KAAK,CAAA;AAC5D,MAAM,CAAC,MAAM,sCAAsC,GAAG,KAAK,CAAA;AAC3D,MAAM,CAAC,MAAM,+CAA+C,GAAG,KAAK,CAAA;AAEpE,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAA;AACpD,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAA;AACtD,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAA"}
|
|
@@ -6,6 +6,12 @@ export interface GatewayFinderComponents {
|
|
|
6
6
|
}
|
|
7
7
|
export interface GatewayFinderInit {
|
|
8
8
|
portMappingClient: UPnPNAT;
|
|
9
|
+
initialSearchInterval?: number;
|
|
10
|
+
initialSearchTimeout?: number;
|
|
11
|
+
initialSearchMessageInterval?: number;
|
|
12
|
+
searchInterval?: number;
|
|
13
|
+
searchTimeout?: number;
|
|
14
|
+
searchMessageInterval?: number;
|
|
9
15
|
}
|
|
10
16
|
export interface GatewayFinderEvents {
|
|
11
17
|
'gateway': CustomEvent<Gateway>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-finder.d.ts","sourceRoot":"","sources":["../../src/gateway-finder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAe,MAAM,mBAAmB,CAAA;AAGlE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAGhE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"gateway-finder.d.ts","sourceRoot":"","sources":["../../src/gateway-finder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAe,MAAM,mBAAmB,CAAA;AAGlE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAGhE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;CAChC;AAED,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,mBAAmB,CAAC;IACvE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,iBAAiB;IAmDnE,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAS7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAI7B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TypedEventEmitter, start, stop } from '@libp2p/interface';
|
|
2
2
|
import { repeatingTask } from '@libp2p/utils/repeating-task';
|
|
3
|
-
import { DEFAULT_GATEWAY_SEARCH_INTERVAL, DEFAULT_GATEWAY_SEARCH_TIMEOUT } from './constants.js';
|
|
3
|
+
import { DEFAULT_GATEWAY_SEARCH_INTERVAL, DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL, DEFAULT_GATEWAY_SEARCH_TIMEOUT, DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL, DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL, DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT } from './constants.js';
|
|
4
4
|
export class GatewayFinder extends TypedEventEmitter {
|
|
5
5
|
log;
|
|
6
6
|
gateways;
|
|
@@ -15,24 +15,40 @@ export class GatewayFinder extends TypedEventEmitter {
|
|
|
15
15
|
this.gateways = [];
|
|
16
16
|
// every five minutes, search for network gateways for one minute
|
|
17
17
|
this.findGateways = repeatingTask(async (options) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
try {
|
|
19
|
+
const searchMessageInterval = this.gateways.length > 0
|
|
20
|
+
? init.searchMessageInterval ?? DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL
|
|
21
|
+
: init.initialSearchMessageInterval ?? DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL;
|
|
22
|
+
this.log('begin gateway search, sending M-SEARCH every %dms', searchMessageInterval);
|
|
23
|
+
for await (const gateway of this.portMappingClient.findGateways({
|
|
24
|
+
...options,
|
|
25
|
+
searchInterval: searchMessageInterval
|
|
24
26
|
})) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
if (this.gateways.some(g => {
|
|
28
|
+
return g.id === gateway.id && g.family === gateway.family;
|
|
29
|
+
})) {
|
|
30
|
+
// already seen this gateway
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
this.gateways.push(gateway);
|
|
34
|
+
this.safeDispatchEvent('gateway', {
|
|
35
|
+
detail: gateway
|
|
36
|
+
});
|
|
37
|
+
// we've found a gateway, wait for longer before searching again
|
|
38
|
+
const searchInterval = init.searchTimeout ?? DEFAULT_GATEWAY_SEARCH_INTERVAL;
|
|
39
|
+
const searchTimeout = init.searchTimeout ?? DEFAULT_GATEWAY_SEARCH_TIMEOUT;
|
|
40
|
+
this.log('switching gateway search to every %dms, timing out after %dms', searchInterval, searchTimeout);
|
|
41
|
+
this.findGateways.setInterval(searchInterval);
|
|
42
|
+
this.findGateways.setTimeout(searchTimeout);
|
|
27
43
|
}
|
|
28
|
-
this.gateways.
|
|
29
|
-
this.safeDispatchEvent('gateway', {
|
|
30
|
-
detail: gateway
|
|
31
|
-
});
|
|
44
|
+
this.log('gateway search finished, found %d gateways', this.gateways.length);
|
|
32
45
|
}
|
|
33
|
-
|
|
46
|
+
catch (err) {
|
|
47
|
+
this.log.error('gateway search errored - %e', err);
|
|
48
|
+
}
|
|
49
|
+
}, init.initialSearchInterval ?? DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL, {
|
|
34
50
|
runImmediately: true,
|
|
35
|
-
timeout:
|
|
51
|
+
timeout: init.initialSearchTimeout ?? DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT
|
|
36
52
|
});
|
|
37
53
|
}
|
|
38
54
|
async start() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-finder.js","sourceRoot":"","sources":["../../src/gateway-finder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"gateway-finder.js","sourceRoot":"","sources":["../../src/gateway-finder.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -97,6 +97,68 @@ export interface UPnPNATInit {
|
|
|
97
97
|
* @default false
|
|
98
98
|
*/
|
|
99
99
|
autoConfirmAddress?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* How often to search for network gateways in ms.
|
|
102
|
+
*
|
|
103
|
+
* This interval is used before a gateway has been found on the network, after
|
|
104
|
+
* that it switches to `gatewaySearchInterval` which lowers the frequency of
|
|
105
|
+
* the search.
|
|
106
|
+
*
|
|
107
|
+
* @default 5_000
|
|
108
|
+
*/
|
|
109
|
+
initialGatewaySearchInterval?: number;
|
|
110
|
+
/**
|
|
111
|
+
* How often to send the `M-SEARCH` SSDP message during a gateway search in
|
|
112
|
+
* ms.
|
|
113
|
+
*
|
|
114
|
+
* Some routers are flaky and may not respond to every query so decreasing
|
|
115
|
+
* this will increase the number of search messages sent before the timeout.
|
|
116
|
+
*
|
|
117
|
+
* This interval is used before a gateway has been found on the network, after
|
|
118
|
+
* that it switches to `gatewaySearchMessageInterval` which lowers the
|
|
119
|
+
* frequency of search messages sent.
|
|
120
|
+
*
|
|
121
|
+
* @default 1_000
|
|
122
|
+
*/
|
|
123
|
+
initialGatewaySearchMessageInterval?: number;
|
|
124
|
+
/**
|
|
125
|
+
* How long to search for gateways for before giving up in ms.
|
|
126
|
+
*
|
|
127
|
+
* This timeout is used before a gateway has been found on the network, after
|
|
128
|
+
* that it switches to `gatewaySearchTimeout` which increases the timeout to
|
|
129
|
+
* give gateways more time to respond.
|
|
130
|
+
*
|
|
131
|
+
* @default 5_000
|
|
132
|
+
*/
|
|
133
|
+
initialGatewaySearchTimeout?: number;
|
|
134
|
+
/**
|
|
135
|
+
* How often to search for network gateways in ms.
|
|
136
|
+
*
|
|
137
|
+
* This interval is used after a gateway has been found on the network.
|
|
138
|
+
*
|
|
139
|
+
* @default 300_000
|
|
140
|
+
*/
|
|
141
|
+
gatewaySearchInterval?: number;
|
|
142
|
+
/**
|
|
143
|
+
* How often to send the `M-SEARCH` SSDP message during a gateway search in
|
|
144
|
+
* ms.
|
|
145
|
+
*
|
|
146
|
+
* Some routers are flaky and may not respond to every query so decreasing
|
|
147
|
+
* this will increase the number of search messages sent before the timeout.
|
|
148
|
+
*
|
|
149
|
+
* This interval is used after a gateway has been found on the network.
|
|
150
|
+
*
|
|
151
|
+
* @default 10_000
|
|
152
|
+
*/
|
|
153
|
+
gatewaySearchMessageInterval?: number;
|
|
154
|
+
/**
|
|
155
|
+
* How long to search for gateways for before giving up in ms.
|
|
156
|
+
*
|
|
157
|
+
* This timeout is used after a gateway has been found on the network.
|
|
158
|
+
*
|
|
159
|
+
* @default 60_000
|
|
160
|
+
*/
|
|
161
|
+
gatewaySearchTimeout?: number;
|
|
100
162
|
}
|
|
101
163
|
export interface UPnPNATComponents {
|
|
102
164
|
peerId: PeerId;
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAE7C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAA;IAEpC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAA;IAEpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAA;IAEjC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAE7C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAA;IAEpC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAA;IAEpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAA;IAEjC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;;;;;;;OAQG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC;;;;;;;;;;;;OAYG;IACH,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAE5C;;;;;;;;OAQG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAA;IAEpC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;;;;;OAUG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,OAAO;IACtB,iBAAiB,EAAE,aAAa,CAAA;CACjC;AAED,wBAAgB,OAAO,CAAE,IAAI,GAAE,WAAgB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAI3F"}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AA4JvD,MAAM,UAAU,OAAO,CAAE,OAAoB,EAAE;IAC7C,OAAO,CAAC,UAA6B,EAAE,EAAE;QACvC,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upnp-nat.d.ts","sourceRoot":"","sources":["../../src/upnp-nat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAgC,MAAM,mBAAmB,CAAA;AAI1G,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7F,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG1D,qBAAa,OAAQ,YAAW,SAAS,EAAE,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,OAAO,CAAS;IACjB,iBAAiB,EAAE,aAAa,CAAA;IACvC,OAAO,CAAC,kBAAkB,CAAC,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAE/B,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"upnp-nat.d.ts","sourceRoot":"","sources":["../../src/upnp-nat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAgC,MAAM,mBAAmB,CAAA;AAI1G,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7F,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG1D,qBAAa,OAAQ,YAAW,SAAS,EAAE,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,OAAO,CAAS;IACjB,iBAAiB,EAAE,aAAa,CAAA;IACvC,OAAO,CAAC,kBAAkB,CAAC,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAE/B,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW;IAsC7D,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAqB;IAElD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,IAAI,CAAC,mBAAmB,CAAC,IAAK,MAAM,EAAE,CAQrC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAa7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ5B,mBAAmB,CAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAejD,cAAc,IAAK,OAAO,CAAC,IAAI,CAAC;CAWvC"}
|
package/dist/src/upnp-nat.js
CHANGED
|
@@ -38,7 +38,13 @@ export class UPnPNAT {
|
|
|
38
38
|
}, 5_000);
|
|
39
39
|
// trigger update when we discovery gateways on the network
|
|
40
40
|
this.gatewayFinder = new GatewayFinder(components, {
|
|
41
|
-
portMappingClient: this.portMappingClient
|
|
41
|
+
portMappingClient: this.portMappingClient,
|
|
42
|
+
initialSearchInterval: init.initialGatewaySearchInterval,
|
|
43
|
+
initialSearchTimeout: init.initialGatewaySearchTimeout,
|
|
44
|
+
initialSearchMessageInterval: init.initialGatewaySearchMessageInterval,
|
|
45
|
+
searchInterval: init.gatewaySearchInterval,
|
|
46
|
+
searchTimeout: init.gatewaySearchTimeout,
|
|
47
|
+
searchMessageInterval: init.gatewaySearchMessageInterval
|
|
42
48
|
});
|
|
43
49
|
this.onGatewayDiscovered = this.onGatewayDiscovered.bind(this);
|
|
44
50
|
}
|
package/dist/src/upnp-nat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upnp-nat.js","sourceRoot":"","sources":["../../src/upnp-nat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAMtD,MAAM,OAAO,OAAO;IACD,GAAG,CAAQ;IACX,UAAU,CAAmB;IAC7B,IAAI,CAAa;IAC1B,OAAO,CAAS;IACjB,iBAAiB,CAAe;IAC/B,kBAAkB,CAAkB;IAC3B,uBAAuB,CAAmB;IAC1C,aAAa,CAAe;IAC5B,WAAW,CAAkB;IAC7B,kBAAkB,CAAS;IAE5C,YAAa,UAA6B,EAAE,IAAiB;QAC3D,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QAC5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAA;QAE1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC;YACzD,WAAW,EAAE,IAAI,CAAC,sBAAsB,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;YACxI,GAAG,EAAE,IAAI,CAAC,cAAc;YACxB,WAAW,EAAE,IAAI,CAAC,sBAAsB;YACxC,gBAAgB,EAAE,IAAI,CAAC,2BAA2B;SACnD,CAAC,CAAA;QAEF,2CAA2C;QAC3C,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;YACjD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;YAC7B,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;YACxD,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAA;QAET,2DAA2D;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,EAAE;YACjD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"upnp-nat.js","sourceRoot":"","sources":["../../src/upnp-nat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/upnp-nat",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.5-66c3ec5e1",
|
|
4
4
|
"description": "UPnP NAT hole punching",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/upnp-nat#readme",
|
|
@@ -52,18 +52,18 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@achingbrain/nat-port-mapper": "^4.0.0",
|
|
54
54
|
"@chainsafe/is-ip": "^2.0.2",
|
|
55
|
-
"@libp2p/interface": "
|
|
56
|
-
"@libp2p/interface-internal": "
|
|
57
|
-
"@libp2p/utils": "
|
|
55
|
+
"@libp2p/interface": "2.4.1-66c3ec5e1",
|
|
56
|
+
"@libp2p/interface-internal": "2.2.3-66c3ec5e1",
|
|
57
|
+
"@libp2p/utils": "6.4.0-66c3ec5e1",
|
|
58
58
|
"@multiformats/multiaddr": "^12.3.3",
|
|
59
59
|
"@multiformats/multiaddr-matcher": "^1.6.0",
|
|
60
60
|
"p-defer": "^4.0.1",
|
|
61
61
|
"race-signal": "^1.1.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@libp2p/crypto": "
|
|
65
|
-
"@libp2p/logger": "
|
|
66
|
-
"@libp2p/peer-id": "
|
|
64
|
+
"@libp2p/crypto": "5.0.10-66c3ec5e1",
|
|
65
|
+
"@libp2p/logger": "5.1.7-66c3ec5e1",
|
|
66
|
+
"@libp2p/peer-id": "5.0.11-66c3ec5e1",
|
|
67
67
|
"aegir": "^45.0.5",
|
|
68
68
|
"sinon-ts": "^2.0.0"
|
|
69
69
|
},
|
package/src/constants.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
export const DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL = 5_000
|
|
2
|
+
export const DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT = 5_000
|
|
3
|
+
export const DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL = 1_000
|
|
4
|
+
|
|
1
5
|
export const DEFAULT_GATEWAY_SEARCH_TIMEOUT = 60_000
|
|
2
6
|
export const DEFAULT_GATEWAY_SEARCH_INTERVAL = 300_000
|
|
7
|
+
export const DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL = 10_000
|
package/src/gateway-finder.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TypedEventEmitter, start, stop } from '@libp2p/interface'
|
|
2
2
|
import { repeatingTask } from '@libp2p/utils/repeating-task'
|
|
3
|
-
import { DEFAULT_GATEWAY_SEARCH_INTERVAL, DEFAULT_GATEWAY_SEARCH_TIMEOUT } from './constants.js'
|
|
3
|
+
import { DEFAULT_GATEWAY_SEARCH_INTERVAL, DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL, DEFAULT_GATEWAY_SEARCH_TIMEOUT, DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL, DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL, DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT } from './constants.js'
|
|
4
4
|
import type { Gateway, UPnPNAT } from '@achingbrain/nat-port-mapper'
|
|
5
5
|
import type { ComponentLogger, Logger } from '@libp2p/interface'
|
|
6
6
|
import type { RepeatingTask } from '@libp2p/utils/repeating-task'
|
|
@@ -11,6 +11,12 @@ export interface GatewayFinderComponents {
|
|
|
11
11
|
|
|
12
12
|
export interface GatewayFinderInit {
|
|
13
13
|
portMappingClient: UPnPNAT
|
|
14
|
+
initialSearchInterval?: number
|
|
15
|
+
initialSearchTimeout?: number
|
|
16
|
+
initialSearchMessageInterval?: number
|
|
17
|
+
searchInterval?: number
|
|
18
|
+
searchTimeout?: number
|
|
19
|
+
searchMessageInterval?: number
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
export interface GatewayFinderEvents {
|
|
@@ -34,25 +40,44 @@ export class GatewayFinder extends TypedEventEmitter<GatewayFinderEvents> {
|
|
|
34
40
|
|
|
35
41
|
// every five minutes, search for network gateways for one minute
|
|
36
42
|
this.findGateways = repeatingTask(async (options) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
try {
|
|
44
|
+
const searchMessageInterval = this.gateways.length > 0
|
|
45
|
+
? init.searchMessageInterval ?? DEFAULT_GATEWAY_SEARCH_MESSAGE_INTERVAL
|
|
46
|
+
: init.initialSearchMessageInterval ?? DEFAULT_INITIAL_GATEWAY_SEARCH_MESSAGE_INTERVAL
|
|
47
|
+
|
|
48
|
+
this.log('begin gateway search, sending M-SEARCH every %dms', searchMessageInterval)
|
|
49
|
+
|
|
50
|
+
for await (const gateway of this.portMappingClient.findGateways({
|
|
51
|
+
...options,
|
|
52
|
+
searchInterval: searchMessageInterval
|
|
43
53
|
})) {
|
|
44
|
-
|
|
45
|
-
|
|
54
|
+
if (this.gateways.some(g => {
|
|
55
|
+
return g.id === gateway.id && g.family === gateway.family
|
|
56
|
+
})) {
|
|
57
|
+
// already seen this gateway
|
|
58
|
+
continue
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
this.gateways.push(gateway)
|
|
62
|
+
this.safeDispatchEvent('gateway', {
|
|
63
|
+
detail: gateway
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
// we've found a gateway, wait for longer before searching again
|
|
67
|
+
const searchInterval = init.searchTimeout ?? DEFAULT_GATEWAY_SEARCH_INTERVAL
|
|
68
|
+
const searchTimeout = init.searchTimeout ?? DEFAULT_GATEWAY_SEARCH_TIMEOUT
|
|
69
|
+
this.log('switching gateway search to every %dms, timing out after %dms', searchInterval, searchTimeout)
|
|
70
|
+
this.findGateways.setInterval(searchInterval)
|
|
71
|
+
this.findGateways.setTimeout(searchTimeout)
|
|
46
72
|
}
|
|
47
73
|
|
|
48
|
-
this.gateways.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
})
|
|
74
|
+
this.log('gateway search finished, found %d gateways', this.gateways.length)
|
|
75
|
+
} catch (err) {
|
|
76
|
+
this.log.error('gateway search errored - %e', err)
|
|
52
77
|
}
|
|
53
|
-
},
|
|
78
|
+
}, init.initialSearchInterval ?? DEFAULT_INITIAL_GATEWAY_SEARCH_INTERVAL, {
|
|
54
79
|
runImmediately: true,
|
|
55
|
-
timeout:
|
|
80
|
+
timeout: init.initialSearchTimeout ?? DEFAULT_INITIAL_GATEWAY_SEARCH_TIMEOUT
|
|
56
81
|
})
|
|
57
82
|
}
|
|
58
83
|
|
package/src/index.ts
CHANGED
|
@@ -109,6 +109,74 @@ export interface UPnPNATInit {
|
|
|
109
109
|
* @default false
|
|
110
110
|
*/
|
|
111
111
|
autoConfirmAddress?: boolean
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* How often to search for network gateways in ms.
|
|
115
|
+
*
|
|
116
|
+
* This interval is used before a gateway has been found on the network, after
|
|
117
|
+
* that it switches to `gatewaySearchInterval` which lowers the frequency of
|
|
118
|
+
* the search.
|
|
119
|
+
*
|
|
120
|
+
* @default 5_000
|
|
121
|
+
*/
|
|
122
|
+
initialGatewaySearchInterval?: number
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* How often to send the `M-SEARCH` SSDP message during a gateway search in
|
|
126
|
+
* ms.
|
|
127
|
+
*
|
|
128
|
+
* Some routers are flaky and may not respond to every query so decreasing
|
|
129
|
+
* this will increase the number of search messages sent before the timeout.
|
|
130
|
+
*
|
|
131
|
+
* This interval is used before a gateway has been found on the network, after
|
|
132
|
+
* that it switches to `gatewaySearchMessageInterval` which lowers the
|
|
133
|
+
* frequency of search messages sent.
|
|
134
|
+
*
|
|
135
|
+
* @default 1_000
|
|
136
|
+
*/
|
|
137
|
+
initialGatewaySearchMessageInterval?: number
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* How long to search for gateways for before giving up in ms.
|
|
141
|
+
*
|
|
142
|
+
* This timeout is used before a gateway has been found on the network, after
|
|
143
|
+
* that it switches to `gatewaySearchTimeout` which increases the timeout to
|
|
144
|
+
* give gateways more time to respond.
|
|
145
|
+
*
|
|
146
|
+
* @default 5_000
|
|
147
|
+
*/
|
|
148
|
+
initialGatewaySearchTimeout?: number
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* How often to search for network gateways in ms.
|
|
152
|
+
*
|
|
153
|
+
* This interval is used after a gateway has been found on the network.
|
|
154
|
+
*
|
|
155
|
+
* @default 300_000
|
|
156
|
+
*/
|
|
157
|
+
gatewaySearchInterval?: number
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* How often to send the `M-SEARCH` SSDP message during a gateway search in
|
|
161
|
+
* ms.
|
|
162
|
+
*
|
|
163
|
+
* Some routers are flaky and may not respond to every query so decreasing
|
|
164
|
+
* this will increase the number of search messages sent before the timeout.
|
|
165
|
+
*
|
|
166
|
+
* This interval is used after a gateway has been found on the network.
|
|
167
|
+
*
|
|
168
|
+
* @default 10_000
|
|
169
|
+
*/
|
|
170
|
+
gatewaySearchMessageInterval?: number
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* How long to search for gateways for before giving up in ms.
|
|
174
|
+
*
|
|
175
|
+
* This timeout is used after a gateway has been found on the network.
|
|
176
|
+
*
|
|
177
|
+
* @default 60_000
|
|
178
|
+
*/
|
|
179
|
+
gatewaySearchTimeout?: number
|
|
112
180
|
}
|
|
113
181
|
|
|
114
182
|
export interface UPnPNATComponents {
|
package/src/upnp-nat.ts
CHANGED
|
@@ -46,7 +46,13 @@ export class UPnPNAT implements Startable, UPnPNATInterface {
|
|
|
46
46
|
|
|
47
47
|
// trigger update when we discovery gateways on the network
|
|
48
48
|
this.gatewayFinder = new GatewayFinder(components, {
|
|
49
|
-
portMappingClient: this.portMappingClient
|
|
49
|
+
portMappingClient: this.portMappingClient,
|
|
50
|
+
initialSearchInterval: init.initialGatewaySearchInterval,
|
|
51
|
+
initialSearchTimeout: init.initialGatewaySearchTimeout,
|
|
52
|
+
initialSearchMessageInterval: init.initialGatewaySearchMessageInterval,
|
|
53
|
+
searchInterval: init.gatewaySearchInterval,
|
|
54
|
+
searchTimeout: init.gatewaySearchTimeout,
|
|
55
|
+
searchMessageInterval: init.gatewaySearchMessageInterval
|
|
50
56
|
})
|
|
51
57
|
|
|
52
58
|
this.onGatewayDiscovered = this.onGatewayDiscovered.bind(this)
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"PMPOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.PMPOptions.html",
|
|
3
|
-
".:PMPOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.PMPOptions.html",
|
|
4
|
-
"UPnPNAT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.UPnPNAT.html",
|
|
5
|
-
".:UPnPNAT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.UPnPNAT.html",
|
|
6
|
-
"UPnPNATComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.UPnPNATComponents.html",
|
|
7
|
-
".:UPnPNATComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.UPnPNATComponents.html",
|
|
8
|
-
"UPnPNATInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.UPnPNATInit.html",
|
|
9
|
-
".:UPnPNATInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_upnp_nat.UPnPNATInit.html",
|
|
10
|
-
"uPnPNAT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_upnp_nat.uPnPNAT-1.html",
|
|
11
|
-
".:uPnPNAT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_upnp_nat.uPnPNAT-1.html"
|
|
12
|
-
}
|