Skip to content

Getting the local address for a discovered service? #437

@hgomersall

Description

@hgomersall

I'm trying to use mdns-sd on a system that has multiple interfaces. Each interface has a link-local IP address. On the networks those interfaces are connected to are various servers all of which have link-local IP addresses, and all of which advertise themselves with mdns-sd.

My understanding is that this is an acceptable design, and that I can specify a connection by binding a socket to the relevant IP address (which defines the interface). The problem I have is that I can't determine the IP address of the interface that a service was discovered on. I guess I could also know what interface, but it's not clear how I can do that either.

Am I missing something here? It seems like a use-case that should be supported. I'm happy to do the leg-work to make this happen, but I need a bit of a steer on whether the info is available already, and failing that, how I should best implement the changes.

For context, I'm seeing an issue on (at least) Windows where connection to a server takes a long time after a quick mdns-sd discovery. Presumably because the machine does not know which interface to use for the connection so has to try the various interfaces until it finds one that works. I suspect it will break horribly if two machines on different physical networks have the same IP address.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions