diff --git a/bcm27xx-eeprom/Makefile b/bcm27xx-eeprom/Makefile
index 8397130ae..6a4dda9b4 100755
--- a/bcm27xx-eeprom/Makefile
+++ b/bcm27xx-eeprom/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bcm27xx-eeprom
-PKG_VERSION:=16bb29427f96dc8276a7102c0526154a1084bffd
-PKG_RELEASE:=3
+PKG_VERSION:=3d6165304cb04bda4454e460dea791b5f92a122a
+PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/raspberrypi/rpi-eeprom/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=9bf42edbcd5ce38538750860c3c788af435206aa441b7d78cf88d094631dbb14
+PKG_HASH:=d6f25e3d962ea3c770ca1af78466371c47970381b48fb7c2acaf838966d327fc
PKG_LICENSE:=BSD-3-Clause Custom
PKG_LICENSE_FILES:=LICENSE
diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass
index 82a1e68f5..a859b345e 100755
--- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass
+++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass
@@ -375,13 +375,25 @@ _bypass_proto() {
_intf_rule_ss_rules() {
rule_name=$1
[ "$rule_name" = "ss_rules" ] && rule_name="def"
- if [ "$(iptables --wait=40 -t nat -L -n | grep ssr_${rule_name}_pre_src)" != "" ] && [ "$(iptables-save | grep ssr | grep omr_dst_bypass_$intf)" = "" ]; then
+ if [ "$(iptables --wait=40 -t nat -L -n | grep ssr_${rule_name}_dst)" != "" ] && [ "$(iptables-save | grep ssr_${rule_name}_dst | grep omr_dst_bypass_$intf)" = "" ]; then
iptables-restore -w --wait=60 --noflush <<-EOF
*nat
-I ssr_${rule_name}_dst 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
-I ssr_${rule_name}_dst 2 -m mark --mark 0x539$count -j RETURN
+ COMMIT
+ EOF
+ fi
+ if [ "$(iptables --wait=40 -t nat -L -n | grep ssr_${rule_name}_local_out)" != "" ] && [ "$(iptables-save | grep ssr_${rule_name}_local_out | grep omr_dst_bypass_$intf)" = "" ]; then
+ iptables-restore -w --wait=60 --noflush <<-EOF
+ *nat
-I ssr_${rule_name}_local_out 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
-I ssr_${rule_name}_local_out 2 -m mark --mark 0x539$count -j RETURN
+ COMMIT
+ EOF
+ fi
+ if [ "$(iptables --wait=40 -t nat -L -n | grep ssr_${rule_name}_pre_src)" != "" ] && [ "$(iptables-save | grep ssr_${rule_name}_pre_src | grep omr_dst_bypass_$intf)" = "" ]; then
+ iptables-restore -w --wait=60 --noflush <<-EOF
+ *nat
-I ssr_${rule_name}_pre_src 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
-I ssr_${rule_name}_pre_src 2 -m mark --mark 0x539$count -j RETURN
COMMIT
@@ -493,6 +505,7 @@ _intf_rule() {
iptables-restore -w --wait=60 --noflush <<-EOF
*mangle
-I omr-bypass 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
+ -I omr-bypass-local 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
COMMIT
EOF
fi
diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
index 62974d55b..d64b41986 100755
--- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
+++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
@@ -220,6 +220,7 @@ function wizard_add()
local typeintf = luci.http.formvalue("cbid.network.%s.type" % intf) or ""
local masterintf = luci.http.formvalue("cbid.network.%s.masterintf" % intf) or ""
local ifname = luci.http.formvalue("cbid.network.%s.intf" % intf) or ""
+ local vlan = luci.http.formvalue("cbid.network.%s.vlan" % intf) or ""
local device_ncm = luci.http.formvalue("cbid.network.%s.device.ncm" % intf) or ""
local device_qmi = luci.http.formvalue("cbid.network.%s.device.qmi" % intf) or ""
local device_modemmanager = luci.http.formvalue("cbid.network.%s.device.modemmanager" % intf) or ""
@@ -244,6 +245,9 @@ function wizard_add()
end
ucic:set("network",intf,"type",typeintf)
end
+ if vlan ~= "" then
+ ifname = ifname .. '.' .. vlan
+ end
if typeintf == "macvlan" and masterintf ~= "" then
ucic:set("network",intf,"type","macvlan")
ucic:set("network",intf,"masterintf",masterintf)
@@ -901,6 +905,9 @@ function settings_add()
-- Enable/disable debug
local debug = luci.http.formvalue("debug") or "0"
ucic:set("openmptcprouter","settings","debug",debug)
+ ucic:foreach("shadowsocks-libev", "ss_redir", function (section)
+ ucic:set("shadowsocks-libev",section[".name"],"verbose",debug)
+ end)
-- Enable/disable vnstat backup
local savevnstat = luci.http.formvalue("savevnstat") or "0"
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
index 019cb844a..bc47a5976 100755
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
@@ -21,6 +21,17 @@
end
return true
end
+ function splitstring(inputstr, sep)
+ if sep == nil then
+ sep = "%s"
+ end
+ local t={}
+ for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
+ table.insert(t, str)
+ end
+ return t
+ end
+
%>
@@ -537,20 +548,25 @@
+
+
<%:Choose physical interface.%>
@@ -885,7 +901,7 @@
end
end
for _, ifacea in ipairs(net:get_networks()) do
- if not (ifacea:name() == "loopback" or ifacea:name() == "omr6in4" or ifacea:name() == "omrvpn" or ifacea:name():match("^omrip.*")) then
+ if not (ifacea:name() == "loopback" or ifacea:name() == "lan" or ifacea:name() == "omr6in4" or ifacea:name() == "omrvpn" or ifacea:name():match("^omrip.*")) then
%>
<%
diff --git a/luci-app-sysupgrade/luasrc/view/sysupgrade.htm b/luci-app-sysupgrade/luasrc/view/sysupgrade.htm
index ac91611ad..7cb1efa9d 100644
--- a/luci-app-sysupgrade/luasrc/view/sysupgrade.htm
+++ b/luci-app-sysupgrade/luasrc/view/sysupgrade.htm
@@ -75,7 +75,7 @@
<%+header%>
<%:Sysupgrade%>
- Easily search and install new releases and package upgrades. Sysupgrade firmware are created on demand based on locally installed packages.
+ <%:Easily search and install new releases and package upgrades.%>
@@ -87,27 +87,27 @@
- Check "Keep settings" to retain the current configuration (requires a compatible firmware).
+ <%:Check "Keep settings" to retain the current configuration.%>
-
+
-
+
-
+
-
+
diff --git a/luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js b/luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js
index 68d53bf8f..bfb2a83ba 100644
--- a/luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js
+++ b/luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js
@@ -1,3 +1,4 @@
+'require ui';
function $(s) {
return document.getElementById(s.substring(1));
}
@@ -161,7 +162,7 @@ function upgrade_check() {
var candidates = []
hide("#status_box");
hide("#server_div");
- set_status("info", "Searching for upgrades", true);
+ set_status("info", _("Searching for upgrades"), true);
fetch(data.url + "/api/versions")
.then(response => response.json())
.then(response => {
@@ -188,7 +189,7 @@ function upgrade_check() {
if (candidates.length > 0) {
var info_output = "
New release " + candidates[0].latest + " available
"
- info_output += "Installed version: " + data.release.version
+ info_output += _('Installed version:') + " " + data.release.version
// tell server the currently installed version
request_dict.current_version = request_dict.version;
@@ -205,13 +206,13 @@ function upgrade_check() {
show("#edit_button");
}
var upgrade_button = $("#upgrade_button")
- upgrade_button.value = "Request firmware";
+ upgrade_button.value = _("Request firmware");
upgrade_button.style.display = "block";
upgrade_button.disabled = false;
upgrade_button.onclick = upgrade_request;
} else {
- set_status("success", "No upgrades available")
+ set_status("success", _("No upgrades available"))
}
});
@@ -265,7 +266,7 @@ function upgrade_request_callback(response) {
function flash_image() {
// Flash image via rpc-sys upgrade_start
- set_status("warning", "Flashing firmware. Don't unpower device", true)
+ set_status("warning", _("Flashing firmware. Don't unpower device"), true)
ubus_call("rpc-sys", "upgrade_start", {
"keep": $("#keep").checked
}, 'message');
@@ -281,11 +282,11 @@ function ping_ubus() {
var request = new XMLHttpRequest();
request.open("GET", ubus_url, true);
request.addEventListener('error', function(event) {
- set_status("warning", "Rebooting device - please wait!", true);
+ set_status("warning", _("Rebooting device - please wait!"), true);
setTimeout(ping_ubus, 5000)
});
request.addEventListener('load', function(event) {
- set_status("success", "Success! Please reload web interface");
+ set_status("success", _("Success! Please reload web interface"));
$("#upgrade_button").value = "Reload page";
show("#upgrade_button");
$("#upgrade_button").disabled = false;
@@ -295,13 +296,13 @@ function ping_ubus() {
});
request.send();
} else {
- set_status("danger", "Web interface could not reconnect to your device. Please reload web interface or check device manually")
+ set_status("danger", _("Web interface could not reconnect to your device. Please reload web interface or check device manually"))
}
}
function upload_image(blob) {
// Uploads received blob data to the server using cgi-io
- set_status("info", "Uploading firmware to device", true);
+ set_status("info", _("Uploading firmware to device"), true);
var request = new XMLHttpRequest();
var form_data = new FormData();
@@ -316,7 +317,7 @@ function upload_image(blob) {
});
request.addEventListener('error', function(event) {
- set_status("danger", "Upload of firmware failed, please retry by reloading web interface")
+ set_status("danger", _("Upload of firmware failed, please retry by reloading web interface"))
});
request.open('POST', origin + '/cgi-bin/cgi-upload');
@@ -340,7 +341,7 @@ function download_image() {
upload_image(blob)
}
};
- set_status("info", "Downloading firmware to web browser memory", true);
+ set_status("info", _("Downloading firmware to web browser memory"), true);
download_request.send();
}
diff --git a/openmptcprouter/files/bin/omr-test-speed b/openmptcprouter/files/bin/omr-test-speed
index b01279773..c38fcd9e4 100755
--- a/openmptcprouter/files/bin/omr-test-speed
+++ b/openmptcprouter/files/bin/omr-test-speed
@@ -27,8 +27,12 @@ if [ -z "$INTERFACE" ]; then
curl -4 $HOST >/dev/null || echo
else
domain=$(echo $HOST | awk -F/ '{print $3}')
- hostip=$(dig +nocmd +noall +answer A $domain | grep -v CNAME | awk '{print $5}' | tr -d "\n")
- ipset add ss_rules_dst_bypass_all $hostip
+ hostip=$(dig +nocmd +noall +answer A $domain | grep -v CNAME | awk '{print $5}' | tr '\n' ' ')
+ for ip in $hostip; do
+ ipset add ss_rules_dst_bypass_all $ip
+ done
curl -4 --interface $INTERFACE $HOST >/dev/null || echo
- ipset del ss_rules_dst_bypass_all $hostip
+ for ip in $hostip; do
+ ipset del ss_rules_dst_bypass_all $ip
+ done
fi
diff --git a/openmptcprouter/files/bin/omr-test-speedv6 b/openmptcprouter/files/bin/omr-test-speedv6
index 27fd43e68..b80399e5c 100755
--- a/openmptcprouter/files/bin/omr-test-speedv6
+++ b/openmptcprouter/files/bin/omr-test-speedv6
@@ -27,8 +27,12 @@ if [ -z "$INTERFACE" ]; then
curl -6 $HOST >/dev/null || echo
else
domain=$(echo $HOST | awk -F/ '{print $3}')
- hostip=$(dig +nocmd +noall +answer AAAA $domain | grep -v CNAME | awk '{print $5}' | tr -d "\n")
- ipset add ss_rules6_dst_bypass_all $hostip
+ hostip=$(dig +nocmd +noall +answer AAAA $domain | grep -v CNAME | awk '{print $5}' | tr '\n' ' ')
+ for ip in $hostip; do
+ ipset add ss_rules6_dst_bypass_all $ip
+ done
curl -6 --interface $INTERFACE $HOST >/dev/null || echo
- ipset del ss_rules6_dst_bypass_all $hostip
+ for ip in $hostip; do
+ ipset del ss_rules6_dst_bypass_all $ip
+ done
fi