Skip to content

Commit 438a843

Browse files
committed
fixup! feat: implement unicast DNS-SD
1 parent bf96c4f commit 438a843

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

lib/src/core/implementation/thing_discovery.dart

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,17 @@ class ThingDiscovery extends Stream<ThingDescription>
276276
const defaultType = "Thing";
277277

278278
for (final ptrRecord in ptrRecords ?? <RRecord>[]) {
279-
final srvRecords =
280-
await DnsUtils.lookupRecord(ptrRecord.name, RRecordType.SRV);
279+
final srvRecords = await DnsUtils.lookupRecord(
280+
ptrRecord.name,
281+
RRecordType.SRV,
282+
provider: DnsApiProvider.CLOUDFLARE,
283+
);
281284

282285
for (final srvRecord in srvRecords ?? <RRecord>[]) {
286+
final serviceName = srvRecord.name;
283287
final srvRecordEntries = srvRecord.data.split(" ");
284288

285-
final validSrvRecord = srvRecordEntries.length == 7;
289+
final validSrvRecord = srvRecordEntries.length == 4;
286290

287291
if (!validSrvRecord) {
288292
continue;
@@ -296,15 +300,20 @@ class ThingDiscovery extends Stream<ThingDescription>
296300
continue;
297301
}
298302

299-
final txtRecords =
300-
await DnsUtils.lookupRecord(srvRecord.name, RRecordType.TXT) ?? [];
303+
final txtRecords = await DnsUtils.lookupRecord(
304+
serviceName,
305+
RRecordType.TXT,
306+
provider: DnsApiProvider.CLOUDFLARE,
307+
) ??
308+
[];
301309

302310
final txtRecord = txtRecords.firstOrNull;
303311

304312
if (txtRecord == null) {
305313
continue;
306314
}
307315

316+
// FIXME: Add parsing of multiple TXT records
308317
final parsedTxtRecord = _parseTxtRecords(txtRecord.data);
309318

310319
final uri = Uri(
@@ -314,15 +323,14 @@ class ThingDiscovery extends Stream<ThingDescription>
314323
scheme: parsedTxtRecord["scheme"] ?? defaultScheme,
315324
);
316325

317-
final duplicate = discoveredUris.add(uri);
326+
final duplicate = !discoveredUris.add(uri);
318327

319328
if (duplicate) {
320329
continue;
321330
}
322331

323332
final type = parsedTxtRecord["type"] ?? defaultType;
324333

325-
print(parsedTxtRecord);
326334
switch (type) {
327335
case "Thing":
328336
yield* _discoverDirectly(uri);

0 commit comments

Comments
 (0)