Update captive portal detection to work without server

This commit is contained in:
Daniel
2020-07-21 14:56:06 +02:00
parent b87ba37d4c
commit 811516eec8
4 changed files with 128 additions and 148 deletions

View File

@@ -44,15 +44,17 @@ func (er *envResolverConn) Query(ctx context.Context, q *Query) (*RRCache, error
return nil, ErrNotFound
case netenv.SpecialCaptivePortalDomain:
if portal.IP != nil {
records, err := netutils.IPsToRRs(q.FQDN, []net.IP{portal.IP})
if err != nil {
log.Warningf("nameserver: failed to create captive portal response to %s: %s", q.FQDN, err)
return nil, ErrNotFound
}
return er.makeRRCache(q, records), nil
portalIP := portal.IP
if portal.IP == nil {
portalIP = netenv.PortalTestIP
}
return nil, ErrNotFound
records, err := netutils.IPsToRRs(q.FQDN, []net.IP{portalIP})
if err != nil {
log.Warningf("nameserver: failed to create captive portal response to %s: %s", q.FQDN, err)
return nil, ErrNotFound
}
return er.makeRRCache(q, records), nil
case "router.local.":
routers := netenv.Gateways()