Pull request: 4865-refactor-dns-handlers
Updates #4865. Squashed commit of the following: commit b874088ee72dfd0cae5f4102fac87e1f26245ddf Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Sep 2 14:01:52 2022 +0300 dnsforward: imp code, docs commit a1b95fda58b777a54e7dcd57f0c419200f8fdc15 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Sep 1 19:37:45 2022 +0300 all: refactor dns handler; opt
This commit is contained in:
@@ -34,8 +34,8 @@ func (d *DNSFilter) processDNSRewrites(dnsr []*rules.NetworkRule) (res Result) {
|
||||
}}
|
||||
|
||||
return Result{
|
||||
Reason: RewrittenRule,
|
||||
Rules: rules,
|
||||
Reason: RewrittenRule,
|
||||
CanonName: dr.NewCNAME,
|
||||
}
|
||||
}
|
||||
@@ -60,16 +60,16 @@ func (d *DNSFilter) processDNSRewrites(dnsr []*rules.NetworkRule) (res Result) {
|
||||
}
|
||||
|
||||
return Result{
|
||||
Reason: RewrittenRule,
|
||||
Rules: rules,
|
||||
DNSRewriteResult: dnsrr,
|
||||
Rules: rules,
|
||||
Reason: RewrittenRule,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Result{
|
||||
Reason: RewrittenRule,
|
||||
Rules: rules,
|
||||
DNSRewriteResult: dnsrr,
|
||||
Rules: rules,
|
||||
Reason: RewrittenRule,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,18 +390,8 @@ type ResultRule struct {
|
||||
// TODO(a.garipov): Clarify relationships between fields. Perhaps
|
||||
// replace with a sum type or an interface?
|
||||
type Result struct {
|
||||
// IsFiltered is true if the request is filtered.
|
||||
IsFiltered bool `json:",omitempty"`
|
||||
|
||||
// Reason is the reason for blocking or unblocking the request.
|
||||
Reason Reason `json:",omitempty"`
|
||||
|
||||
// Rules are applied rules. If Rules are not empty, each rule is not nil.
|
||||
Rules []*ResultRule `json:",omitempty"`
|
||||
|
||||
// IPList is the lookup rewrite result. It is empty unless Reason is set to
|
||||
// Rewritten.
|
||||
IPList []net.IP `json:",omitempty"`
|
||||
// DNSRewriteResult is the $dnsrewrite filter rule result.
|
||||
DNSRewriteResult *DNSRewriteResult `json:",omitempty"`
|
||||
|
||||
// CanonName is the CNAME value from the lookup rewrite result. It is empty
|
||||
// unless Reason is set to Rewritten or RewrittenRule.
|
||||
@@ -411,8 +401,18 @@ type Result struct {
|
||||
// Reason is set to FilteredBlockedService.
|
||||
ServiceName string `json:",omitempty"`
|
||||
|
||||
// DNSRewriteResult is the $dnsrewrite filter rule result.
|
||||
DNSRewriteResult *DNSRewriteResult `json:",omitempty"`
|
||||
// IPList is the lookup rewrite result. It is empty unless Reason is set to
|
||||
// Rewritten.
|
||||
IPList []net.IP `json:",omitempty"`
|
||||
|
||||
// Rules are applied rules. If Rules are not empty, each rule is not nil.
|
||||
Rules []*ResultRule `json:",omitempty"`
|
||||
|
||||
// Reason is the reason for blocking or unblocking the request.
|
||||
Reason Reason `json:",omitempty"`
|
||||
|
||||
// IsFiltered is true if the request is filtered.
|
||||
IsFiltered bool `json:",omitempty"`
|
||||
}
|
||||
|
||||
// Matched returns true if any match at all was found regardless of
|
||||
@@ -874,9 +874,9 @@ func makeResult(matchedRules []rules.Rule, reason Reason) (res Result) {
|
||||
}
|
||||
|
||||
return Result{
|
||||
IsFiltered: reason == FilteredBlockList,
|
||||
Reason: reason,
|
||||
Rules: resRules,
|
||||
Reason: reason,
|
||||
IsFiltered: reason == FilteredBlockList,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -325,12 +325,12 @@ func (d *DNSFilter) checkSafeBrowsing(
|
||||
}
|
||||
|
||||
res = Result{
|
||||
IsFiltered: true,
|
||||
Reason: FilteredSafeBrowsing,
|
||||
Rules: []*ResultRule{{
|
||||
Text: "adguard-malware-shavar",
|
||||
FilterListID: SafeBrowsingListID,
|
||||
}},
|
||||
Reason: FilteredSafeBrowsing,
|
||||
IsFiltered: true,
|
||||
}
|
||||
|
||||
return check(sctx, res, d.safeBrowsingUpstream)
|
||||
@@ -359,12 +359,12 @@ func (d *DNSFilter) checkParental(
|
||||
}
|
||||
|
||||
res = Result{
|
||||
IsFiltered: true,
|
||||
Reason: FilteredParental,
|
||||
Rules: []*ResultRule{{
|
||||
Text: "parental CATEGORY_BLACKLISTED",
|
||||
FilterListID: ParentalListID,
|
||||
}},
|
||||
Reason: FilteredParental,
|
||||
IsFiltered: true,
|
||||
}
|
||||
|
||||
return check(sctx, res, d.parentalUpstream)
|
||||
|
||||
@@ -98,11 +98,11 @@ func (d *DNSFilter) checkSafeSearch(
|
||||
}
|
||||
|
||||
res = Result{
|
||||
IsFiltered: true,
|
||||
Reason: FilteredSafeSearch,
|
||||
Rules: []*ResultRule{{
|
||||
FilterListID: SafeSearchListID,
|
||||
}},
|
||||
Reason: FilteredSafeSearch,
|
||||
IsFiltered: true,
|
||||
}
|
||||
|
||||
if ip := net.ParseIP(safeHost); ip != nil {
|
||||
|
||||
Reference in New Issue
Block a user