Pull request: 5089-windows-hosts-crash
Updates #5089. Squashed commit of the following: commit dd3ce763326ad3207de111bb911e0a2665bcebba Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Mon Nov 7 16:21:43 2022 +0300 aghnet: fix comparison commit 0d736fb7fc5cb2e77fd533cd95fdf3fbc6dc86d1 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Mon Nov 7 14:13:05 2022 +0300 aghnet: fix crash
This commit is contained in:
parent
a7d02fa935
commit
464fbf0b54
10
CHANGELOG.md
10
CHANGELOG.md
|
@ -17,6 +17,14 @@ and this project adheres to
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Crash on Windows when system hosts files are read ([#5089]).
|
||||||
|
|
||||||
|
[#5089]: https://github.com/AdguardTeam/AdGuardHome/issues/5089
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
## [v0.107.18] - 2022-11-16 (APPROX.)
|
## [v0.107.18] - 2022-11-16 (APPROX.)
|
||||||
|
|
||||||
|
@ -1088,7 +1096,7 @@ See also the [v0.106.0 GitHub milestone][ms-v0.106.0].
|
||||||
- Hostname uniqueness validation in the DHCP server ([#2952]).
|
- Hostname uniqueness validation in the DHCP server ([#2952]).
|
||||||
- Hostname generating for DHCP clients which don't provide their own ([#2723]).
|
- Hostname generating for DHCP clients which don't provide their own ([#2723]).
|
||||||
- New flag `--no-etc-hosts` to disable client domain name lookups in the
|
- New flag `--no-etc-hosts` to disable client domain name lookups in the
|
||||||
operating system's /etc/hosts files ([#1947]).
|
operating system's `/etc/hosts` files ([#1947]).
|
||||||
- The ability to set up custom upstreams to resolve PTR queries for local
|
- The ability to set up custom upstreams to resolve PTR queries for local
|
||||||
addresses and to disable the automatic resolving of clients' addresses
|
addresses and to disable the automatic resolving of clients' addresses
|
||||||
([#2704]).
|
([#2704]).
|
||||||
|
|
|
@ -139,6 +139,8 @@ type HostsRecord struct {
|
||||||
func (rec *HostsRecord) equal(other *HostsRecord) (ok bool) {
|
func (rec *HostsRecord) equal(other *HostsRecord) (ok bool) {
|
||||||
if rec == nil {
|
if rec == nil {
|
||||||
return other == nil
|
return other == nil
|
||||||
|
} else if other == nil {
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return rec.Canonical == other.Canonical && rec.Aliases.Equal(other.Aliases)
|
return rec.Canonical == other.Canonical && rec.Aliases.Equal(other.Aliases)
|
||||||
|
@ -478,7 +480,11 @@ func (hc *HostsContainer) refresh() (err error) {
|
||||||
return fmt.Errorf("refreshing : %w", err)
|
return fmt.Errorf("refreshing : %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if maps.EqualFunc(hp.table, hc.last, (*HostsRecord).equal) {
|
// hc.last is nil on the first refresh, so let that one through.
|
||||||
|
//
|
||||||
|
// TODO(a.garipov): Once https://github.com/golang/go/issues/56621 is
|
||||||
|
// resolved, remove the first condition.
|
||||||
|
if hc.last != nil && maps.EqualFunc(hp.table, hc.last, (*HostsRecord).equal) {
|
||||||
log.Debug("%s: no changes detected", hostsContainerPref)
|
log.Debug("%s: no changes detected", hostsContainerPref)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue