@libp2p/upnp-nat 3.1.21 → 3.1.22-8484de8a2
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/check-external-address.d.ts.map +1 -1
- package/dist/src/check-external-address.js +5 -3
- package/dist/src/check-external-address.js.map +1 -1
- package/dist/src/search-gateway-finder.js +1 -1
- package/dist/src/search-gateway-finder.js.map +1 -1
- package/dist/src/upnp-nat.js +1 -1
- package/dist/src/upnp-nat.js.map +1 -1
- package/dist/src/upnp-port-mapper.d.ts.map +1 -1
- package/dist/src/upnp-port-mapper.js +16 -17
- package/dist/src/upnp-port-mapper.js.map +1 -1
- package/package.json +12 -12
- package/src/check-external-address.ts +6 -4
- package/src/search-gateway-finder.ts +2 -2
- package/src/upnp-nat.ts +2 -2
- package/src/upnp-port-mapper.ts +17 -18
- package/dist/typedoc-urls.json +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-external-address.d.ts","sourceRoot":"","sources":["../../src/check-external-address.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAIhE,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB,CAAC,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CAC/D;
|
|
1
|
+
{"version":3,"file":"check-external-address.d.ts","sourceRoot":"","sources":["../../src/check-external-address.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAIhE,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB,CAAC,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CAC/D;AA0FD,wBAAgB,sBAAsB,CAAE,UAAU,EAAE,gCAAgC,EAAE,IAAI,EAAE,0BAA0B,GAAG,eAAe,CAEvI;AAED,wBAAgB,qBAAqB,CAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAIvE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NotStartedError, start, stop } from '@libp2p/interface';
|
|
2
|
-
import { repeatingTask } from '@libp2p/utils
|
|
1
|
+
import { NotStartedError, start, stop, TimeoutError } from '@libp2p/interface';
|
|
2
|
+
import { repeatingTask } from '@libp2p/utils';
|
|
3
3
|
import pDefer from 'p-defer';
|
|
4
4
|
import { raceSignal } from 'race-signal';
|
|
5
5
|
/**
|
|
@@ -47,7 +47,9 @@ class ExternalAddressChecker {
|
|
|
47
47
|
}
|
|
48
48
|
this.lastPublicIpPromise = pDefer();
|
|
49
49
|
return raceSignal(this.lastPublicIpPromise.promise, options?.signal, {
|
|
50
|
-
|
|
50
|
+
translateError: () => {
|
|
51
|
+
return new TimeoutError('Requesting the public IP from the network gateway timed out - UPnP may not be enabled');
|
|
52
|
+
}
|
|
51
53
|
});
|
|
52
54
|
}
|
|
53
55
|
async checkExternalAddress(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-external-address.js","sourceRoot":"","sources":["../../src/check-external-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"check-external-address.js","sourceRoot":"","sources":["../../src/check-external-address.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { start, stop } from '@libp2p/interface';
|
|
2
|
-
import { repeatingTask } from '@libp2p/utils
|
|
2
|
+
import { repeatingTask } from '@libp2p/utils';
|
|
3
3
|
import { TypedEventEmitter } from 'main-event';
|
|
4
4
|
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';
|
|
5
5
|
export class SearchGatewayFinder extends TypedEventEmitter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-gateway-finder.js","sourceRoot":"","sources":["../../src/search-gateway-finder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"search-gateway-finder.js","sourceRoot":"","sources":["../../src/search-gateway-finder.ts"],"names":[],"mappings":"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"}
|
package/dist/src/upnp-nat.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { upnpNat } from '@achingbrain/nat-port-mapper';
|
|
2
2
|
import { serviceCapabilities, serviceDependencies, start, stop } from '@libp2p/interface';
|
|
3
|
-
import { debounce } from '@libp2p/utils
|
|
3
|
+
import { debounce } from '@libp2p/utils';
|
|
4
4
|
import { setMaxListeners } from 'main-event';
|
|
5
5
|
import { SearchGatewayFinder } from './search-gateway-finder.js';
|
|
6
6
|
import { StaticGatewayFinder } from './static-gateway-finder.js';
|
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,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"upnp-nat.js","sourceRoot":"","sources":["../../src/upnp-nat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upnp-port-mapper.d.ts","sourceRoot":"","sources":["../../src/upnp-port-mapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upnp-port-mapper.d.ts","sourceRoot":"","sources":["../../src/upnp-port-mapper.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,4BAA4B,CAAA;AAK7E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAOD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,kBAAkB;IAuBrE,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IASvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAe5B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+CtB,cAAc,CAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkE/D;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { isIPv4 } from '@chainsafe/is-ip';
|
|
2
2
|
import { InvalidParametersError, start, stop } from '@libp2p/interface';
|
|
3
|
-
import { isLinkLocal } from '@libp2p/utils
|
|
4
|
-
import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback';
|
|
5
|
-
import { isPrivate } from '@libp2p/utils/multiaddr/is-private';
|
|
6
|
-
import { isPrivateIp } from '@libp2p/utils/private-ip';
|
|
3
|
+
import { getNetConfig, isLinkLocal, isLoopback, isPrivate, isPrivateIp } from '@libp2p/utils';
|
|
7
4
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
8
5
|
import { QUIC_V1, TCP, WebSockets, WebSocketsSecure, WebTransport } from '@multiformats/multiaddr-matcher';
|
|
9
6
|
import { dynamicExternalAddress, staticExternalAddress } from './check-external-address.js';
|
|
@@ -79,8 +76,8 @@ export class UPnPPortMapper {
|
|
|
79
76
|
if (type !== 'transport') {
|
|
80
77
|
continue;
|
|
81
78
|
}
|
|
82
|
-
const
|
|
83
|
-
const address =
|
|
79
|
+
const config = getNetConfig(ma);
|
|
80
|
+
const address = config.host;
|
|
84
81
|
// ignore public IPv4 addresses
|
|
85
82
|
if (isIPv4(address) && !isPrivate(ma)) {
|
|
86
83
|
continue;
|
|
@@ -101,8 +98,7 @@ export class UPnPPortMapper {
|
|
|
101
98
|
if (!this.isIPAddress(ma)) {
|
|
102
99
|
continue;
|
|
103
100
|
}
|
|
104
|
-
|
|
105
|
-
if (this.mappedPorts.has(`${port}-${transport}`)) {
|
|
101
|
+
if (this.mappedPorts.has(`${config.port}-${config.protocol}`)) {
|
|
106
102
|
continue;
|
|
107
103
|
}
|
|
108
104
|
output.push(ma);
|
|
@@ -123,29 +119,32 @@ export class UPnPPortMapper {
|
|
|
123
119
|
this.assertNotBehindDoubleNAT(externalHost);
|
|
124
120
|
for (const addr of addresses) {
|
|
125
121
|
// try to open uPnP ports for each thin waist address
|
|
126
|
-
const { port, host,
|
|
122
|
+
const { port, host, protocol, type } = getNetConfig(addr);
|
|
123
|
+
if (port == null || protocol == null || (type !== 'ip4' && type !== 'ip6')) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
127
126
|
// don't try to open port on IPv6 host via IPv4 gateway
|
|
128
|
-
if (
|
|
127
|
+
if (type === 'ip4' && this.gateway.family !== 'IPv4') {
|
|
129
128
|
continue;
|
|
130
129
|
}
|
|
131
130
|
// don't try to open port on IPv4 host via IPv6 gateway
|
|
132
|
-
if (
|
|
131
|
+
if (type === 'ip6' && this.gateway.family !== 'IPv6') {
|
|
133
132
|
continue;
|
|
134
133
|
}
|
|
135
|
-
const key = `${host}-${port}-${
|
|
134
|
+
const key = `${host}-${port}-${protocol}`;
|
|
136
135
|
if (this.mappedPorts.has(key)) {
|
|
137
136
|
// already mapped this port
|
|
138
137
|
continue;
|
|
139
138
|
}
|
|
140
139
|
try {
|
|
141
140
|
const mapping = await this.gateway.map(port, host, {
|
|
142
|
-
protocol:
|
|
141
|
+
protocol: protocol === 'tcp' ? 'TCP' : 'UDP'
|
|
143
142
|
});
|
|
144
143
|
this.mappedPorts.set(key, mapping);
|
|
145
|
-
this.addressManager.addPublicAddressMapping(mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort,
|
|
146
|
-
this.log('created mapping of %s:%s to %s:%s for protocol %s', mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort,
|
|
144
|
+
this.addressManager.addPublicAddressMapping(mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort, protocol === 'tcp' ? 'tcp' : 'udp');
|
|
145
|
+
this.log('created mapping of %s:%s to %s:%s for protocol %s', mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort, protocol);
|
|
147
146
|
if (options?.autoConfirmAddress === true) {
|
|
148
|
-
const ma = multiaddr(`/ip${isIPv4(mapping.externalHost) ? 4 : 6}/${mapping.externalHost}/${
|
|
147
|
+
const ma = multiaddr(`/ip${isIPv4(mapping.externalHost) ? 4 : 6}/${mapping.externalHost}/${protocol}/${mapping.externalPort}`);
|
|
149
148
|
this.log('auto-confirming IP address %a', ma);
|
|
150
149
|
this.addressManager.confirmObservedAddr(ma, {
|
|
151
150
|
ttl: MAX_DATE - Date.now()
|
|
@@ -153,7 +152,7 @@ export class UPnPPortMapper {
|
|
|
153
152
|
}
|
|
154
153
|
}
|
|
155
154
|
catch (err) {
|
|
156
|
-
this.log.error('failed to create mapping for %s:%d for protocol - %e', host, port,
|
|
155
|
+
this.log.error('failed to create mapping for %s:%d for protocol - %e', host, port, protocol, err);
|
|
157
156
|
}
|
|
158
157
|
}
|
|
159
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upnp-port-mapper.js","sourceRoot":"","sources":["../../src/upnp-port-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"upnp-port-mapper.js","sourceRoot":"","sources":["../../src/upnp-port-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC1G,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAO5C,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAuBtC,MAAM,OAAO,cAAc;IACR,OAAO,CAAS;IAChB,eAAe,CAAiB;IAChC,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IACX,WAAW,CAA0B;IAC9C,OAAO,CAAS;IAExB,YAAa,UAAoC,EAAE,IAAwB;QACzE,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QACvF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE3B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,sBAAsB,CAAC;gBAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,EAAE;gBACD,QAAQ,EAAE,IAAI,CAAC,4BAA4B;gBAC3C,OAAO,EAAE,IAAI,CAAC,2BAA2B;gBACzC,uBAAuB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;aACpD,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEjD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,MAAM,EAAE,eAAe;aACxB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED;;;OAGG;IACK,UAAU,CAAE,eAAuB;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/E,MAAM,CACJ,IAAI,EACJ,IAAI,EACJ,SAAS,CACV,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAElB,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACrI,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACvI,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAE,UAAyB,EAAE,eAAyB;QAChF,MAAM,MAAM,GAAgB,EAAE,CAAA;QAE9B,KAAK,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;YACjD,kEAAkE;YAClE,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,SAAQ;YACV,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;YAE3B,+BAA+B;YAC/B,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,SAAQ;YACV,CAAC;YAED,uEAAuE;YACvE,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,SAAQ;YACV,CAAC;YAED,kBAAkB;YAClB,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnB,SAAQ;YACV,CAAC;YAED,8BAA8B;YAC9B,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,SAAQ;YACV,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC9D,SAAQ;YACV,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,OAAyB;QAC7C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAA;YAE7D,yEAAyE;YACzE,qBAAqB;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;YAE3G,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;gBACrE,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAA;YAEjD,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAA;YAE3C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,qDAAqD;gBACrD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;gBAEzD,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC3E,SAAQ;gBACV,CAAC;gBAED,uDAAuD;gBACvD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrD,SAAQ;gBACV,CAAC;gBAED,uDAAuD;gBACvD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrD,SAAQ;gBACV,CAAC;gBAED,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAA;gBAEzC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9B,2BAA2B;oBAC3B,SAAQ;gBACV,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;wBACjD,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;qBAC7C,CAAC,CAAA;oBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;oBAClC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;oBACvK,IAAI,CAAC,GAAG,CAAC,mDAAmD,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;oBAE/J,IAAI,OAAO,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC;wBACzC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,YAAY,IAAI,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;wBAC9H,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAA;wBAC7C,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE;4BAC1C,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;yBAC3B,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sDAAsD,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;gBACnG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAE,QAAgB;QAChD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QAEvC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,cAAc,CAAC,GAAG,QAAQ,qIAAqI,CAAC,CAAA;QAC5K,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAsB,CAAC,GAAG,QAAQ,uBAAuB,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAEO,WAAW,CAAE,EAAa;QAChC,OAAO,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/upnp-nat",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.22-8484de8a2",
|
|
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",
|
|
@@ -47,22 +47,22 @@
|
|
|
47
47
|
"test:electron-main": "aegir test -t electron-main"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@achingbrain/nat-port-mapper": "^4.0.
|
|
50
|
+
"@achingbrain/nat-port-mapper": "^4.0.4",
|
|
51
51
|
"@chainsafe/is-ip": "^2.1.0",
|
|
52
|
-
"@libp2p/interface": "
|
|
53
|
-
"@libp2p/interface-internal": "
|
|
54
|
-
"@libp2p/utils": "
|
|
55
|
-
"@multiformats/multiaddr": "^
|
|
56
|
-
"@multiformats/multiaddr-matcher": "^
|
|
52
|
+
"@libp2p/interface": "2.11.0-8484de8a2",
|
|
53
|
+
"@libp2p/interface-internal": "2.3.19-8484de8a2",
|
|
54
|
+
"@libp2p/utils": "6.7.2-8484de8a2",
|
|
55
|
+
"@multiformats/multiaddr": "^13.0.1",
|
|
56
|
+
"@multiformats/multiaddr-matcher": "^3.0.1",
|
|
57
57
|
"main-event": "^1.0.1",
|
|
58
58
|
"p-defer": "^4.0.1",
|
|
59
|
-
"race-signal": "^
|
|
59
|
+
"race-signal": "^2.0.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@libp2p/crypto": "
|
|
63
|
-
"@libp2p/logger": "
|
|
64
|
-
"@libp2p/peer-id": "
|
|
65
|
-
"aegir": "^47.0.
|
|
62
|
+
"@libp2p/crypto": "5.1.8-8484de8a2",
|
|
63
|
+
"@libp2p/logger": "5.2.0-8484de8a2",
|
|
64
|
+
"@libp2p/peer-id": "5.1.9-8484de8a2",
|
|
65
|
+
"aegir": "^47.0.21",
|
|
66
66
|
"sinon-ts": "^2.0.0",
|
|
67
67
|
"wherearewe": "^2.0.1"
|
|
68
68
|
},
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { NotStartedError, start, stop } from '@libp2p/interface'
|
|
2
|
-
import { repeatingTask } from '@libp2p/utils
|
|
1
|
+
import { NotStartedError, start, stop, TimeoutError } from '@libp2p/interface'
|
|
2
|
+
import { repeatingTask } from '@libp2p/utils'
|
|
3
3
|
import pDefer from 'p-defer'
|
|
4
4
|
import { raceSignal } from 'race-signal'
|
|
5
5
|
import type { Gateway } from '@achingbrain/nat-port-mapper'
|
|
6
6
|
import type { AbortOptions, ComponentLogger, Logger, Startable } from '@libp2p/interface'
|
|
7
7
|
import type { AddressManager } from '@libp2p/interface-internal'
|
|
8
|
-
import type { RepeatingTask } from '@libp2p/utils
|
|
8
|
+
import type { RepeatingTask } from '@libp2p/utils'
|
|
9
9
|
import type { DeferredPromise } from 'p-defer'
|
|
10
10
|
|
|
11
11
|
export interface ExternalAddressCheckerComponents {
|
|
@@ -79,7 +79,9 @@ class ExternalAddressChecker implements ExternalAddress, Startable {
|
|
|
79
79
|
this.lastPublicIpPromise = pDefer()
|
|
80
80
|
|
|
81
81
|
return raceSignal(this.lastPublicIpPromise.promise, options?.signal, {
|
|
82
|
-
|
|
82
|
+
translateError: () => {
|
|
83
|
+
return new TimeoutError('Requesting the public IP from the network gateway timed out - UPnP may not be enabled')
|
|
84
|
+
}
|
|
83
85
|
})
|
|
84
86
|
}
|
|
85
87
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { start, stop } from '@libp2p/interface'
|
|
2
|
-
import { repeatingTask } from '@libp2p/utils
|
|
2
|
+
import { repeatingTask } from '@libp2p/utils'
|
|
3
3
|
import { TypedEventEmitter } from 'main-event'
|
|
4
4
|
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'
|
|
5
5
|
import type { GatewayFinder, GatewayFinderEvents } from './upnp-nat.js'
|
|
6
6
|
import type { Gateway, UPnPNAT } from '@achingbrain/nat-port-mapper'
|
|
7
7
|
import type { ComponentLogger, Logger } from '@libp2p/interface'
|
|
8
|
-
import type { RepeatingTask } from '@libp2p/utils
|
|
8
|
+
import type { RepeatingTask } from '@libp2p/utils'
|
|
9
9
|
|
|
10
10
|
export interface SearchGatewayFinderComponents {
|
|
11
11
|
logger: ComponentLogger
|
package/src/upnp-nat.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { upnpNat } from '@achingbrain/nat-port-mapper'
|
|
2
2
|
import { serviceCapabilities, serviceDependencies, start, stop } from '@libp2p/interface'
|
|
3
|
-
import { debounce } from '@libp2p/utils
|
|
3
|
+
import { debounce } from '@libp2p/utils'
|
|
4
4
|
import { setMaxListeners } from 'main-event'
|
|
5
5
|
import { SearchGatewayFinder } from './search-gateway-finder.js'
|
|
6
6
|
import { StaticGatewayFinder } from './static-gateway-finder.js'
|
|
@@ -8,7 +8,7 @@ import { UPnPPortMapper } from './upnp-port-mapper.js'
|
|
|
8
8
|
import type { UPnPNATComponents, UPnPNATInit, UPnPNAT as UPnPNATInterface } from './index.js'
|
|
9
9
|
import type { Gateway, UPnPNAT as UPnPNATClient } from '@achingbrain/nat-port-mapper'
|
|
10
10
|
import type { Logger, Startable } from '@libp2p/interface'
|
|
11
|
-
import type { DebouncedFunction } from '@libp2p/utils
|
|
11
|
+
import type { DebouncedFunction } from '@libp2p/utils'
|
|
12
12
|
import type { TypedEventTarget } from 'main-event'
|
|
13
13
|
|
|
14
14
|
export interface GatewayFinderEvents {
|
package/src/upnp-port-mapper.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { isIPv4 } from '@chainsafe/is-ip'
|
|
2
2
|
import { InvalidParametersError, start, stop } from '@libp2p/interface'
|
|
3
|
-
import { isLinkLocal } from '@libp2p/utils
|
|
4
|
-
import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback'
|
|
5
|
-
import { isPrivate } from '@libp2p/utils/multiaddr/is-private'
|
|
6
|
-
import { isPrivateIp } from '@libp2p/utils/private-ip'
|
|
3
|
+
import { getNetConfig, isLinkLocal, isLoopback, isPrivate, isPrivateIp } from '@libp2p/utils'
|
|
7
4
|
import { multiaddr } from '@multiformats/multiaddr'
|
|
8
5
|
import { QUIC_V1, TCP, WebSockets, WebSocketsSecure, WebTransport } from '@multiformats/multiaddr-matcher'
|
|
9
6
|
import { dynamicExternalAddress, staticExternalAddress } from './check-external-address.js'
|
|
@@ -121,8 +118,8 @@ export class UPnPPortMapper {
|
|
|
121
118
|
continue
|
|
122
119
|
}
|
|
123
120
|
|
|
124
|
-
const
|
|
125
|
-
const address =
|
|
121
|
+
const config = getNetConfig(ma)
|
|
122
|
+
const address = config.host
|
|
126
123
|
|
|
127
124
|
// ignore public IPv4 addresses
|
|
128
125
|
if (isIPv4(address) && !isPrivate(ma)) {
|
|
@@ -149,9 +146,7 @@ export class UPnPPortMapper {
|
|
|
149
146
|
continue
|
|
150
147
|
}
|
|
151
148
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if (this.mappedPorts.has(`${port}-${transport}`)) {
|
|
149
|
+
if (this.mappedPorts.has(`${config.port}-${config.protocol}`)) {
|
|
155
150
|
continue
|
|
156
151
|
}
|
|
157
152
|
|
|
@@ -180,19 +175,23 @@ export class UPnPPortMapper {
|
|
|
180
175
|
|
|
181
176
|
for (const addr of addresses) {
|
|
182
177
|
// try to open uPnP ports for each thin waist address
|
|
183
|
-
const { port, host,
|
|
178
|
+
const { port, host, protocol, type } = getNetConfig(addr)
|
|
179
|
+
|
|
180
|
+
if (port == null || protocol == null || (type !== 'ip4' && type !== 'ip6')) {
|
|
181
|
+
continue
|
|
182
|
+
}
|
|
184
183
|
|
|
185
184
|
// don't try to open port on IPv6 host via IPv4 gateway
|
|
186
|
-
if (
|
|
185
|
+
if (type === 'ip4' && this.gateway.family !== 'IPv4') {
|
|
187
186
|
continue
|
|
188
187
|
}
|
|
189
188
|
|
|
190
189
|
// don't try to open port on IPv4 host via IPv6 gateway
|
|
191
|
-
if (
|
|
190
|
+
if (type === 'ip6' && this.gateway.family !== 'IPv6') {
|
|
192
191
|
continue
|
|
193
192
|
}
|
|
194
193
|
|
|
195
|
-
const key = `${host}-${port}-${
|
|
194
|
+
const key = `${host}-${port}-${protocol}`
|
|
196
195
|
|
|
197
196
|
if (this.mappedPorts.has(key)) {
|
|
198
197
|
// already mapped this port
|
|
@@ -201,21 +200,21 @@ export class UPnPPortMapper {
|
|
|
201
200
|
|
|
202
201
|
try {
|
|
203
202
|
const mapping = await this.gateway.map(port, host, {
|
|
204
|
-
protocol:
|
|
203
|
+
protocol: protocol === 'tcp' ? 'TCP' : 'UDP'
|
|
205
204
|
})
|
|
206
205
|
this.mappedPorts.set(key, mapping)
|
|
207
|
-
this.addressManager.addPublicAddressMapping(mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort,
|
|
208
|
-
this.log('created mapping of %s:%s to %s:%s for protocol %s', mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort,
|
|
206
|
+
this.addressManager.addPublicAddressMapping(mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort, protocol === 'tcp' ? 'tcp' : 'udp')
|
|
207
|
+
this.log('created mapping of %s:%s to %s:%s for protocol %s', mapping.internalHost, mapping.internalPort, mapping.externalHost, mapping.externalPort, protocol)
|
|
209
208
|
|
|
210
209
|
if (options?.autoConfirmAddress === true) {
|
|
211
|
-
const ma = multiaddr(`/ip${isIPv4(mapping.externalHost) ? 4 : 6}/${mapping.externalHost}/${
|
|
210
|
+
const ma = multiaddr(`/ip${isIPv4(mapping.externalHost) ? 4 : 6}/${mapping.externalHost}/${protocol}/${mapping.externalPort}`)
|
|
212
211
|
this.log('auto-confirming IP address %a', ma)
|
|
213
212
|
this.addressManager.confirmObservedAddr(ma, {
|
|
214
213
|
ttl: MAX_DATE - Date.now()
|
|
215
214
|
})
|
|
216
215
|
}
|
|
217
216
|
} catch (err) {
|
|
218
|
-
this.log.error('failed to create mapping for %s:%d for protocol - %e', host, port,
|
|
217
|
+
this.log.error('failed to create mapping for %s:%d for protocol - %e', host, port, protocol, err)
|
|
219
218
|
}
|
|
220
219
|
}
|
|
221
220
|
} catch (err: any) {
|
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.html",
|
|
11
|
-
".:uPnPNAT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_upnp-nat.uPnPNAT.html"
|
|
12
|
-
}
|