fix: Handle dnsmasq local=/ directive in DNS filter parser
The parser only recognized address=/ and server=/ prefixes but not local=/, which is the format used by Hagezi blocklists. This caused ~270k domains to be stored with the raw "local=/domain/" string as the domain name, breaking allow-list matching.
This commit is contained in:
@@ -16,8 +16,8 @@ func ParseLine(line string) (string, bool) {
|
||||
return "", false
|
||||
}
|
||||
|
||||
// dnsmasq format: address=/domain/0.0.0.0 or server=/domain/
|
||||
if strings.HasPrefix(line, "address=/") || strings.HasPrefix(line, "server=/") {
|
||||
// dnsmasq format: address=/domain/... or server=/domain/ or local=/domain/
|
||||
if strings.HasPrefix(line, "address=/") || strings.HasPrefix(line, "server=/") || strings.HasPrefix(line, "local=/") {
|
||||
parts := strings.SplitN(line, "/", 4)
|
||||
if len(parts) >= 3 && parts[1] != "" {
|
||||
return validateDomain(parts[1])
|
||||
|
||||
Reference in New Issue
Block a user