fixed possibility of duplicate entries
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user