Releases: nerves-networking/vintage_net
Releases · nerves-networking/vintage_net
v0.11.4
- Changed
- Internet connectivity checks can now take domain names. Previously only IP
addresses were supported. This change lets you add your own servers to the
list since those servers may be more reliable indicators of Internet access
in highly firewalled locations. A section on this was added to the README.md
with an example.
- Internet connectivity checks can now take domain names. Previously only IP
v0.11.3
- Changed
- Don't downgrade the connection status on DHCP renewals. Previously, if there
was a DHCP renewal, the connection status could go from "Internet-connected"
"LAN-connected". The logic was that IP address and router changes may make
the Internet unreachible. The new logic is to assume that the device is
still Internet-connected and let the connectivity checker downgrade the
status should it be necessary. This not only removes a status hiccup, but
also fixes a race between the connectivity checker upgrading the connection
and the DHCP notification degrading it. - Improve the
VintageNet.info
error when the:vintage_net
application
stops.
- Don't downgrade the connection status on DHCP renewals. Previously, if there
v0.11.2
- Added
- Added
VintageNet.RouteManager.refresh_route_metrics/0
to recompute the
routing table metrics. This is useful if you're supplying your own
:route_metric_fun
and something has changed to make it return a different
prioritization. Thanks to @LostKobrakai for this feature.
- Added
v0.11.1
- Changed
- The DNS server ordering is more deterministic now. Global DNS servers are
guaranteed to be listed first and in the order specified. VintageNet will
also try to preserve the ordering of DNS servers learned through DHCP. This
isn't always possible, though. This fixes a hard-to-find error where an
a difference in DNS server orderings between to device locations led to
different behavior. - Use
VintageNet.ConnectivityChecker.*
in VintageNet. The connectivity
checker module change was half made inv0.11.0
, but the old module name
was kept in a couple places to avoid breaking unit tests in other VintageNet
libraries. Now it's completely converted. This doesn't affect runtime. Code
that references the previous names will still get deprecation warnings like
inv0.11.0
.
- The DNS server ordering is more deterministic now. Global DNS servers are
v0.11.0
This release should be a safe update for most users. Many routing table and
internet connectivity check modules were updated, but the changes were primarily
in private APIs.
-
Added
- Support for detecting Internet connectivity on an interface passively by
watching tx and rx stats on TCP sockets. For example, if you have a
long-lived TCP connection (like for MQTT), the keepalive messages will
bump tx and rx counters that will let VintageNet skip testing the connection
for connectivity. This reduces traffic on metered connections. - Support for completely overriding route metric calculation. You can now
specify a:route_metric_fun
instead of using theDefaultMetric
calculator for determining which network interface preferences. - VintageNet property change events now come with timestamps. These are useful
for computing state durations and other time-based stats for events.
- Support for detecting Internet connectivity on an interface passively by
-
Removed
- Support for setting route prioritization order. This feature was more
limiting that it originally looked. The new:route_metric_fun
is more
straightforward since it lets you explicitly specify orderings and lets
decisions be made based on more input data.
- Support for setting route prioritization order. This feature was more
-
Changed
VintageNet.Interface.InternetConnectivityChecker
is now
VintageNet.Connectivity.InternetChecker
. Please update any references. Old
references will continue to work, but give a deprecation message at runtime.
v0.10.5
v0.10.4
- Bug fixes
- DHCP renewals would bounce connection status from :internet to :lan and back
even when the IP address, subnet, and default gateway didn't change. This
could cause a network connectivity hiccup that would happen every 24 hours
(a common DHCP lease time). A fix was added to assume internet connectivity
was maintained if the DHCP renewal didn't change IP parameters.
- DHCP renewals would bounce connection status from :internet to :lan and back
v0.10.3
- Bug fixes
- Fix regression with tracking udhcpd lease notifications. Leases
notifications were being ignored, so if you were monitoring leases to see
who was connected, then you wouldn't see any connections without this fix.
Thanks to Jon Thacker for reporting this issue. - Fix crashes when the application config is invalid. While the configurations
were incorrect and needed to be fixed, it was harder to debug than it should
have been. This release logs messages on invalid configs and carries on
bringing up left that's valid. Thanks to Matt Ludwigs for this fix.
- Fix regression with tracking udhcpd lease notifications. Leases
v0.10.2
This release officially removes support for Elixir 1.7 and Elixir 1.8. It turns
out that those versions wouldn't have worked in v0.10.0 due to a dependency that
was added.
- Improvements
- Add
VintageNet.reset_to_defaults/1
so that it's easy to reset a network
interface's configuration to what it would be ifVintageNet.configure
had
never been called. The previous "easy" way of doing this was to erase the
persisted configuration file and reboot. - Clean up interface reachability handling (disconnected vs. lan-connected vs
internet-connected). There was an issue where the status was out of sync due
a bug in a technology implementation. This is harder to do now. IMPORTANT:
if you have a custom technology implementation, calling
VintageNet.RouteManager.set_connection_status
is sufficient. You no
longer need to update the status property for your interface. This is not a
common need.
- Add
v0.10.1
- Improvements
- There's now an
:additional_name_servers
global configuration key so that
it's possible to force name servers to always be in the list to use. For
example, if you don't trust that you'll always get good name servers from
DHCP, you can add a few public name servers to this list. /etc/resolv.conf
now has nice comments on where configuration items come
from. Thanks to Connor Rigby for this idea and implementation.
- There's now an