Skip to content

Commit d45a91d

Browse files
committed
fixup! feat: implement unicast DNS-SD
1 parent c621431 commit d45a91d

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
@@ -278,13 +278,17 @@ class ThingDiscovery extends Stream<ThingDescription>
278278
const defaultType = "Thing";
279279

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

284287
for (final srvRecord in srvRecords ?? <RRecord>[]) {
288+
final serviceName = srvRecord.name;
285289
final srvRecordEntries = srvRecord.data.split(" ");
286290

287-
final validSrvRecord = srvRecordEntries.length == 7;
291+
final validSrvRecord = srvRecordEntries.length == 4;
288292

289293
if (!validSrvRecord) {
290294
continue;
@@ -298,15 +302,20 @@ class ThingDiscovery extends Stream<ThingDescription>
298302
continue;
299303
}
300304

301-
final txtRecords =
302-
await DnsUtils.lookupRecord(srvRecord.name, RRecordType.TXT) ?? [];
305+
final txtRecords = await DnsUtils.lookupRecord(
306+
serviceName,
307+
RRecordType.TXT,
308+
provider: DnsApiProvider.CLOUDFLARE,
309+
) ??
310+
[];
303311

304312
final txtRecord = txtRecords.firstOrNull;
305313

306314
if (txtRecord == null) {
307315
continue;
308316
}
309317

318+
// FIXME: Add parsing of multiple TXT records
310319
final parsedTxtRecord = _parseTxtRecords(txtRecord.data);
311320

312321
final uri = Uri(
@@ -316,15 +325,14 @@ class ThingDiscovery extends Stream<ThingDescription>
316325
scheme: parsedTxtRecord["scheme"] ?? defaultScheme,
317326
);
318327

319-
final duplicate = discoveredUris.add(uri);
328+
final duplicate = !discoveredUris.add(uri);
320329

321330
if (duplicate) {
322331
continue;
323332
}
324333

325334
final type = parsedTxtRecord["type"] ?? defaultType;
326335

327-
print(parsedTxtRecord);
328336
switch (type) {
329337
case "Thing":
330338
yield* _discoverDirectly(uri);

0 commit comments

Comments
 (0)