This project follows Semantic Versioning.
- Bug fixes
- Fix
MdnsLite.InetMonitor
to properly remove interfaces that don't exist in a subsequent update. (@kevinschweikert) - Exclude "__unknown" interfaces to ignore interfaces that VintageNet can't get link info on. (@ConnorRigby)
- Don't crash on other Unix-like OSes (@mneumann)
- Fix
- Bug fixes
- Really fix crash when cleaning up responders when a network goes down. The fix in v0.8.9 had an issue that prevented it from working.
- Bug fixes
- Switch bridge recursive lookup to default to false. The issue that this works around has been fixed since OTP 24.1.
- Handle crash when cleaning up responders when a network goes down.
- New feature
- IPv6 queries are now supported. Responding to IPv6 isn't supported yet. To
use this, be sure to set
ipv4_only: false
since this isn't the default. Thanks to @bjyoungblood for this feature.
- IPv6 queries are now supported. Responding to IPv6 isn't supported yet. To
use this, be sure to set
- Fixed
- Fix Elixir 1.15 deprecation warnings
- Fixed
- Fixed an issue that caused the DNS bridge to stop working with OTP 25.
- Fixed
- If a network interface changes IP addresses, there would be a flurry of crashes when it was no longer possible to bind to the interface. This stops behavior and shuts down the responder for the interface.
-
New feature
- VintageNet is an optional dependency now. This makes it possible to use MdnsLite outside of Nerves much more easily.
-
Fixed
- Use the new DNS encoder/decoder from OTP 24.1.5. This fixes a regression with OTP 24.1.2 where the DNS encoder and decoder was updated to be more correct in how it handled the DNS class. mDNS repurposes the high bit of the DNS class. Previously we had gotten lucky. OTP 24.1.5 adds support for the bit. To make sure that MdnsLite can work on other OTP versions, the new OTP code has been vendored and included with MdnsLite.
- Fixed
- Added configuration and runtime support for setting the instance name. This was incorrectly removed in v0.8.0. By default, MdnsLite will advertise itself using the hostname. This works, but looks unfriendly in the service discovery results. Setting the instance name lets you advertise with a nice human readable name. Thanks to Mat Trudel for both catching this regression and fixing it.
- Fixed
- Fix calls to
:socket.setopt/3
to support OTP 22 and OTP 23. Thanks to Peter Madsen for finding this and providing a fix.
- Fix calls to
- Fixed
- Fix interface monitor crash when a network interface gets removed.
This release is a major update to MdnsLite to support making queries in addition to responding to queries. The runtime API is not backwards compatible. If you're only using the application environment to configure MdnsLite, you should be ok.
-
New features
- Make mDNS requests
- Add a DNS bridge for Erlang's DNS resolver. This enables Erlang
distribution and
:gen_tcp
users to be passed.local
hostnames. See docs for how to configure - mDNS record caching
- mDNS record inspection - both for ones MdnsLite advertises and for ones in the caches
- AAAA record support - Proper IPv6 support is still not available
-
Bug fixes
- MdnsLite now uses
:socket
to send and receive mDNS messages. This fixes several issues where multicast packets were being mixed up between network interfaces.
- MdnsLite now uses
-
Breaking change
- Change optional dependency on VintageNet to a mandatory one. Probably all
:mdns_lite
users were already using VintageNet and since Mix releases doesn't support optional dependencies yet, some users got errors when the release misordered them. This avoids the problem.
- Change optional dependency on VintageNet to a mandatory one. Probably all
-
Improvements
- Removed the
:dns
package dependency. There as an Erlang crypto API call in a dependency of:dns
that was removed in OTP 24. This change makes it possible to use:mdns_lite
on OTP 24 without worrying about a missing crypto API call.
- Removed the
- Improvements
- Exclude
"wwan0"
by default. These interfaces are cellular links like ppp and it's not appropriate to respond to mDNS on them either.
- Exclude
- Bug fixes
- Advertise services based on service names & not hostname. Thanks to Matt Trudel for this fix.
- Bug fixes
- Reuse addresses and ports when binding to the multicast socket to coexist with other mDNS software. Thanks to Eduardo Cunha and Matt Myers for the updates.
- New features
- Support custom TXT record contents. See the
:txt_payload
. Thanks to Eduardo Cunha for adding this.
- Support custom TXT record contents. See the
- Bug fixes
- Update default so that ppp interfaces are ignored. This prevents surprises of having a responder run on a cellular link.
- Bug fixes
- Fix crash when handling undecodable mDNS messages
- Handle nil from VintageNet reports
- Allow mdns host to be change at runtime
- New network monitor: VintageNetMonitor
- Allow services to be added and removed at runtime.
- Correct typos and white space
- Comment out logger messages
- Remove un-helpful Logger.debug statements - Issue #49
- Put this file into the proper order.
- Correct bad tag in README.md and correct grammar.
- Correct documentation of the MdnsLite module
- The value of host in the configuration file can have two values. The second can serve as an alias for the first.
- Updated documentation and comments.
- Created a new test.
- Remove a superfluous map from the config.
- Update README to reflect changes in previous version.
- Much better alignment with RFC 6763 - DNS Service-based discovery.
- Affects handling of SRV and PTR queries.
- Initial release