# Changelog

This project follows [Semantic Versioning](

## v0.8.8 - 2023-05-26

* 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.

## v0.8.7 - 2023-02-12

* Fixed
  * Fix Elixir 1.15 deprecation warnings

## v0.8.6 - 2022-06-14

* Fixed
  * Fixed an issue that caused the DNS bridge to stop working with OTP 25.

## v0.8.5 - 2022-04-28

* 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.

## v0.8.4 - 2021-11-13

* 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.

## v0.8.3 - 2021-10-07

* 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.

## v0.8.2 - 2021-09-23

* 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.

## v0.8.1 - 2021-09-19

* Fixed
  * Fix interface monitor crash when a network interface gets removed.

## v0.8.0

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

## v0.7.0

* 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.

* 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.

## v0.6.7

* Improvements
  * Exclude `"wwan0"` by default. These interfaces are cellular links like ppp
    and it's not appropriate to respond to mDNS on them either.

## v0.6.6

* Bug fixes
  * Advertise services based on service names & not hostname. Thanks to Matt
    Trudel for this fix.

## v0.6.5

* 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

## v0.6.4

* New features
  * Support custom TXT record contents. See the `:txt_payload`. Thanks to
    Eduardo Cunha for adding this.

## v0.6.3

* Bug fixes
  * Update default so that ppp interfaces are ignored. This prevents surprises
    of having a responder run on a cellular link.

## v0.6.2

* Bug fixes
  * Fix crash when handling undecodable mDNS messages

## v0.6.1

* Handle nil from VintageNet reports

## v0.6.0

* Allow mdns host to be change at runtime
* New network monitor: VintageNetMonitor

## v0.5.0

* Allow services to be added and removed at runtime.

## v0.4.3

* Correct typos and white space
* Comment out logger messages

## v0.4.2

* Remove un-helpful Logger.debug statements - Issue #49
* Put this file into the proper order.

## v0.4.1

* Correct bad tag in and correct grammar.
* Correct documentation of the MdnsLite module

## v0.4.0

* 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.

## v0.3.0

* Remove a superfluous map from the config.

## v0.2.1

* Update README to reflect changes in previous version.

## v0.2.0

* Much better alignment with RFC 6763 - DNS Service-based discovery.
* Affects handling of SRV and PTR queries.

## v0.1.0

* Initial release