diff --git a/app/dispatcher/default.go b/app/dispatcher/default.go index 54864cbb..408301de 100644 --- a/app/dispatcher/default.go +++ b/app/dispatcher/default.go @@ -226,8 +226,8 @@ func (d *DefaultDispatcher) shouldOverride(ctx context.Context, result SniffResu if strings.HasPrefix(protocolString, p) || strings.HasPrefix(p, protocolString) { return true } - if fkr0, ok := d.fdns.(dns.FakeDNSEngineRev0); ok && protocolString != "bittorrent" && p == "fakedns" && - fkr0.IsIPInIPPool(destination.Address) { + if fkr0, ok := d.fdns.(dns.FakeDNSEngineRev0); ok && protocolString != "bittorrent" && strings.HasPrefix(p, "fakedns") && + (fkr0.IsIPInIPPool(destination.Address) || p == "fakedns+others") { errors.LogInfo(ctx, "Using sniffer ", protocolString, " since the fake DNS missed") return true }