-
Notifications
You must be signed in to change notification settings - Fork 957
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The mDNS implementation may not be conformant #734
Comments
To be clear, in this issue I mean "conformant to the IETF mDNS standard". |
Would using platform native mDNS APIs as a part of doing this be acceptable? |
@andrewtj I think offering an mdns feature based on the platform's avahi or bonjour daemon makes a lot of sense. This could be done based on the zeroconf crate and the feature could be offered in addition to the current mdns implementation, so we have it as a fallback for when avahi/bonjour are not available. I am in fact currently looking into that, as this would be the easiest way to have a fully standard conformant and battle tested implementation and also offering improved system performance as only one process on the system needs to send/and receive mdns packets. |
Note that libp2p embeds the implementation of mDNS because we only implement the subset necessary for libp2p-mdns to work. |
@tomaka That makes a lot of sense. My next go will be to see whether we can use the zeroconf crate to offer an alternative mdns implementation, which is more standard conformant but will only work when avahi or bonjour are present and running and should obviously be used in that case, as it is beneficial to only have a single mdns implementation running on a given system. |
Closing here. As far as I know the implementation is conformant with mDNS and the libp2p specification. Please open a new issue if that is not the case. |
The DNS and mDNS standards are quite complicated, and we overlooked a lot of details.
The current implementation, while functional, should eventually be revisited to be conformant.
The text was updated successfully, but these errors were encountered: