runet-censorship-bypass/pac-generator/src/blocked-hosts-reversed-binary.js

26 lines
696 B
JavaScript
Raw Normal View History

2015-11-28 12:20:45 +03:00
'use strict';
module.exports = (hosts, ips, generator, generatePac) => {
var reverse = str => str.split('').reverse().join('');
var reversedHosts = hosts.map( reverse ).sort();
function ifReversedBinaryFound(host, sortedArray) {
target = host.split('').reverse().join('');
var istart = 0;
var iend = sortedArray.length - 1;
while (istart < iend) {
var imid = istart + Math.floor( (iend - istart)*0.5 );
if (target > sortedArray[imid])
istart = imid + 1;
else
iend = imid;
}
return dnsDomainIs( host, sortedArray[iend].split('').reverse().join('') );
}
return generatePac( ifReversedBinaryFound, 'host', reversedHosts );
}