Skip to content

Conversation

@gorbit99
Copy link
Contributor

This PR implements mDNS discovery. It searches for an mDNS record with host name "slimevr-server.local" and resolves it into the server's ip address. In some specific cases this should function better than broadcast based discovery.

mDNS packets are implemented manually to both make the process non-blocking and have it peacefully coexist with broadcast based discovery.

@gorbit99 gorbit99 requested a review from Eirenliel as a code owner October 23, 2025 22:36
@Eirenliel
Copy link
Member

How will it behave if there are more than 1 server on the network?

@gorbit99
Copy link
Contributor Author

@Eirenliel this currently queries A records, which are unique across a network, when the second server would attempt to register itself with the same hostname, it would fail and potentially rename itself. This can be used to detect instances of the server already running on the network, which could be used to implement SlimeVR/SlimeVR-Server#1581

In theory this could be solved by querying for SRV records instead, which can return all of them, but I didn't see the point, since we'd just use the first one that responds either way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants