Skip to content

Commit dd3a878

Browse files
committed
fixup! feat: implement unicast DNS-SD
1 parent 49c0b2d commit dd3a878

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

lib/src/core/thing_discovery.dart

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -287,13 +287,17 @@ class ThingDiscovery extends Stream<ThingDescription>
287287
const defaultType = 'Thing';
288288

289289
for (final ptrRecord in ptrRecords ?? <RRecord>[]) {
290-
final srvRecords =
291-
await DnsUtils.lookupRecord(ptrRecord.name, RRecordType.SRV);
290+
final srvRecords = await DnsUtils.lookupRecord(
291+
ptrRecord.name,
292+
RRecordType.SRV,
293+
provider: DnsApiProvider.CLOUDFLARE,
294+
);
292295

293296
for (final srvRecord in srvRecords ?? <RRecord>[]) {
297+
final serviceName = srvRecord.name;
294298
final srvRecordEntries = srvRecord.data.split(' ');
295299

296-
final validSrvRecord = srvRecordEntries.length == 7;
300+
final validSrvRecord = srvRecordEntries.length == 4;
297301

298302
if (!validSrvRecord) {
299303
continue;
@@ -307,15 +311,20 @@ class ThingDiscovery extends Stream<ThingDescription>
307311
continue;
308312
}
309313

310-
final txtRecords =
311-
await DnsUtils.lookupRecord(srvRecord.name, RRecordType.TXT) ?? [];
314+
final txtRecords = await DnsUtils.lookupRecord(
315+
serviceName,
316+
RRecordType.TXT,
317+
provider: DnsApiProvider.CLOUDFLARE,
318+
) ??
319+
[];
312320

313321
final txtRecord = txtRecords.firstOrNull;
314322

315323
if (txtRecord == null) {
316324
continue;
317325
}
318326

327+
// FIXME: Add parsing of multiple TXT records
319328
final parsedTxtRecord = _parseTxtRecords(txtRecord.data);
320329

321330
final uri = Uri(
@@ -325,15 +334,14 @@ class ThingDiscovery extends Stream<ThingDescription>
325334
scheme: parsedTxtRecord['scheme'] ?? defaultScheme,
326335
);
327336

328-
final duplicate = discoveredUris.add(uri);
337+
final duplicate = !discoveredUris.add(uri);
329338

330339
if (duplicate) {
331340
continue;
332341
}
333342

334343
final type = parsedTxtRecord['type'] ?? defaultType;
335344

336-
print(parsedTxtRecord);
337345
switch (type) {
338346
case 'Thing':
339347
yield* _discoverDirectly(uri);

0 commit comments

Comments
 (0)