diff --git a/package/gargoyle-i18n/files/www/languages.sh b/package/gargoyle-i18n/files/www/languages.sh index b61b39bf7a..a85d331935 100755 --- a/package/gargoyle-i18n/files/www/languages.sh +++ b/package/gargoyle-i18n/files/www/languages.sh @@ -26,6 +26,9 @@
+
+

<%~ LMSect %>

+
diff --git a/package/gargoyle/files/www/about.sh b/package/gargoyle/files/www/about.sh index dddb504ccc..350f4619e7 100755 --- a/package/gargoyle/files/www/about.sh +++ b/package/gargoyle/files/www/about.sh @@ -15,6 +15,9 @@
+
+

<%~ CSect %>

+

Eric Bishop (gargoyle-router.com): <%~ EBishop %>

@@ -44,12 +47,14 @@
-

<%~ LSect %>

+
+

<%~ LSect %>

+

Gargoyle is copyright © 2008-2016 by Eric Bishop

diff --git a/package/gargoyle/files/www/connlimits.sh b/package/gargoyle/files/www/connlimits.sh index 7d22df259b..01dce2c62b 100755 --- a/package/gargoyle/files/www/connlimits.sh +++ b/package/gargoyle/files/www/connlimits.sh @@ -32,6 +32,9 @@
+
+

<%~ CLSect %>

+
diff --git a/package/gargoyle/files/www/conntrack.sh b/package/gargoyle/files/www/conntrack.sh index 30a29ac155..ab1d13f77f 100755 --- a/package/gargoyle/files/www/conntrack.sh +++ b/package/gargoyle/files/www/conntrack.sh @@ -30,6 +30,9 @@
+
+

<%~ CCSect %>

+
diff --git a/package/gargoyle/files/www/dhcp.sh b/package/gargoyle/files/www/dhcp.sh index 6ade497eca..1851b6944d 100755 --- a/package/gargoyle/files/www/dhcp.sh +++ b/package/gargoyle/files/www/dhcp.sh @@ -16,7 +16,7 @@ echo "var dhcpEnabled = true;" echo "var subnet=\"$subnet\";" echo "var dhcpSection = getDhcpSection(uciOriginal);" - + echo "var hostData = new Array();" if [ -e /etc/hosts ] ; then awk ' $0 ~ /^[\t ]*[0-9]/ {print "hostData.push([\""$1"\",\""$2"\"]);"};' /etc/hosts @@ -61,11 +61,14 @@ for (etherIndex in etherData)
+
+

<%~ dhcp.DHCPstp %>

+
- +
@@ -89,14 +92,29 @@ for (etherIndex in etherData)
+
+ + + + +
+ +
+ + + <% echo -n "$subnet" %> + + +
+
- - (<%~ hours %>) + + (<%~ minutes %>)
- +
diff --git a/package/gargoyle/files/www/identification.sh b/package/gargoyle/files/www/identification.sh index 28f9a657ae..9dd32482e2 100755 --- a/package/gargoyle/files/www/identification.sh +++ b/package/gargoyle/files/www/identification.sh @@ -20,6 +20,9 @@
+
+

<%~ IdSect %>

+
diff --git a/package/gargoyle/files/www/js/basic.js b/package/gargoyle/files/www/js/basic.js index ccd4a15dd5..35fa5991c3 100644 --- a/package/gargoyle/files/www/js/basic.js +++ b/package/gargoyle/files/www/js/basic.js @@ -18,7 +18,7 @@ var openDnsFS = ["208.67.222.123", "208.67.220.123" ]; var nortonCSA = ["199.85.126.10", "199.85.127.10" ]; var nortonCSB = ["199.85.126.20", "199.85.127.20" ]; var nortonCSC = ["199.85.126.30", "199.85.127.30" ]; -var quad9DNS = ["9.9.9.9" ]; +var quad9DNS = ["9.9.9.9", "149.112.112.112" ]; var ncDns = [ "178.32.31.41", "106.187.47.17", "176.58.118.172" ] var onDns = [ "66.244.95.20", "95.211.32.162", "95.142.171.235" ] diff --git a/package/gargoyle/files/www/js/dhcp.js b/package/gargoyle/files/www/js/dhcp.js index 6277da8214..f67ee5172d 100644 --- a/package/gargoyle/files/www/js/dhcp.js +++ b/package/gargoyle/files/www/js/dhcp.js @@ -20,9 +20,10 @@ function saveChanges() else { setControlsEnabled(false, true); - + uci = uciOriginal.clone(); uci.remove('dhcp', dhcpSection, 'ignore'); + uci.remove('dhcp', dhcpSection, 'dhcp_option'); uci.set('dhcp', dhcpSection, 'interface', 'lan'); dhcpIds = ['dhcp_start', ['dhcp_start','dhcp_end'], 'dhcp_lease']; dhcpVisIds = ['dhcp_start', 'dhcp_end', 'dhcp_lease']; @@ -32,13 +33,18 @@ function saveChanges() dhcpFunctions = [setVariableFromValue, setVariableFromCombined, setVariableFromModifiedValue]; limitParams = [false, function(values){ return (parseInt(values[1]) - parseInt(values[0]) + 1); }]; - leaseParams = [false, function(value){ return value + "h"; }]; + leaseParams = [false, function(value){ return value + "m"; }]; dhcpParams = [false, limitParams,leaseParams]; setVariables(dhcpIds, dhcpVisIds, uci, dhcpPkgs, dhcpSections, dhcpOptions, dhcpFunctions, dhcpParams); - + + if(document.getElementById("dhcp_use_alt_gateway").checked && document.getElementById('alt_gateway').value != defaultAltGateway) + { + uci.set('dhcp', dhcpSection, 'dhcp_option', '3,' + subnet + document.getElementById('alt_gateway').value) + } + dhcpWillBeEnabled = true; - if(document.getElementById("dhcp_enabled").checked ) + if (document.getElementById("dhcp_enabled").checked ) { uci.remove("dhcp", "lan", "ignore"); } @@ -148,40 +154,55 @@ function resetData() tableContainer.appendChild(staticIpTable); - dhcpIds = ['dhcp_start', 'dhcp_end', 'dhcp_lease']; - dhcpPkgs = ['dhcp',['dhcp','dhcp'],'dhcp']; - dhcpSections = [dhcpSection,[dhcpSection,dhcpSection],dhcpSection]; - dhcpOptions = ['start', ['start','limit'], 'leasetime']; + dhcpIds = ['dhcp_start', 'dhcp_end', 'dhcp_lease', 'dhcp_use_alt_gateway', 'alt_gateway']; + dhcpPkgs = ['dhcp',['dhcp','dhcp'],'dhcp','dhcp','dhcp']; + dhcpSections = [dhcpSection,[dhcpSection,dhcpSection],dhcpSection,dhcpSection,dhcpSection]; + dhcpOptions = ['start', ['start','limit'], 'leasetime', 'dhcp_option', 'dhcp_option']; + defaultAltGateway = ((uciOriginal.get("network", "lan", "ipaddr")).split("."))[3]; enabledTest = function(value){return value != 1;}; endCombineFunc= function(values) { return (parseInt(values[0])+parseInt(values[1])-1); }; + useAltGatewayTest=function(v){v = (v== null ? '' : (v.split(","))[0]); return (v=='' || v!='3' ? false : true);}; leaseModFunc = function(value) { - var leaseHourValue; + var leaseMinValue; if(value.match(/.*h/)) { - leaseHourValue=value.substr(0,value.length-1); + leaseMinValue=value.substr(0,value.length-1)*60; } else if(value.match(/.*m/)) { - leaseHourValue=value.substr(0,value.length-1)/(60); + leaseMinValue=value.substr(0,value.length-1); } else if(value.match(/.*s/)) { - leaseHourValue=value.substr(0,value.length-1)/(60*60); + leaseMinValue=value.substr(0,value.length-1)/(60); } - return leaseHourValue; + return leaseMinValue; + }; + GWModFunc = function(v) + { + v = (v== null ? '' : v.split(",")); + v = (v.length < 2 ? '' : v[1].split(".")); + v = (v.length < 4 ? '' : v[3]); + if (v!='') + { + v = (parseInt(v) < 1 || parseInt(v) > 254 ? '' : v); + } + return v; }; - dhcpParams = [100, [endCombineFunc,150],[12,leaseModFunc]]; - dhcpFunctions = [loadValueFromVariable, loadValueFromMultipleVariables, loadValueFromModifiedVariable]; + dhcpParams = [100, [endCombineFunc,150],[720,leaseModFunc], useAltGatewayTest, [defaultAltGateway,GWModFunc]]; + dhcpFunctions = [loadValueFromVariable, loadValueFromMultipleVariables, loadValueFromModifiedVariable, loadChecked, loadValueFromModifiedVariable]; loadVariables(uciOriginal, dhcpIds, dhcpPkgs, dhcpSections, dhcpOptions, dhcpParams, dhcpFunctions); document.getElementById("dhcp_enabled").checked = dhcpEnabled; setEnabled(document.getElementById('dhcp_enabled').checked); - + enableAssociatedField(document.getElementById('dhcp_use_alt_gateway'), 'alt_gateway', defaultAltGateway); + + var firewallDefaultSections = uciOriginal.getAllSectionsOfType("firewall", "defaults"); var blockMismatches = uciOriginal.get("firewall", firewallDefaultSections[0], "enforce_dhcp_assignments") == "1" ? true : false; document.getElementById("block_mismatches").checked = blockMismatches; @@ -249,12 +270,13 @@ function staticFromConnected() function setEnabled(enabled) { - var ids=['dhcp_start', 'dhcp_end', 'dhcp_lease', 'block_mismatches', 'add_host', 'add_mac', 'add_ip', 'add_button']; + var ids=['dhcp_start', 'dhcp_end', 'dhcp_use_alt_gateway', 'alt_gateway', 'dhcp_lease', 'block_mismatches', 'add_host', 'add_mac', 'add_ip', 'add_button']; + var altgwchk = document.getElementById('dhcp_use_alt_gateway').checked; var idIndex; for (idIndex in ids) { var element = document.getElementById(ids[idIndex]); - setElementEnabled(element, enabled, ""); + setElementEnabled(element, (element.id == 'alt_gateway' ? altgwchk && enabled : enabled), (element.type == 'text' ? element.value : '')); } var staticIpTable = document.getElementById('staticip_table_container').firstChild; @@ -262,7 +284,6 @@ function setEnabled(enabled) resetHostnameMacList(); - } function addStatic() @@ -348,10 +369,10 @@ function proofreadStatic(controlDocument, tableDocument, excludeRow) function proofreadAll() { - dhcpIds = ['dhcp_start', 'dhcp_end', 'dhcp_lease']; - labelIds= ['dhcp_start_label', 'dhcp_end_label', 'dhcp_lease_label']; - functions = [validateNumeric, validateNumeric, validateNumeric]; - returnCodes = [0,0,0]; + dhcpIds = ['dhcp_start', 'dhcp_end', 'dhcp_lease', 'alt_gateway']; + labelIds= ['dhcp_start_label', 'dhcp_end_label', 'dhcp_lease_label', 'alt_gateway_label']; + functions = [validateNumeric, validateNumeric, validateNumeric, validateNumeric]; + returnCodes = [0,0,0,0]; visibilityIds= dhcpIds; errors = proofreadFields(dhcpIds, labelIds, functions, returnCodes, visibilityIds); @@ -363,16 +384,38 @@ function proofreadAll() var ip = uciOriginal.get("network", "lan", "ipaddr"); var start = parseInt(document.getElementById("dhcp_start").value); var end = parseInt(document.getElementById("dhcp_end").value ); + var gate = parseInt(document.getElementById("alt_gateway").value ); + var lease = parseInt(document.getElementById("dhcp_lease").value ); + if(!rangeInSubnet(mask, ip, start, end)) { errors.push(dhcpS.dsubErr); } + if(lease < 1 || lease > 71582788) + { + errors.push(dhcpS.leaseERR); + } + var ipEnd = parseInt( (ip.split("."))[3] ); + if(ipEnd >= start && ipEnd <= end) { errors.push(dhcpS.dipErr); } + + if(document.getElementById("dhcp_use_alt_gateway").checked) + { + var range = getSubnetRange(mask, ip); + if(gate <= range[0] || gate >= range[1]) + { + errors.push(dhcpS.rangeGWErr); + } + if(gate >= start && gate <= end) + { + errors.push(dhcpS.leaseGWErr); + } + } } return errors; diff --git a/package/gargoyle/files/www/login.sh b/package/gargoyle/files/www/login.sh index e486efb9f2..e10f4367e3 100755 --- a/package/gargoyle/files/www/login.sh +++ b/package/gargoyle/files/www/login.sh @@ -71,7 +71,10 @@ var passInvalid = false;
-
+
+
+

<%~ LSect %>

+
diff --git a/package/gargoyle/files/www/time.sh b/package/gargoyle/files/www/time.sh index 9f2472a2fc..44d4a4c58c 100755 --- a/package/gargoyle/files/www/time.sh +++ b/package/gargoyle/files/www/time.sh @@ -29,6 +29,9 @@
+
+

<%~ Section %>

+
diff --git a/package/gargoyle/files/www/update.sh b/package/gargoyle/files/www/update.sh index 311649d313..8a4be1ebcc 100755 --- a/package/gargoyle/files/www/update.sh +++ b/package/gargoyle/files/www/update.sh @@ -23,6 +23,9 @@
+
+

<%~ UpFrm %>

+
diff --git a/package/gargoyle/files/www/wol.sh b/package/gargoyle/files/www/wol.sh index 22fe643bee..f6e4b61507 100755 --- a/package/gargoyle/files/www/wol.sh +++ b/package/gargoyle/files/www/wol.sh @@ -35,7 +35,9 @@ var arpLines;
- +
+

<%~ WLSect %>

+
diff --git a/package/plugin-gargoyle-adblock/files/www/ablock.sh b/package/plugin-gargoyle-adblock/files/www/ablock.sh index 42e0684c2c..d5e30ccc8f 100644 --- a/package/plugin-gargoyle-adblock/files/www/ablock.sh +++ b/package/plugin-gargoyle-adblock/files/www/ablock.sh @@ -23,7 +23,10 @@

<%~ ablock.Adblock %>

-
+
+
+

<%~ Adblock %>

+
diff --git a/package/plugin-gargoyle-email-notifications/files/www/email.sh b/package/plugin-gargoyle-email-notifications/files/www/email.sh index bbe39f65e8..0dba7a912c 100755 --- a/package/plugin-gargoyle-email-notifications/files/www/email.sh +++ b/package/plugin-gargoyle-email-notifications/files/www/email.sh @@ -163,10 +163,10 @@ for (tab_idx in cron_data) { diff --git a/package/plugin-gargoyle-email-notifications/files/www/js/email.js b/package/plugin-gargoyle-email-notifications/files/www/js/email.js index 5ffcde0224..a1a0e05092 100644 --- a/package/plugin-gargoyle-email-notifications/files/www/js/email.js +++ b/package/plugin-gargoyle-email-notifications/files/www/js/email.js @@ -761,23 +761,7 @@ function getData(){ data['include'] = data['include'] + i; if(i == 5){ - var interval = document.getElementById("bandwidthIntervalSelect").value; - switch(interval){ - case email.minutes: - data['interval'] = "minute"; - break; - case email.quarterhours: - data['interval'] = "900"; - break; - case email.hours: - data['interval'] = "hour"; - break; - case email.days: - data['interval'] = "day"; - break - default: - break; - } + data['interval'] = getSelectedValue("bandwidthIntervalSelect"); } } } @@ -941,23 +925,7 @@ function LoadData() { if(i == 5){ document.getElementById("bandwidthIntervalSelect").disabled = false; document.getElementById("count").disabled = false; - var interval = uciOriginal.get("email", selector[0], "bandwidthInterval"); - switch(interval){ - case "minute": - document.getElementById("bandwidthIntervalSelect").value = email.minutes; - break; - case "900": - document.getElementById("bandwidthIntervalSelect").value = email.quarterhours; - break; - case "hour": - document.getElementById("bandwidthIntervalSelect").value = email.hours; - break; - case "day": - document.getElementById("bandwidthIntervalSelect").value = email.days; - break; - default: - break; - } + setSelectedValue('bandwidthIntervalSelect', uciOriginal.get("email", selector[0], "bandwidthInterval")); } break; } diff --git a/package/plugin-gargoyle-i18n-English-EN/files/www/i18n/English-EN/dhcp.js b/package/plugin-gargoyle-i18n-English-EN/files/www/i18n/English-EN/dhcp.js index ff36181420..41868020c1 100644 --- a/package/plugin-gargoyle-i18n-English-EN/files/www/i18n/English-EN/dhcp.js +++ b/package/plugin-gargoyle-i18n-English-EN/files/www/i18n/English-EN/dhcp.js @@ -23,3 +23,9 @@ dhcpS.dsubErr="Specified DHCP range falls outside LAN subnet."; dhcpS.dipErr="Specified DHCP range contains current LAN IP."; dhcpS.upErr="Could not update static IP."; dhcpS.AErr="Could not add row."; +dhcpS.UseAltGW="Use alternative default Gateway address"; +dhcpS.AltGW="Gateway address"; +dhcpS.leaseERR="Lease time value must be between 0 and 71582788."; +dhcpS.rangeGWErr="Alternative default Gateway address can't be 0 or 255 in subnet."; +dhcpS.leaseGWErr="Specified DHCP range contains alternative Gateway address."; +dhcpS.DHCPstp="DHCP Configuration"; diff --git a/package/plugin-gargoyle-i18n-Russian-RU/files/www/i18n/Russian-RU/dhcp.js b/package/plugin-gargoyle-i18n-Russian-RU/files/www/i18n/Russian-RU/dhcp.js index fb545db101..1746d3eab7 100644 --- a/package/plugin-gargoyle-i18n-Russian-RU/files/www/i18n/Russian-RU/dhcp.js +++ b/package/plugin-gargoyle-i18n-Russian-RU/files/www/i18n/Russian-RU/dhcp.js @@ -6,7 +6,7 @@ dhcpS.SrvE="Локальный DHCP-сервер включен"; dhcpS.Drng="Диапазон DHCP"; dhcpS.Strt="Начальный IP-адрес"; dhcpS.End="Конечный IP-адрес"; -dhcpS.LsTm="Срок действия адреса"; +dhcpS.LsTm="Срок аренды адреса"; dhcpS.SIPs="Статические IP-адреса"; dhcpS.BlckM="Блокировать MAC-адреса, которым присвоен статический IP-адрес, если они подключаются с другим IP"; dhcpS.AdSIP="Добавить статический IP-адрес"; @@ -20,6 +20,12 @@ dhcpS.dIPErr="дублировать IP-адрес"; dhcpS.subErr="Выбранный статический IP-адрес выходит за рамки локальной подсети."; dhcpS.ipErr="Выбранный статический IP-адрес является IP-адресом маршрутизатора."; dhcpS.dsubErr="Выбранный диапазон адресов для DHCP выходит за рамки локальной подсети."; -dhcpS.dipErr="Выбранный диапазон адресов для DHCP содержит адрес локальной сети."; +dhcpS.dipErr="Адрес роутера попадает в выбранный диапазон адресов для DHCP-аренды."; dhcpS.upErr="Невозможно обновить статический IP-адрес."; dhcpS.AErr="Невозможно добавить строку."; +dhcpS.UseAltGW="Использовать альтернативный адрес шлюза"; +dhcpS.AltGW="Адрес шлюза"; +dhcpS.leaseERR="Срок аренды адреса - значение должно быть больше 0 и меньше 71582788."; +dhcpS.rangeGWErr="Альтернативный адрес шлюза не должен быть 0 или 255 в подсети."; +dhcpS.leaseGWErr="Адрес шлюза попадает в выбранный диапазон адресов для DHCP-аренды."; +dhcpS.DHCPstp="Настройка DHCP"; diff --git a/package/plugin-gargoyle-initd/files/www/initd.sh b/package/plugin-gargoyle-initd/files/www/initd.sh index b3337a025f..a4d09ac6b2 100755 --- a/package/plugin-gargoyle-initd/files/www/initd.sh +++ b/package/plugin-gargoyle-initd/files/www/initd.sh @@ -39,6 +39,9 @@
+
+

<%~ Services %>

+
diff --git a/package/plugin-gargoyle-logread/files/www/logread.sh b/package/plugin-gargoyle-logread/files/www/logread.sh index 53ecda0775..336cc57941 100755 --- a/package/plugin-gargoyle-logread/files/www/logread.sh +++ b/package/plugin-gargoyle-logread/files/www/logread.sh @@ -14,6 +14,9 @@
+
+

<%~ SLogs %>

+
diff --git a/package/plugin-gargoyle-ping-watchdog/files/www/ping_watchdog.sh b/package/plugin-gargoyle-ping-watchdog/files/www/ping_watchdog.sh index 5905ad4617..519da441e8 100755 --- a/package/plugin-gargoyle-ping-watchdog/files/www/ping_watchdog.sh +++ b/package/plugin-gargoyle-ping-watchdog/files/www/ping_watchdog.sh @@ -13,6 +13,9 @@
+
+

<%~ Pdog %>

+
diff --git a/package/plugin-gargoyle-webshell/files/www/webshell.sh b/package/plugin-gargoyle-webshell/files/www/webshell.sh index 8d7e9c14ae..b8f589c93f 100755 --- a/package/plugin-gargoyle-webshell/files/www/webshell.sh +++ b/package/plugin-gargoyle-webshell/files/www/webshell.sh @@ -13,6 +13,9 @@
+
+

<%~ Webs %>

+
@@ -20,7 +23,9 @@ -
<%~ CmdWarn %>
+ +
<%~ CmdWarn %>
+