mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-27 20:03:45 +03:00
Merge branch 'development' into production
This commit is contained in:
commit
97b6c2cdc3
|
@ -79,7 +79,7 @@
|
||||||
},
|
},
|
||||||
ifProhibitDns: {
|
ifProhibitDns: {
|
||||||
dflt: false,
|
dflt: false,
|
||||||
label: 'запретить опредление по IP/DNS',
|
label: 'запретить определение по IP/DNS',
|
||||||
desc: 'Пытается запретить скрипту использовать DNS, без которого определение блокировки по IP работать не будет (т.е. будет разблокироваться меньше сайтов). Используйте, чтобы получить прирост в производительности или если вам кажется, что мы проксируем слишком много сайтов. Запрет действует только для скрипта, браузер и др.программы продолжат использование DNS.',
|
desc: 'Пытается запретить скрипту использовать DNS, без которого определение блокировки по IP работать не будет (т.е. будет разблокироваться меньше сайтов). Используйте, чтобы получить прирост в производительности или если вам кажется, что мы проксируем слишком много сайтов. Запрет действует только для скрипта, браузер и др.программы продолжат использование DNS.',
|
||||||
order: 2,
|
order: 2,
|
||||||
},
|
},
|
||||||
|
@ -130,6 +130,14 @@
|
||||||
desc: 'Проксировать особые домены. Необходима поддержка со стороны СВОИХ прокси.',
|
desc: 'Проксировать особые домены. Необходима поддержка со стороны СВОИХ прокси.',
|
||||||
order: 8,
|
order: 8,
|
||||||
},
|
},
|
||||||
|
replaceDirectWith: {
|
||||||
|
ifDisabled: true,
|
||||||
|
dflt: false,
|
||||||
|
category: 'ownProxies',
|
||||||
|
label: 'подменять DIRECT на',
|
||||||
|
desc: 'Использовать в PAC-скрипте указанную строку для запросов напрямую (вместо директивы DIRECT). Данная строка не проверяется на требования к шифрованию связи до прокси! Строка должна соответствовать формату возвращаемого значения PAC-скрипта, который подобен <a href="https://rebrand.ly/ac-own-proxies#user-content-Формат">формату своих прокси</a>.',
|
||||||
|
order: 9,
|
||||||
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -240,7 +248,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!ifAuthSupported && protectedProxies.length) {
|
if (!ifAuthSupported && protectedProxies.length) {
|
||||||
return [new Error('Запароленные прокси не поддерживатюся в данной версии/платформе!')];
|
return [new Error('Запароленные прокси не поддерживаются в данной версии/платформе!')];
|
||||||
}
|
}
|
||||||
|
|
||||||
proxyHostToCredsList = {};
|
proxyHostToCredsList = {};
|
||||||
|
@ -327,7 +335,7 @@
|
||||||
/******/ "use strict";
|
/******/ "use strict";
|
||||||
/******/
|
/******/
|
||||||
/******/ const originalFindProxyForURL = FindProxyForURL;
|
/******/ const originalFindProxyForURL = FindProxyForURL;
|
||||||
/******/ const tmp = function(url, host) {
|
/******/ let tmp = function(url, host) {
|
||||||
/******/
|
/******/
|
||||||
${
|
${
|
||||||
function() {
|
function() {
|
||||||
|
@ -465,7 +473,42 @@ ${ pacMods.filteredCustomsString
|
||||||
}
|
}
|
||||||
|
|
||||||
/******/ };
|
/******/ };
|
||||||
|
${
|
||||||
|
!pacMods.replaceDirectWith
|
||||||
|
? ''
|
||||||
|
: `
|
||||||
|
/******/ const oldTmp = tmp;
|
||||||
|
/******/ tmp = function(url, host) {
|
||||||
|
/******/ const ip = dnsResolve(host);
|
||||||
|
/******/ if (ip) {
|
||||||
|
/******/ const ipInt = convert_addr(ip);
|
||||||
|
/******/ if([
|
||||||
|
/******/ /* Reserved networks: https://en.wikipedia.org/wiki/Reserved_IP_addresses#IPv4 */
|
||||||
|
/******/ [-16777216, 0 ], // ['0.0.0.0' , '255.0.0.0' ],
|
||||||
|
/******/ [-16777216, 167772160 ], // ['10.0.0.0' , '255.0.0.0' ],
|
||||||
|
/******/ [-4194304, 1681915904 ], // ['100.64.0.0' , '255.192.0.0'],
|
||||||
|
/******/ [-16777216, 2130706432 ], // ['127.0.0.0' , '255.0.0.0' ],
|
||||||
|
/******/ [-65536, -1442971648], // ['169.254.0.0', '255.255.0.0'],
|
||||||
|
/******/ [-1048576, -1408237568], // ['172.16.0.0', '255.240.0.0'],
|
||||||
|
/******/ [-256, -1073741824], // ['192.0.0.0' , '255.255.255.0'],
|
||||||
|
/******/ [-256, -1073741312], // ['192.0.2.0' , '255.255.255.0'],
|
||||||
|
/******/ [-256, -1067949312], // ['192.88.99.0' , '255.255.255.0'],
|
||||||
|
/******/ [-65536, -1062731776], // ['192.168.0.0', '255.255.0.0'],
|
||||||
|
/******/ [-131072, -971898880 ], // ['198.18.0.0', '255.254.0.0'],
|
||||||
|
/******/ [-256, -969710592 ], // ['198.51.100.0', '255.255.255.0'],
|
||||||
|
/******/ [-256, -889163520 ], // ['203.0.113.0', '255.255.255.0'],
|
||||||
|
/******/ [-268435456, -536870912 ], // ['224.0.0.0', '240.0.0.0'],
|
||||||
|
/******/ [-268435456, -268435456 ], // ['240.0.0.0', '240.0.0.0'],
|
||||||
|
/******/ [-1, -1 ], // ['255.255.255.255' , '255.255.255.255'],
|
||||||
|
/******/ ].some(([netMask, maskedNet]) => (ipInt & netMask) === maskedNet)
|
||||||
|
/******/ ) {
|
||||||
|
/******/ return "DIRECT";
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ return oldTmp.call(this, url, host).replace(/(;|^)\\s*DIRECT\\s*(?=;|$)/g, "$1${pacMods.replaceDirectWith}");
|
||||||
|
/******/ };
|
||||||
|
`
|
||||||
|
}
|
||||||
/******/ if (global) {
|
/******/ if (global) {
|
||||||
/******/ global.FindProxyForURL = tmp;
|
/******/ global.FindProxyForURL = tmp;
|
||||||
/******/ } else {
|
/******/ } else {
|
||||||
|
|
|
@ -25,6 +25,9 @@ export default function getInfoLi() {
|
||||||
.infoRow {
|
.infoRow {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
.infoRow a {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
.infoRow > input[type="checkbox"] {
|
.infoRow > input[type="checkbox"] {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -0.08em;
|
top: -0.08em;
|
||||||
|
@ -49,7 +52,7 @@ export default function getInfoLi() {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
white-space: initial;
|
white-space: initial;
|
||||||
word-break: initial;
|
word-break: initial;
|
||||||
top: 100%;
|
/* top: 100%; Commented to get rid of bug when tooltip is placed below InfoLi children fields. */
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 1em;
|
right: 1em;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
|
@ -31,6 +31,7 @@ export default function getMain(theState) {
|
||||||
const Notifications = getNotifications(theState);
|
const Notifications = getNotifications(theState);
|
||||||
|
|
||||||
const checksName = 'pacMods';
|
const checksName = 'pacMods';
|
||||||
|
let selection = [0, 0]; // TODO: dirty hack but seems ok.
|
||||||
|
|
||||||
return class Main extends Component {
|
return class Main extends Component {
|
||||||
|
|
||||||
|
@ -161,6 +162,26 @@ export default function getMain(theState) {
|
||||||
orderedConfigs: this.state.catToOrderedMods['ownProxies'],
|
orderedConfigs: this.state.catToOrderedMods['ownProxies'],
|
||||||
childrenOfMod: {
|
childrenOfMod: {
|
||||||
customProxyStringRaw: ProxyEditor,
|
customProxyStringRaw: ProxyEditor,
|
||||||
|
replaceDirectWith: ({ conf, onNewValue, ifInputsDisabled }) =>
|
||||||
|
(<input
|
||||||
|
style="width: 100%; margin: 0.5em 0"
|
||||||
|
disabled={ifInputsDisabled}
|
||||||
|
value={conf.value || ''}
|
||||||
|
onInput={(event) => {
|
||||||
|
|
||||||
|
const t = event.target;
|
||||||
|
selection = [t.selectionStart, t.selectionEnd];
|
||||||
|
onNewValue(true, t.value);
|
||||||
|
}}
|
||||||
|
ref={(input) => {
|
||||||
|
|
||||||
|
if (input) {
|
||||||
|
input.focus();
|
||||||
|
input.selectionStart = selection[0];
|
||||||
|
input.selectionEnd = selection[1];
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>),
|
||||||
},
|
},
|
||||||
name: checksName,
|
name: checksName,
|
||||||
}, modsHandlers)
|
}, modsHandlers)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user