dylanmckay/mdns

Doesn't find some of my devices

Closed this issue · 4 comments

See for example this NVidia shield listed by avahi:

$ avahi-browse _nv_shield_remote._tcp --resolve
+ enp0s25 IPv6 SHIELD                                        _nv_shield_remote._tcp local
+ enp0s25 IPv4 SHIELD                                        _nv_shield_remote._tcp local
= enp0s25 IPv4 SHIELD                                        _nv_shield_remote._tcp local
   hostname = [Android.local]
   address = [192.168.1.58]
   port = [8987]
   txt = ["SERVER=aac0f0d6fbb59b5c"]
= enp0s25 IPv6 SHIELD                                        _nv_shield_remote._tcp local
   hostname = [Android.local]
   address = [192.168.1.58]
   port = [8987]
   txt = ["SERVER=aac0f0d6fbb59b5c"]

But running the chromecast_discovery example with _nv_shield_remote._tcp.local as SERVICE_NAME doesn't list those services.

For some reason, the IPv4 is also removed from avahi-browse while the example is running:
- enp0s25 IPv4 SHIELD _nv_shield_remote._tcp local

Try running the example with the service name _nv_shield_remote._tcp, without the .local

Thanks for your quick reply.

It does find it then but claims it doesn't publish the address (while it is with Avahi):

[examples/chromecast_discovery.rs:11] &response = Response {
    answers: [
        Record {
            name: "_nv_shield_remote._tcp.local",
            class: IN,
            ttl: 4500,
            kind: PTR(
                "SHIELD._nv_shield_remote._tcp.local"
            )
        }
    ],
    nameservers: [],
    additional: []
}
cast device does not advertise address

Sorry for my extremely slow reply,

Does this bug still affect you with the recent refactoring to use futures?

Just tried my master. It does find my Shield and its address but I'm not on the same network as the one I used when creating this ticket.
Anyway, I'd say let's close this for now.