@libp2p/mdns 9.0.14 → 10.0.0
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/README.md +1 -1
- package/dist/index.min.js +10 -14
- package/dist/src/index.d.ts +3 -20
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -113
- package/dist/src/index.js.map +1 -1
- package/dist/src/mdns.d.ts +38 -0
- package/dist/src/mdns.d.ts.map +1 -0
- package/dist/src/mdns.js +119 -0
- package/dist/src/mdns.js.map +1 -0
- package/dist/src/query.d.ts +4 -4
- package/dist/src/query.d.ts.map +1 -1
- package/dist/src/query.js +11 -14
- package/dist/src/query.js.map +1 -1
- package/dist/src/utils.js.map +1 -1
- package/package.json +15 -11
- package/src/index.ts +4 -166
- package/src/mdns.ts +149 -0
- package/src/query.ts +12 -16
package/dist/src/index.js
CHANGED
|
@@ -75,119 +75,7 @@
|
|
|
75
75
|
* }]
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
|
-
import {
|
|
79
|
-
import { peerDiscovery } from '@libp2p/interface/peer-discovery';
|
|
80
|
-
import { logger } from '@libp2p/logger';
|
|
81
|
-
import multicastDNS from 'multicast-dns';
|
|
82
|
-
import * as query from './query.js';
|
|
83
|
-
import { stringGen } from './utils.js';
|
|
84
|
-
const log = logger('libp2p:mdns');
|
|
85
|
-
class MulticastDNS extends TypedEventEmitter {
|
|
86
|
-
mdns;
|
|
87
|
-
broadcast;
|
|
88
|
-
interval;
|
|
89
|
-
serviceTag;
|
|
90
|
-
peerName;
|
|
91
|
-
port;
|
|
92
|
-
ip;
|
|
93
|
-
_queryInterval;
|
|
94
|
-
components;
|
|
95
|
-
constructor(components, init = {}) {
|
|
96
|
-
super();
|
|
97
|
-
this.broadcast = init.broadcast !== false;
|
|
98
|
-
this.interval = init.interval ?? (1e3 * 10);
|
|
99
|
-
this.serviceTag = init.serviceTag ?? '_p2p._udp.local';
|
|
100
|
-
this.ip = init.ip ?? '224.0.0.251';
|
|
101
|
-
this.peerName = init.peerName ?? stringGen(63);
|
|
102
|
-
// 63 is dns label limit
|
|
103
|
-
if (this.peerName.length >= 64) {
|
|
104
|
-
throw new Error('Peer name should be less than 64 chars long');
|
|
105
|
-
}
|
|
106
|
-
this.port = init.port ?? 5353;
|
|
107
|
-
this.components = components;
|
|
108
|
-
this._queryInterval = null;
|
|
109
|
-
this._onMdnsQuery = this._onMdnsQuery.bind(this);
|
|
110
|
-
this._onMdnsResponse = this._onMdnsResponse.bind(this);
|
|
111
|
-
this._onMdnsWarning = this._onMdnsWarning.bind(this);
|
|
112
|
-
this._onMdnsError = this._onMdnsError.bind(this);
|
|
113
|
-
}
|
|
114
|
-
[peerDiscovery] = this;
|
|
115
|
-
[Symbol.toStringTag] = '@libp2p/mdns';
|
|
116
|
-
isStarted() {
|
|
117
|
-
return Boolean(this.mdns);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Start sending queries to the LAN.
|
|
121
|
-
*
|
|
122
|
-
* @returns {void}
|
|
123
|
-
*/
|
|
124
|
-
async start() {
|
|
125
|
-
if (this.mdns != null) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
this.mdns = multicastDNS({ port: this.port, ip: this.ip });
|
|
129
|
-
this.mdns.on('query', this._onMdnsQuery);
|
|
130
|
-
this.mdns.on('response', this._onMdnsResponse);
|
|
131
|
-
this.mdns.on('warning', this._onMdnsWarning);
|
|
132
|
-
this.mdns.on('error', this._onMdnsError);
|
|
133
|
-
this._queryInterval = query.queryLAN(this.mdns, this.serviceTag, this.interval);
|
|
134
|
-
}
|
|
135
|
-
_onMdnsQuery(event) {
|
|
136
|
-
if (this.mdns == null) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
log.trace('received incoming mDNS query');
|
|
140
|
-
query.gotQuery(event, this.mdns, this.peerName, this.components.addressManager.getAddresses(), this.serviceTag, this.broadcast);
|
|
141
|
-
}
|
|
142
|
-
_onMdnsResponse(event) {
|
|
143
|
-
log.trace('received mDNS query response');
|
|
144
|
-
try {
|
|
145
|
-
const foundPeer = query.gotResponse(event, this.peerName, this.serviceTag);
|
|
146
|
-
if (foundPeer != null) {
|
|
147
|
-
log('discovered peer in mDNS query response %p', foundPeer.id);
|
|
148
|
-
this.dispatchEvent(new CustomEvent('peer', {
|
|
149
|
-
detail: foundPeer
|
|
150
|
-
}));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
catch (err) {
|
|
154
|
-
log.error('Error processing peer response', err);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
_onMdnsWarning(err) {
|
|
158
|
-
log.error('mdns warning', err);
|
|
159
|
-
}
|
|
160
|
-
_onMdnsError(err) {
|
|
161
|
-
log.error('mdns error', err);
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Stop sending queries to the LAN.
|
|
165
|
-
*
|
|
166
|
-
* @returns {Promise}
|
|
167
|
-
*/
|
|
168
|
-
async stop() {
|
|
169
|
-
if (this.mdns == null) {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
this.mdns.removeListener('query', this._onMdnsQuery);
|
|
173
|
-
this.mdns.removeListener('response', this._onMdnsResponse);
|
|
174
|
-
this.mdns.removeListener('warning', this._onMdnsWarning);
|
|
175
|
-
this.mdns.removeListener('error', this._onMdnsError);
|
|
176
|
-
if (this._queryInterval != null) {
|
|
177
|
-
clearInterval(this._queryInterval);
|
|
178
|
-
this._queryInterval = null;
|
|
179
|
-
}
|
|
180
|
-
await new Promise((resolve) => {
|
|
181
|
-
if (this.mdns != null) {
|
|
182
|
-
this.mdns.destroy(resolve);
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
resolve();
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
this.mdns = undefined;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
78
|
+
import { MulticastDNS } from './mdns.js';
|
|
191
79
|
export function mdns(init = {}) {
|
|
192
80
|
return (components) => new MulticastDNS(components, init);
|
|
193
81
|
}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAmBxC,MAAM,UAAU,IAAI,CAAE,OAAyB,EAAE;IAC/C,OAAO,CAAC,UAAkC,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACnF,CAAC;AAED;;;;;;;;;;;;;;;EAeE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface';
|
|
2
|
+
import multicastDNS from 'multicast-dns';
|
|
3
|
+
import type { MulticastDNSComponents, MulticastDNSInit } from './index.js';
|
|
4
|
+
import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface';
|
|
5
|
+
import type { Startable } from '@libp2p/interface/src/startable.js';
|
|
6
|
+
export declare class MulticastDNS extends TypedEventEmitter<PeerDiscoveryEvents> implements PeerDiscovery, Startable {
|
|
7
|
+
mdns?: multicastDNS.MulticastDNS;
|
|
8
|
+
private readonly log;
|
|
9
|
+
private readonly broadcast;
|
|
10
|
+
private readonly interval;
|
|
11
|
+
private readonly serviceTag;
|
|
12
|
+
private readonly peerName;
|
|
13
|
+
private readonly port;
|
|
14
|
+
private readonly ip;
|
|
15
|
+
private _queryInterval;
|
|
16
|
+
private readonly components;
|
|
17
|
+
constructor(components: MulticastDNSComponents, init?: MulticastDNSInit);
|
|
18
|
+
readonly [peerDiscoverySymbol]: this;
|
|
19
|
+
readonly [Symbol.toStringTag] = "@libp2p/mdns";
|
|
20
|
+
isStarted(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Start sending queries to the LAN.
|
|
23
|
+
*
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
start(): Promise<void>;
|
|
27
|
+
_onMdnsQuery(event: multicastDNS.QueryPacket): void;
|
|
28
|
+
_onMdnsResponse(event: multicastDNS.ResponsePacket): void;
|
|
29
|
+
_onMdnsWarning(err: Error): void;
|
|
30
|
+
_onMdnsError(err: Error): void;
|
|
31
|
+
/**
|
|
32
|
+
* Stop sending queries to the LAN.
|
|
33
|
+
*
|
|
34
|
+
* @returns {Promise}
|
|
35
|
+
*/
|
|
36
|
+
stop(): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=mdns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdns.d.ts","sourceRoot":"","sources":["../../src/mdns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvF,OAAO,YAAY,MAAM,eAAe,CAAA;AAGxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,KAAK,EAAU,aAAa,EAAE,mBAAmB,EAAY,MAAM,mBAAmB,CAAA;AAC7F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAEnE,qBAAa,YAAa,SAAQ,iBAAiB,CAAC,mBAAmB,CAAE,YAAW,aAAa,EAAE,SAAS;IACnG,IAAI,CAAC,EAAE,YAAY,CAAC,YAAY,CAAA;IAEvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;gBAEtC,UAAU,EAAE,sBAAsB,EAAE,IAAI,GAAE,gBAAqB;IAsB5E,QAAQ,CAAC,CAAC,mBAAmB,CAAC,OAAO;IAErC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAiB;IAE9C,SAAS,IAAK,OAAO;IAIrB;;;;OAIG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAgB7B,YAAY,CAAE,KAAK,EAAE,YAAY,CAAC,WAAW,GAAG,IAAI;IAkBpD,eAAe,CAAE,KAAK,EAAE,YAAY,CAAC,cAAc,GAAG,IAAI;IAoB1D,cAAc,CAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAIjC,YAAY,CAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAI/B;;;;OAIG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAyB7B"}
|
package/dist/src/mdns.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { CustomEvent, TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface';
|
|
2
|
+
import multicastDNS from 'multicast-dns';
|
|
3
|
+
import * as query from './query.js';
|
|
4
|
+
import { stringGen } from './utils.js';
|
|
5
|
+
export class MulticastDNS extends TypedEventEmitter {
|
|
6
|
+
mdns;
|
|
7
|
+
log;
|
|
8
|
+
broadcast;
|
|
9
|
+
interval;
|
|
10
|
+
serviceTag;
|
|
11
|
+
peerName;
|
|
12
|
+
port;
|
|
13
|
+
ip;
|
|
14
|
+
_queryInterval;
|
|
15
|
+
components;
|
|
16
|
+
constructor(components, init = {}) {
|
|
17
|
+
super();
|
|
18
|
+
this.log = components.logger.forComponent('libp2p:mdns');
|
|
19
|
+
this.broadcast = init.broadcast !== false;
|
|
20
|
+
this.interval = init.interval ?? (1e3 * 10);
|
|
21
|
+
this.serviceTag = init.serviceTag ?? '_p2p._udp.local';
|
|
22
|
+
this.ip = init.ip ?? '224.0.0.251';
|
|
23
|
+
this.peerName = init.peerName ?? stringGen(63);
|
|
24
|
+
// 63 is dns label limit
|
|
25
|
+
if (this.peerName.length >= 64) {
|
|
26
|
+
throw new Error('Peer name should be less than 64 chars long');
|
|
27
|
+
}
|
|
28
|
+
this.port = init.port ?? 5353;
|
|
29
|
+
this.components = components;
|
|
30
|
+
this._queryInterval = null;
|
|
31
|
+
this._onMdnsQuery = this._onMdnsQuery.bind(this);
|
|
32
|
+
this._onMdnsResponse = this._onMdnsResponse.bind(this);
|
|
33
|
+
this._onMdnsWarning = this._onMdnsWarning.bind(this);
|
|
34
|
+
this._onMdnsError = this._onMdnsError.bind(this);
|
|
35
|
+
}
|
|
36
|
+
[peerDiscoverySymbol] = this;
|
|
37
|
+
[Symbol.toStringTag] = '@libp2p/mdns';
|
|
38
|
+
isStarted() {
|
|
39
|
+
return Boolean(this.mdns);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Start sending queries to the LAN.
|
|
43
|
+
*
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
async start() {
|
|
47
|
+
if (this.mdns != null) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.mdns = multicastDNS({ port: this.port, ip: this.ip });
|
|
51
|
+
this.mdns.on('query', this._onMdnsQuery);
|
|
52
|
+
this.mdns.on('response', this._onMdnsResponse);
|
|
53
|
+
this.mdns.on('warning', this._onMdnsWarning);
|
|
54
|
+
this.mdns.on('error', this._onMdnsError);
|
|
55
|
+
this._queryInterval = query.queryLAN(this.mdns, this.serviceTag, this.interval, {
|
|
56
|
+
log: this.log
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
_onMdnsQuery(event) {
|
|
60
|
+
if (this.mdns == null) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.log.trace('received incoming mDNS query');
|
|
64
|
+
query.gotQuery(event, this.mdns, this.peerName, this.components.addressManager.getAddresses(), this.serviceTag, this.broadcast, {
|
|
65
|
+
log: this.log
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
_onMdnsResponse(event) {
|
|
69
|
+
this.log.trace('received mDNS query response');
|
|
70
|
+
try {
|
|
71
|
+
const foundPeer = query.gotResponse(event, this.peerName, this.serviceTag, {
|
|
72
|
+
log: this.log
|
|
73
|
+
});
|
|
74
|
+
if (foundPeer != null) {
|
|
75
|
+
this.log('discovered peer in mDNS query response %p', foundPeer.id);
|
|
76
|
+
this.dispatchEvent(new CustomEvent('peer', {
|
|
77
|
+
detail: foundPeer
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
this.log.error('Error processing peer response', err);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
_onMdnsWarning(err) {
|
|
86
|
+
this.log.error('mdns warning', err);
|
|
87
|
+
}
|
|
88
|
+
_onMdnsError(err) {
|
|
89
|
+
this.log.error('mdns error', err);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Stop sending queries to the LAN.
|
|
93
|
+
*
|
|
94
|
+
* @returns {Promise}
|
|
95
|
+
*/
|
|
96
|
+
async stop() {
|
|
97
|
+
if (this.mdns == null) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this.mdns.removeListener('query', this._onMdnsQuery);
|
|
101
|
+
this.mdns.removeListener('response', this._onMdnsResponse);
|
|
102
|
+
this.mdns.removeListener('warning', this._onMdnsWarning);
|
|
103
|
+
this.mdns.removeListener('error', this._onMdnsError);
|
|
104
|
+
if (this._queryInterval != null) {
|
|
105
|
+
clearInterval(this._queryInterval);
|
|
106
|
+
this._queryInterval = null;
|
|
107
|
+
}
|
|
108
|
+
await new Promise((resolve) => {
|
|
109
|
+
if (this.mdns != null) {
|
|
110
|
+
this.mdns.destroy(resolve);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
resolve();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
this.mdns = undefined;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=mdns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdns.js","sourceRoot":"","sources":["../../src/mdns.ts"],"names":[],"mappings":"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"}
|
package/dist/src/query.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
-
import type { PeerInfo } from '@libp2p/interface
|
|
2
|
+
import type { LoggerOptions, PeerInfo } from '@libp2p/interface';
|
|
3
3
|
import type { MulticastDNS, QueryPacket, ResponsePacket } from 'multicast-dns';
|
|
4
|
-
export declare function queryLAN(mdns: MulticastDNS, serviceTag: string, interval: number): ReturnType<typeof setInterval>;
|
|
5
|
-
export declare function gotResponse(rsp: ResponsePacket, localPeerName: string, serviceTag: string): PeerInfo | undefined;
|
|
6
|
-
export declare function gotQuery(qry: QueryPacket, mdns: MulticastDNS, peerName: string, multiaddrs: Multiaddr[], serviceTag: string, broadcast: boolean): void;
|
|
4
|
+
export declare function queryLAN(mdns: MulticastDNS, serviceTag: string, interval: number, options?: LoggerOptions): ReturnType<typeof setInterval>;
|
|
5
|
+
export declare function gotResponse(rsp: ResponsePacket, localPeerName: string, serviceTag: string, options?: LoggerOptions): PeerInfo | undefined;
|
|
6
|
+
export declare function gotQuery(qry: QueryPacket, mdns: MulticastDNS, peerName: string, multiaddrs: Multiaddr[], serviceTag: string, broadcast: boolean, options?: LoggerOptions): void;
|
|
7
7
|
//# sourceMappingURL=query.d.ts.map
|
package/dist/src/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9E,wBAAgB,QAAQ,CAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAe3I;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAsD1I;AAED,wBAAgB,QAAQ,CAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAqDhL"}
|
package/dist/src/query.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
1
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
3
2
|
import { isPrivate } from '@libp2p/utils/multiaddr/is-private';
|
|
4
3
|
import { multiaddr, protocols } from '@multiformats/multiaddr';
|
|
5
|
-
|
|
6
|
-
export function queryLAN(mdns, serviceTag, interval) {
|
|
4
|
+
export function queryLAN(mdns, serviceTag, interval, options) {
|
|
7
5
|
const query = () => {
|
|
8
|
-
log.trace('query', serviceTag);
|
|
6
|
+
options?.log.trace('query', serviceTag);
|
|
9
7
|
mdns.query({
|
|
10
8
|
questions: [{
|
|
11
9
|
name: serviceTag,
|
|
@@ -17,7 +15,7 @@ export function queryLAN(mdns, serviceTag, interval) {
|
|
|
17
15
|
query();
|
|
18
16
|
return setInterval(query, interval);
|
|
19
17
|
}
|
|
20
|
-
export function gotResponse(rsp, localPeerName, serviceTag) {
|
|
18
|
+
export function gotResponse(rsp, localPeerName, serviceTag, options) {
|
|
21
19
|
if (rsp.answers == null) {
|
|
22
20
|
return;
|
|
23
21
|
}
|
|
@@ -62,20 +60,19 @@ export function gotResponse(rsp, localPeerName, serviceTag) {
|
|
|
62
60
|
if (peerId == null) {
|
|
63
61
|
throw new Error("Multiaddr doesn't contain PeerId");
|
|
64
62
|
}
|
|
65
|
-
log('peer found %p', peerId);
|
|
63
|
+
options?.log('peer found %p', peerId);
|
|
66
64
|
return {
|
|
67
65
|
id: peerIdFromString(peerId),
|
|
68
|
-
multiaddrs: multiaddrs.map(addr => addr.decapsulateCode(protocols('p2p').code))
|
|
69
|
-
protocols: []
|
|
66
|
+
multiaddrs: multiaddrs.map(addr => addr.decapsulateCode(protocols('p2p').code))
|
|
70
67
|
};
|
|
71
68
|
}
|
|
72
69
|
catch (e) {
|
|
73
|
-
log.error('failed to parse mdns response', e);
|
|
70
|
+
options?.log.error('failed to parse mdns response', e);
|
|
74
71
|
}
|
|
75
72
|
}
|
|
76
|
-
export function gotQuery(qry, mdns, peerName, multiaddrs, serviceTag, broadcast) {
|
|
73
|
+
export function gotQuery(qry, mdns, peerName, multiaddrs, serviceTag, broadcast, options) {
|
|
77
74
|
if (!broadcast) {
|
|
78
|
-
log('not responding to mDNS query as broadcast mode is false');
|
|
75
|
+
options?.log('not responding to mDNS query as broadcast mode is false');
|
|
79
76
|
return;
|
|
80
77
|
}
|
|
81
78
|
if (multiaddrs.length === 0) {
|
|
@@ -99,12 +96,12 @@ export function gotQuery(qry, mdns, peerName, multiaddrs, serviceTag, broadcast)
|
|
|
99
96
|
// TXT record fields have a max data length of 255 bytes
|
|
100
97
|
// see 6.1 - https://www.ietf.org/rfc/rfc6763.txt
|
|
101
98
|
if (data.length > 255) {
|
|
102
|
-
log('multiaddr %a is too long to use in mDNS query response', addr);
|
|
99
|
+
options?.log('multiaddr %a is too long to use in mDNS query response', addr);
|
|
103
100
|
return;
|
|
104
101
|
}
|
|
105
102
|
// spec mandates multiaddr contains peer id
|
|
106
103
|
if (addr.getPeerId() == null) {
|
|
107
|
-
log('multiaddr %a did not have a peer ID so cannot be used in mDNS query response', addr);
|
|
104
|
+
options?.log('multiaddr %a did not have a peer ID so cannot be used in mDNS query response', addr);
|
|
108
105
|
return;
|
|
109
106
|
}
|
|
110
107
|
answers.push({
|
|
@@ -115,7 +112,7 @@ export function gotQuery(qry, mdns, peerName, multiaddrs, serviceTag, broadcast)
|
|
|
115
112
|
data
|
|
116
113
|
});
|
|
117
114
|
});
|
|
118
|
-
log.trace('responding to query');
|
|
115
|
+
options?.log.trace('responding to query');
|
|
119
116
|
mdns.respond(answers);
|
|
120
117
|
}
|
|
121
118
|
}
|
package/dist/src/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAE,GAAW;IACpC,IAAI,IAAI,GAAG,EAAE,CAAA;IAEb,MAAM,OAAO,GAAG,sCAAsC,CAAA;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAE,GAAW;IACpC,IAAI,IAAI,GAAG,EAAE,CAAA;IAEb,MAAM,OAAO,GAAG,sCAAsC,CAAA;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAAC,CAAC;IAEpG,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/mdns",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"description": "Node.js libp2p mDNS discovery implementation for peer discovery",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
|
-
"homepage": "https://github.com/libp2p/js-libp2p/tree/
|
|
6
|
+
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-discovery-mdns#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/libp2p/js-libp2p.git"
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/libp2p/js-libp2p/issues"
|
|
13
13
|
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public",
|
|
16
|
+
"provenance": true
|
|
17
|
+
},
|
|
14
18
|
"keywords": [
|
|
15
19
|
"IPFS"
|
|
16
20
|
],
|
|
@@ -45,21 +49,21 @@
|
|
|
45
49
|
"test:electron-main": "aegir test -t electron-main"
|
|
46
50
|
},
|
|
47
51
|
"dependencies": {
|
|
48
|
-
"@libp2p/interface": "^0.
|
|
49
|
-
"@libp2p/
|
|
50
|
-
"@libp2p/
|
|
51
|
-
"@
|
|
52
|
-
"@multiformats/multiaddr": "^12.1.5",
|
|
52
|
+
"@libp2p/interface": "^1.0.0",
|
|
53
|
+
"@libp2p/peer-id": "^4.0.0",
|
|
54
|
+
"@libp2p/utils": "^5.0.0",
|
|
55
|
+
"@multiformats/multiaddr": "^12.1.10",
|
|
53
56
|
"@types/multicast-dns": "^7.2.1",
|
|
54
57
|
"dns-packet": "^5.4.0",
|
|
55
58
|
"multicast-dns": "^7.2.5"
|
|
56
59
|
},
|
|
57
60
|
"devDependencies": {
|
|
58
|
-
"@libp2p/interface-compliance-tests": "^
|
|
59
|
-
"@libp2p/interface-internal": "^0.1.
|
|
60
|
-
"@libp2p/
|
|
61
|
+
"@libp2p/interface-compliance-tests": "^5.0.0",
|
|
62
|
+
"@libp2p/interface-internal": "^0.1.10",
|
|
63
|
+
"@libp2p/logger": "^4.0.0",
|
|
64
|
+
"@libp2p/peer-id-factory": "^3.0.9",
|
|
61
65
|
"aegir": "^41.0.2",
|
|
62
66
|
"p-wait-for": "^5.0.2",
|
|
63
|
-
"ts
|
|
67
|
+
"sinon-ts": "^2.0.0"
|
|
64
68
|
}
|
|
65
69
|
}
|