diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 000f6f953..c8eb36ee8 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -505,6 +505,11 @@ function wizard_add() ucic:set("openmptcprouter","settings","mptcpovervpn",mptcpovervpn_vpn) ucic:save("openmptcprouter") + -- Get Country + local country = luci.http.formvalue("country") or "world" + ucic:set("openmptcprouter","settings","country",country) + ucic:save("openmptcprouter") + -- Get Proxy set by default local default_proxy = luci.http.formvalue("default_proxy") or "shadowsocks" if default_proxy == "shadowsocks" and serversnb > 0 and serversnb > disablednb then diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 23e9864f5..a28638781 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -147,9 +147,9 @@
- <%:Common server settings%> + <%:Advanced settings%>
- +
@@ -382,6 +382,23 @@
+
+ <%:Country settings%> +
<%:Set configuration for countries with some specificities.%>
+
+ +
+ +
+
+ <%:For China, set an accessible DNS and disable DNSSEC.%> +
+
+
+

diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index 10cd90834..732b38647 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -135,6 +135,24 @@ start_service() { sed -i -e '/tcp_fin_timeout/d' -e '/tcp_keepalive_time/d' -e '/nf_conntrack_max/d' -e '/tcp_syn_retries/d' -e '/tcp_fastopen/d' -e '/tcp_retries2/d' -e '/tcp_retries1/d' -e '/ip_default_ttl/d' /etc/sysctl.conf sed -i -e '/tcp_fin_timeout/d' -e '/tcp_keepalive_time/d' -e '/nf_conntrack_max/d' -e '/tcp_syn_retries/d' -e '/tcp_fastopen/d' -e '/tcp_retries2/d' -e '/tcp_retries1/d' -e '/ip_default_ttl/d' /etc/sysctl.d/10-default.conf + if [ "$(uci -q get openmptcprouter.settings.country)" = "china" ] && [ -n "$(uci -q get dhcp.@dnsmasq[0].server | grep '127.0.0.1#5353')" ]; then + uci -q batch <<-EOF > /dev/null + del_list dhcp.@dnsmasq[0].server='127.0.0.1#5353' + add_list dhcp.@dnsmasq[0].server='114.114.114.114' + set dhcp.@dnsmasq[0].dnsseccheckunsigned='0' + delete dhcp.@dnsmasq[0].dnssec='1' + commit dhcp + EOF + elif [ "$(uci -q get openmptcprouter.settings.country)" = "world" ] && [ -n "$(uci -q get dhcp.@dnsmasq[0].server | grep '114.114.114.114')" ]; then + uci -q batch <<-EOF > /dev/null + add_list dhcp.@dnsmasq[0].server='127.0.0.1#5353' + del_list dhcp.@dnsmasq[0].server='114.114.114.114' + set dhcp.@dnsmasq[0].dnsseccheckunsigned='1' + set dhcp.@dnsmasq[0].dnssec='1' + commit dhcp + EOF + fi + if [ "$(uci -q get rpcd.@rpcd[0].socket)" != "/var/run/ubus/ubus.sock" ]; then uci -q batch <<-EOF >/dev/null set rpcd.@rpcd[0].socket='/var/run/ubus/ubus.sock'