fixed possibility of duplicate entries

This commit is contained in:
2026-05-10 23:02:19 +02:00
parent 51c54ecf18
commit 84f0a9a38e
2 changed files with 53 additions and 6 deletions
+19 -1
View File
@@ -277,7 +277,25 @@ cache_log /var/log/squid/cache.log
`;
}
function genDomains(s) {
return s.domains.map(d => d.startsWith('*.') ? '.' + d.slice(2) : d).join('\n') + '\n';
let wildcardBases = s.domains
.filter(d => d.startsWith('*.'))
.map(d => d.slice(2));
wildcardBases = wildcardBases.filter(base =>
!wildcardBases.some(other => other !== base && base.endsWith('.' + other))
);
const isCovered = d => wildcardBases.some(b => d === b || d.endsWith('.' + b));
const seen = new Set();
const out = [];
for (const base of wildcardBases) {
const dotted = '.' + base;
if (!seen.has(dotted)) { out.push(dotted); seen.add(dotted); }
}
for (const d of s.domains) {
if (d.startsWith('*.')) continue;
if (isCovered(d) || seen.has(d)) continue;
out.push(d); seen.add(d);
}
return out.join('\n') + '\n';
}
function genWpad(s) {
return `function FindProxyForURL(url, host) {