mirror of
https://github.com/safing/portmaster
synced 2025-09-02 02:29:12 +00:00
Add ServerInfo to resolvers and caches
This commit is contained in:
parent
3f3d82bdf1
commit
1b11d1589b
8 changed files with 29 additions and 1 deletions
|
@ -35,6 +35,7 @@ type NameRecord struct {
|
|||
|
||||
Server string
|
||||
ServerScope int8
|
||||
ServerInfo string
|
||||
}
|
||||
|
||||
func makeNameRecordKey(domain string, question string) string {
|
||||
|
|
|
@ -23,6 +23,7 @@ var (
|
|||
Server: ServerSourceEnv,
|
||||
ServerType: ServerTypeEnv,
|
||||
ServerIPScope: netutils.SiteLocal,
|
||||
ServerInfo: "Portmaster environment",
|
||||
Source: ServerSourceEnv,
|
||||
Conn: &envResolverConn{},
|
||||
}
|
||||
|
@ -114,6 +115,7 @@ func (er *envResolverConn) makeRRCache(q *Query, answers []dns.RR) *RRCache {
|
|||
Extra: []dns.RR{internalSpecialUseComment}, // Always add comment about this TLD.
|
||||
Server: envResolver.Server,
|
||||
ServerScope: envResolver.ServerIPScope,
|
||||
ServerInfo: envResolver.ServerInfo,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ var (
|
|||
Server: ServerSourceMDNS,
|
||||
ServerType: ServerTypeDNS,
|
||||
ServerIPScope: netutils.SiteLocal,
|
||||
ServerInfo: "mDNS resolver",
|
||||
Source: ServerSourceMDNS,
|
||||
Conn: &mDNSResolverConn{},
|
||||
}
|
||||
|
@ -203,6 +204,7 @@ func handleMDNSMessages(ctx context.Context, messages chan *dns.Msg) error {
|
|||
Question: dns.Type(question.Qtype),
|
||||
Server: mDNSResolver.Server,
|
||||
ServerScope: mDNSResolver.ServerIPScope,
|
||||
ServerInfo: mDNSResolver.ServerInfo,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -304,6 +306,7 @@ func handleMDNSMessages(ctx context.Context, messages chan *dns.Msg) error {
|
|||
Answer: []dns.RR{v},
|
||||
Server: mDNSResolver.Server,
|
||||
ServerScope: mDNSResolver.ServerIPScope,
|
||||
ServerInfo: mDNSResolver.ServerInfo,
|
||||
}
|
||||
rrCache.Clean(minMDnsTTL)
|
||||
err := rrCache.Save()
|
||||
|
@ -416,7 +419,14 @@ func queryMulticastDNS(ctx context.Context, q *Query) (*RRCache, error) {
|
|||
}
|
||||
}
|
||||
|
||||
return nil, ErrNotFound
|
||||
// Respond with NXDomain.
|
||||
return &RRCache{
|
||||
Domain: q.FQDN,
|
||||
Question: q.QType,
|
||||
Server: mDNSResolver.Server,
|
||||
ServerScope: mDNSResolver.ServerIPScope,
|
||||
ServerInfo: mDNSResolver.ServerInfo,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func cleanSavedQuestions() {
|
||||
|
|
|
@ -86,6 +86,7 @@ func (pr *PlainResolver) Query(ctx context.Context, q *Query) (*RRCache, error)
|
|||
Extra: reply.Extra,
|
||||
Server: pr.resolver.Server,
|
||||
ServerScope: pr.resolver.ServerIPScope,
|
||||
ServerInfo: pr.resolver.ServerInfo,
|
||||
}
|
||||
|
||||
// TODO: check if reply.Answer is valid
|
||||
|
|
|
@ -51,6 +51,7 @@ func (ifq *InFlightQuery) MakeCacheRecord(reply *dns.Msg) *RRCache {
|
|||
Extra: reply.Extra,
|
||||
Server: ifq.Resolver.Server,
|
||||
ServerScope: ifq.Resolver.ServerIPScope,
|
||||
ServerInfo: ifq.Resolver.ServerInfo,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ type Resolver struct {
|
|||
ServerIP net.IP
|
||||
ServerIPScope int8
|
||||
ServerPort uint16
|
||||
ServerInfo string
|
||||
|
||||
// Special Options
|
||||
VerifyDomain string
|
||||
|
|
|
@ -128,6 +128,13 @@ func createResolver(resolverURL, source string) (*Resolver, bool, error) {
|
|||
UpstreamBlockDetection: blockType,
|
||||
}
|
||||
|
||||
u.RawQuery = "" // Remove options from parsed URL
|
||||
if new.Name != "" {
|
||||
new.ServerInfo = fmt.Sprintf("%s (%s, from %s)", new.Name, u, source)
|
||||
} else {
|
||||
new.ServerInfo = fmt.Sprintf("%s (from %s)", u, source)
|
||||
}
|
||||
|
||||
new.Conn = resolverConnFactory(new)
|
||||
return new, false, nil
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package resolver
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
|
@ -8,6 +9,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/safing/portbase/log"
|
||||
"github.com/safing/portmaster/nameserver/nsutil"
|
||||
"github.com/safing/portmaster/netenv"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
|
@ -130,6 +132,7 @@ func (rrCache *RRCache) ToNameRecord() *NameRecord {
|
|||
TTL: rrCache.TTL,
|
||||
Server: rrCache.Server,
|
||||
ServerScope: rrCache.ServerScope,
|
||||
ServerInfo: rrCache.ServerInfo,
|
||||
}
|
||||
|
||||
// stringify RR entries
|
||||
|
@ -176,6 +179,7 @@ func GetRRCache(domain string, question dns.Type) (*RRCache, error) {
|
|||
|
||||
rrCache.Server = nameRecord.Server
|
||||
rrCache.ServerScope = nameRecord.ServerScope
|
||||
rrCache.ServerInfo = nameRecord.ServerInfo
|
||||
rrCache.servedFromCache = true
|
||||
return rrCache, nil
|
||||
}
|
||||
|
@ -239,6 +243,7 @@ func (rrCache *RRCache) ShallowCopy() *RRCache {
|
|||
|
||||
Server: rrCache.Server,
|
||||
ServerScope: rrCache.ServerScope,
|
||||
ServerInfo: rrCache.ServerInfo,
|
||||
|
||||
updated: rrCache.updated,
|
||||
servedFromCache: rrCache.servedFromCache,
|
||||
|
|
Loading…
Add table
Reference in a new issue