mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Merge branch 'test' into develop
This commit is contained in:
commit
25b1b48294
8 changed files with 76 additions and 31 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
%>
|
||||
<script type="text/javascript" src="<%=resource%>/cbi.js?v=git-18.243.49640-2f13420" data-strings="{"path":{"resource":"\/luci-static\/resources","browser":"\/cgi-bin\/luci\/admin\/filebrowser"}}"></script>
|
||||
|
@ -537,20 +548,25 @@
|
|||
<select class="cbi-input-select" data-update="change" id="cbid.network.<%=ifname%>.intf" name="cbid.network.<%=ifname%>.intf" size="1">
|
||||
<%
|
||||
iffind=0
|
||||
uciifname=uci:get("network",ifname,"ifname")
|
||||
realifname=splitstring(uciifname,'.')[1] or ""
|
||||
vlan=splitstring(uciifname,'.')[2] or ""
|
||||
for _, ifacea in ipairs(ifaces) do
|
||||
if not (ifacea == "lo" or ifacea == "6in4-omr6in4" or ifacea == "mlvpn0" or ifacea:match("^ifb.*") or ifacea:match("^sit.*") or ifacea:match("^gre.*") or ifacea:match("^ip6.*") or ifacea:match("^teql.*") or ifacea:match("^erspan.*") or ifacea:match("^tun.*")) and device_notvirtual(ifacea) then
|
||||
%>
|
||||
<option value="<%=ifacea%>"<% if uci:get("network",ifname,"ifname") == ifacea then iffind = 1 %> selected="selected"<% end %>><%=ifacea%></option>
|
||||
<option value="<%=ifacea%>"<% if realifname == ifacea then iffind = 1 %> selected="selected"<% end %>><%=ifacea%></option>
|
||||
<%
|
||||
end
|
||||
end
|
||||
if iffind == 0 and uci:get("network",ifname,"ifname") ~= nil then
|
||||
if iffind == 0 and uciifname ~= nil then
|
||||
%>
|
||||
<option value="<%=uci:get("network",ifname,"ifname")%>" selected="selected"><%=uci:get("network",ifname,"ifname")%></option>
|
||||
<option value="<%=uciifname%>" selected="selected"><%=uciifname%></option>
|
||||
<%
|
||||
end
|
||||
%>
|
||||
</select>
|
||||
<label><%:VLAN%></label>
|
||||
<input type="text" id="cbid.network.<%=ifname%>.vlan" name="cbid.network.<%=ifname%>.vlan" class="cbi-input-text" placeholder="<%:VLAN%>" value="<%=vlan%>" data-optional="true">
|
||||
<br />
|
||||
<div class="cbi-value-description">
|
||||
<%: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
|
||||
%>
|
||||
<option value="<%='@' .. ifacea:name()%>"><%='@' .. ifacea:name() .. ' (alias)'%></option>
|
||||
<%
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
<%+header%>
|
||||
<h2 name="content"><%:Sysupgrade%></h2>
|
||||
<div class="cbi-map-descr">
|
||||
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.%>
|
||||
</div>
|
||||
<div style="display: none" id="status_box" class="alert-message info"></div>
|
||||
<div style="display: none" id="packages" class="alert-message success"></div>
|
||||
|
@ -87,27 +87,27 @@
|
|||
<div class="cbi-selection-node">
|
||||
<div class="cbi-value" id="keep_container" style="display: none">
|
||||
<div class="cbi-section-descr">
|
||||
Check "Keep settings" to retain the current configuration (requires a compatible firmware).
|
||||
<%:Check "Keep settings" to retain the current configuration.%>
|
||||
</div>
|
||||
<label class="cbi-value-title" for="keep">Keep settings:</label>
|
||||
<label class="cbi-value-title" for="keep"><%:Keep settings:%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input name="keep" id="keep" checked="checked" type="checkbox">
|
||||
</div>
|
||||
</div>
|
||||
<div class="cbi-value" id="edit_button" style="display: none">
|
||||
<div class="cbi-value-field">
|
||||
<input class="cbi-button" value="Edit installed packages" onclick="edit_packages()" type="button">
|
||||
<input class="cbi-button" value="<%:Edit installed packages%>" onclick="edit_packages()" type="button">
|
||||
</div>
|
||||
</div>
|
||||
<div class="cbi-value cbi-value" id="server_div" style="display:none">
|
||||
<label class="cbi-value-title" for="server">Server:</label>
|
||||
<label class="cbi-value-title" for="server"><%:Server:%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input onclick="edit_server()" class="cbi-button cbi-button-edit" value="" type="button" id="server" name="server">
|
||||
</div>
|
||||
</div>
|
||||
<div class="cbi-value cbi-value-last">
|
||||
<div class="cbi-value-field">
|
||||
<input class="cbi-button cbi-button-apply" value="Search for upgrades" style="display: none" onclick="upgrade_check()" type="button" id="upgrade_button">
|
||||
<input class="cbi-button cbi-button-apply" value="<%:Search for upgrades%>" style="display: none" onclick="upgrade_check()" type="button" id="upgrade_button">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -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 = "<h3>New release <b>" + candidates[0].latest + "</b> available</h3>"
|
||||
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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue