1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Merge pull request #87 from Ysurac/develop

sync
This commit is contained in:
suyuan 2021-03-19 12:16:33 +08:00 committed by GitHub
commit 7254c6f48d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 156 additions and 119 deletions

View file

@ -10,6 +10,7 @@ LUCI_TITLE:=Firewall and Portforwarding application
LUCI_DEPENDS:=+firewall LUCI_DEPENDS:=+firewall
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0
PKG_VERSION:=omr-202103
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk

View file

@ -11,6 +11,7 @@ LUCI_DESCRIPTION:=Provides Web UI for DNS Over HTTPS Proxy
LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full +https-dns-proxy LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full +https-dns-proxy
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_RELEASE:=3 PKG_RELEASE:=3
PKG_VERSION:=omr-202103
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk

View file

@ -179,7 +179,7 @@ _bypass_lan_ip() {
-A omr-bypass-local -s $ip -j MARK --set-mark 0x539 -A omr-bypass-local -s $ip -j MARK --set-mark 0x539
COMMIT COMMIT
EOF EOF
elif [ "$valid_ip6" = "ok" ]; then elif [ "$valid_ip6" = "ok" ] && [ "$disableipv6" = "0" ]; then
ip6tables-restore -w --wait=60 --noflush <<-EOF ip6tables-restore -w --wait=60 --noflush <<-EOF
*mangle *mangle
-A omr-bypass6 -s $ip -j MARK --set-mark 0x6539 -A omr-bypass6 -s $ip -j MARK --set-mark 0x6539
@ -198,7 +198,7 @@ _bypass_lan_ip() {
-A omr-bypass-local -s $ip -j MARK --set-mark 0x539$intfid -A omr-bypass-local -s $ip -j MARK --set-mark 0x539$intfid
COMMIT COMMIT
EOF EOF
elif [ "$valid_ip6" = "ok" ]; then elif [ "$valid_ip6" = "ok" ] && [ "$disableipv6" = "0" ]; then
ip6tables-restore -w --wait=60 --noflush <<-EOF ip6tables-restore -w --wait=60 --noflush <<-EOF
*mangle *mangle
-A omr-bypass6 -s $ip -j MARK --set-mark 0x6539$intfid -A omr-bypass6 -s $ip -j MARK --set-mark 0x6539$intfid

View file

@ -127,12 +127,12 @@ o.default = false
o.disabled = 0 o.disabled = 0
o.enabled = 1 o.enabled = 1
o = s:option(DynamicList, "hosts", translate("Hosts"),translate("Must be IPs and not domains")) o = s:option(DynamicList, "hosts", translate("Hosts"), translate("Must be IPs and not domains"))
o.placeholder = "4.2.2.1" o.placeholder = "4.2.2.1"
o.default = { "4.2.2.1", "8.8.8.8" } o.default = { "4.2.2.1", "8.8.8.8" }
o.rmempty = false o.rmempty = false
o = s:option(DynamicList, "hosts6", translate("Hosts IPv6"),translate("Must be IPs and not domains")) o = s:option(DynamicList, "hosts6", translate("Hosts IPv6"), translate("Must be IPs and not domains"))
o.placeholder = "2001:4860:4860::8844" o.placeholder = "2001:4860:4860::8844"
o.default = { "2001:4860:4860::8888", "2001:4860:4860::8844" } o.default = { "2001:4860:4860::8888", "2001:4860:4860::8844" }
o.rmempty = false o.rmempty = false
@ -188,11 +188,13 @@ o.default = false
o.disabled = 0 o.disabled = 0
o.enabled = 1 o.enabled = 1
o = s:option(DynamicList, "hosts", translate("Hosts"), translate("Must be IPs and not domains"))
o = s:option(DynamicList, "hosts", translate("Hosts"))
o.placeholder = "4.2.2.1" o.placeholder = "4.2.2.1"
o.default = { "4.2.2.1", "8.8.8.8" } o.default = { "4.2.2.1", "8.8.8.8" }
o.rmempty = false o.rmempty = false
o = s:option(DynamicList, "hosts6", translate("Hosts IPv6"), translate("Must be IPs and not domains"))
o.placeholder = "2001:4860:4860::8844"
o.rmempty = false
return m return m

View file

@ -583,10 +583,15 @@ function wizard_add()
if default_proxy == "shadowsocks" and serversnb > disablednb then if default_proxy == "shadowsocks" and serversnb > disablednb then
ucic:set("shadowsocks-libev","sss" .. nbip,"disabled","0") ucic:set("shadowsocks-libev","sss" .. nbip,"disabled","0")
end end
nbip = nbip + 1
if disableipv6 == "1" and nbip > 0 then if disableipv6 == "1" and nbip > 0 then
ucic:set("shadowsocks-libev","sss" .. nbip,"disabled","1")
break break
end end
nbip = nbip + 1 end
if nbip == 1 then
--ucic:set("shadowsocks-libev","sss" .. nbip,"server",server_ip)
ucic:set("shadowsocks-libev","sss" .. nbip,"disabled","1")
end end
end end
k = k + 1 k = k + 1
@ -621,6 +626,10 @@ function wizard_add()
break break
end end
end end
if nbip == 1 then
-- ucic:set("shadowsocks-libev","sss" .. nbip,"server",server_ip)
ucic:set("shadowsocks-libev","sss" .. nbip,"disabled","1")
end
end end
end end
end end

View file

@ -62,7 +62,8 @@ omr_set_settings() {
config_get type "$1" type config_get type "$1" type
config_get ipv6 "$1" ipv6 config_get ipv6 "$1" ipv6
config_get addlatency "$1" addlatency config_get addlatency "$1" addlatency
[ -z "$multipath" ] || [ "$multipath" = "off" ] && [ "$1" != "omrvpn" ] && [ "$1" != "glorytun" ] && return [ -z "$multipath" ] || [ "$multipath" = "off" ] && return
[ "$1" = "omrvpn" ] || [ "$1" = "glorytun" ] && return
uci -q set openmptcprouter.$1=interface uci -q set openmptcprouter.$1=interface
uci -q set openmptcprouter.$1.multipath="$multipath" uci -q set openmptcprouter.$1.multipath="$multipath"
@ -86,13 +87,13 @@ omr_set_settings() {
fi fi
if [ "$addlatency" = "0" ] && [ "$(tc qdisc show dev $ifname | grep delay)" != "" ]; then if [ "$addlatency" = "0" ] && [ "$(tc qdisc show dev $ifname | grep delay)" != "" ]; then
tc qdisc del dev ${ifname} root netem tc qdisc del dev ${ifname} root netem 2>&1 >/dev/null
fi fi
if [ "$addlatency" != "0" ]; then if [ "$addlatency" != "0" ]; then
if [ "$(tc qdisc show dev $ifname | grep delay)" != "" ]; then if [ "$(tc qdisc show dev $ifname | grep delay)" != "" ]; then
tc qdisc add dev ${ifname} root netem delay ${addlatency}ms tc qdisc add dev ${ifname} root netem delay ${addlatency}ms 2>&1 >/dev/null
elif [ "$(tc qdisc show dev $ifname | awk '/delay/ { print $10 }' | sed 's/ms//')" != "$addlatency" ]; then elif [ "$(tc qdisc show dev $ifname | awk '/delay/ { print $10 }' | sed 's/ms//')" != "$addlatency" ]; then
tc qdisc replace dev ${ifname} root netem delay ${addlatency}ms tc qdisc replace dev ${ifname} root netem delay ${addlatency}ms 2>&1 >/dev/null
fi fi
fi fi
fi fi

View file

@ -11,6 +11,7 @@ LUCI_TITLE:=LuCI Support for shadowsocks-libev
LUCI_DEPENDS:=+luci-compat LUCI_DEPENDS:=+luci-compat
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0
PKG_VERSION:=omr-202103
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk

View file

@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Support for ModemManager LUCI_TITLE:=Support for ModemManager
LUCI_DEPENDS:=+modemmanager LUCI_DEPENDS:=+modemmanager
PKG_VERSION:=omr-202103
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk

View file

@ -5,6 +5,10 @@
/etc/init.d/mptcp enabled || exit 0 /etc/init.d/mptcp enabled || exit 0
logger -t "mptcp" "Reloading mptcp config due to $ACTION of $INTERFACE ($DEVICE)" if [ -z "$(echo $DEVICE | grep oip | grep gre)" ]; then
/etc/init.d/mptcp reload "$DEVICE" >/dev/null || exit 0 logger -t "mptcp" "Reloading mptcp config due to $ACTION of $INTERFACE ($DEVICE)"
/etc/init.d/mptcp reload "$DEVICE" >/dev/null || exit 0
else
multipath $DEVICE off 2>&1 >/dev/null
fi

View file

@ -206,7 +206,7 @@ interface_multipath_settings() {
commit network commit network
EOF EOF
else else
ip rule del table $id > /dev/null 2>&1 [ -n "$(ip rule list | grep $id)" ] && ip rule del table $id > /dev/null 2>&1
ip route flush $id > /dev/null 2>&1 ip route flush $id > /dev/null 2>&1
fi fi
@ -239,10 +239,10 @@ interface_multipath_settings() {
else else
#echo "Add routes for $ipaddr table $id" #echo "Add routes for $ipaddr table $id"
ip rule add from $ipaddr table $id pref 0 ip rule add from $ipaddr table $id pref 0
ip route replace $network/$netmask dev $iface scope link metric $id ip route replace $network/$netmask dev $iface scope link metric $id 2>&1 >/dev/null
ip route replace $network/$netmask dev $iface scope link table $id ip route replace $network/$netmask dev $iface scope link table $id 2>&1 >/dev/null
ip route replace default via $gateway dev $iface table $id ip route replace default via $gateway dev $iface table $id 2>&1 >/dev/null
ip route replace default via $gateway dev $iface metric $id ip route replace default via $gateway dev $iface metric $id 2>&1 >/dev/null
#ip route flush $id #ip route flush $id
fi fi
@ -250,7 +250,7 @@ interface_multipath_settings() {
#[ "$mode" = "" ] && mode="$(uci -q get openmptcprouter.${config}.multipath)" #[ "$mode" = "" ] && mode="$(uci -q get openmptcprouter.${config}.multipath)"
[ "$mode" = "master" ] && { [ "$mode" = "master" ] && {
#echo "ip route replace default via $gateway dev $iface" #echo "ip route replace default via $gateway dev $iface"
ip route replace default via $gateway dev $iface ip route replace default via $gateway dev $iface 2>&1 >/dev/null
} }
if [ "$txqueuelen" != "" ]; then if [ "$txqueuelen" != "" ]; then
ifconfig $iface txqueuelen $txqueuelen > /dev/null 2>&1 ifconfig $iface txqueuelen $txqueuelen > /dev/null 2>&1
@ -294,7 +294,7 @@ interface_multipath_settings() {
commit network commit network
EOF EOF
else else
ip -6 rule del table 6$id > /dev/null 2>&1 [ -n "$(ip -6 rule list | grep 6$id)" ] && ip -6 rule del table 6$id > /dev/null 2>&1
ip -6 route flush 6$id > /dev/null 2>&1 ip -6 route flush 6$id > /dev/null 2>&1
fi fi
if [ -n "$ip6addr" ] && [ -n "$gateway6" ] && [ -n "$network6" ]; then if [ -n "$ip6addr" ] && [ -n "$gateway6" ] && [ -n "$network6" ]; then
@ -322,17 +322,17 @@ interface_multipath_settings() {
commit network commit network
EOF EOF
else else
ip -6 rule add from $ip6addr table 6$id pref 0 ip -6 rule add from $ip6addr table 6$id pref 0 2>&1 >/dev/null
ip -6 route replace $network6/$netmask6 dev $iface scope link metric 6$id ip -6 route replace $network6/$netmask6 dev $iface scope link metric 6$id 2>&1 >/dev/null
ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id 2>&1 >/dev/null
ip -6 route replace default via $gateway6 dev $iface table 6$id ip -6 route replace default via $gateway6 dev $iface table 6$id 2>&1 >/dev/null
ip -6 route replace default via $gateway6 dev $iface metric $id ip -6 route replace default via $gateway6 dev $iface metric 6$id 2>&1 >/dev/null
ip -6 route flush 6$id ip -6 route flush 6$id 2>&1 >/dev/null
fi fi
#config_get mode "$config" multipath "off" #config_get mode "$config" multipath "off"
[ "$mode" = "master" ] && { [ "$mode" = "master" ] && {
ip -6 route replace default via $gateway6 dev $iface ip -6 route replace default via $gateway6 dev $iface 2>&1 >/dev/null
} }
#[ "$mode" = "off" ] && { #[ "$mode" = "off" ] && {
# ifconfig $iface txqueuelen 50 > /dev/null 2>&1 # ifconfig $iface txqueuelen 50 > /dev/null 2>&1
@ -386,7 +386,7 @@ add_route() {
[ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$interface" | jsonfilter -q -e '@["device"]') [ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$interface" | jsonfilter -q -e '@["device"]')
routeset="$routeset dev $iface" routeset="$routeset dev $iface"
logger -t "MPTCP" "Add route $routeset" logger -t "MPTCP" "Add route $routeset"
ip route replace $routeset ip route replace $routeset 2>&1 >/dev/null
} }
add_route6() { add_route6() {
@ -407,7 +407,7 @@ add_route6() {
[ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$interface" | jsonfilter -q -e '@["device"]') [ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$interface" | jsonfilter -q -e '@["device"]')
routeset="$routeset dev $iface" routeset="$routeset dev $iface"
logger -t "MPTCP" "Add IPv6 route $routeset" logger -t "MPTCP" "Add IPv6 route $routeset"
ip -6 route replace $routeset ip -6 route replace $routeset 2>&1 >/dev/null
} }
remove() { remove() {

View file

@ -28,8 +28,8 @@ set_route() {
fi fi
if [ "$interface_gw" != "" ] && [ "$interface_if" != "" ]; then if [ "$interface_gw" != "" ] && [ "$interface_if" != "" ]; then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "$PREVINTERFACE down. Replace default route by $interface_gw dev $interface_if" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "$PREVINTERFACE down. Replace default route by $interface_gw dev $interface_if"
[ "$SETDEFAULT" = "yes" ] && ip route replace default scope global nexthop via $interface_gw dev $interface_if [ "$SETDEFAULT" = "yes" ] && ip route replace default scope global nexthop via $interface_gw dev $interface_if 2>&1 >/dev/null
ip route replace default via $interface_gw dev $interface_if table 991337 && SETROUTE=true ip route replace default via $interface_gw dev $interface_if table 991337 2>&1 >/dev/null && SETROUTE=true
fi fi
fi fi
} }
@ -62,8 +62,8 @@ set_route6() {
fi fi
if [ "$interface_gw" != "" ] && [ "$interface_if" != "" ] && [ -n "$(echo $interface_gw | grep ':')" ]; then if [ "$interface_gw" != "" ] && [ "$interface_if" != "" ] && [ -n "$(echo $interface_gw | grep ':')" ]; then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "$PREVINTERFACE down. Replace default route by $interface_gw dev $interface_if" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "$PREVINTERFACE down. Replace default route by $interface_gw dev $interface_if"
[ "$SETDEFAULT" = "yes" ] && ip -6 route replace default scope global nexthop via $interface_gw dev $interface_if [ "$SETDEFAULT" = "yes" ] && ip -6 route replace default scope global nexthop via $interface_gw dev $interface_if 2>&1 >/dev/null
ip -6 route replace default via $interface_gw dev $interface_if table 991337 && SETROUTE=true ip -6 route replace default via $interface_gw dev $interface_if table 991337 2>&1 >/dev/null && SETROUTE=true
fi fi
fi fi
} }
@ -84,7 +84,7 @@ set_server_default_route() {
if [ "$(ip r show $serverip | grep nexthop)" != "" ]; then if [ "$(ip r show $serverip | grep nexthop)" != "" ]; then
ip r delete $serverip >/dev/null 2>&1 ip r delete $serverip >/dev/null 2>&1
fi fi
ip route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric 1 ip route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric 1 2>&1 >/dev/null
fi fi
} }
config_list_foreach $server ip server_route config_list_foreach $server ip server_route
@ -106,7 +106,7 @@ set_server_default_route6() {
if [ "$(ip -6 r show $serverip | grep nexthop)" != "" ]; then if [ "$(ip -6 r show $serverip | grep nexthop)" != "" ]; then
ip -6 r delete $serverip >/dev/null 2>&1 ip -6 r delete $serverip >/dev/null 2>&1
fi fi
ip -6 route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric 1 ip -6 route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric 1 2>&1 >/dev/null
fi fi
} }
config_list_foreach $server ip server_route config_list_foreach $server ip server_route
@ -121,7 +121,7 @@ delete_server_default_route() {
[ "$disabled" = "1" ] && return [ "$disabled" = "1" ] && return
if [ "$serverip" != "" ] && [ "$(ip route show $serverip metric 1)" != "" ]; then if [ "$serverip" != "" ] && [ "$(ip route show $serverip metric 1)" != "" ]; then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Delete server ($serverip) default route" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Delete server ($serverip) default route"
ip route del $serverip metric 1 >/dev/null 2>&1 [ -n "$(ip route show $serverip metric 1)" ] && ip route del $serverip metric 1 >/dev/null 2>&1
fi fi
} }
config_list_foreach $server ip delete_route config_list_foreach $server ip delete_route
@ -136,7 +136,7 @@ delete_server_default_route6() {
[ "$disabled" = "1" ] && return [ "$disabled" = "1" ] && return
if [ "$serverip" != "" ] && [ "$(ip -6 route show $serverip metric 1)" != "" ]; then if [ "$serverip" != "" ] && [ "$(ip -6 route show $serverip metric 1)" != "" ]; then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Delete server ($serverip) default route" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Delete server ($serverip) default route"
ip -6 route del $serverip metric 1 >/dev/null 2>&1 [ -n "$(ip -6 route show $serverip metric 1)" ] && ip -6 route del $serverip metric 1 >/dev/null 2>&1
fi fi
} }
config_list_foreach $server ip delete_route config_list_foreach $server ip delete_route
@ -387,17 +387,17 @@ set_server_all_routes() {
config_foreach set_routes_intf interface config_foreach set_routes_intf interface
uintf="$(echo $routesintf | awk '{print $5}')" uintf="$(echo $routesintf | awk '{print $5}')"
uintfb="$(echo $routesintfbackup | awk '{print $5}')" uintfb="$(echo $routesintfbackup | awk '{print $5}')"
if [ -n "$routesintf" ] && ([ "$nbintf" -gt "1" ] && [ "$(ip r show $serverip metric 0 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintf " ]) || ([ "$nbintf" = "1" ] && [ -n "$uintf" ] && [ "$(ip r show $serverip metric 1 | grep $uintf)" = "" ]); then if [ -n "$routesintf" ] && ([ "$nbintf" -gt "1" ] && [ "$(ip r show $serverip metric 1 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintf " ]) || ([ "$nbintf" = "1" ] && [ -n "$uintf" ] && [ "$(ip r show $serverip metric 1 | grep $uintf)" = "" ]); then
while [ "$(ip r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "$serverip" ] && [ "$(ip r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "" ]; do while [ "$(ip r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "$serverip" ] && [ "$(ip r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "" ]; do
ip r del $serverip ip r del $serverip
done done
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) default route $serverip $routesintf" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) default route $serverip $routesintf"
ip route replace $serverip scope global metric 1 $routesintf ip route replace $serverip scope global metric 1 $routesintf 2>&1 >/dev/null
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "New server route is $(ip r show $serverip metric 1 | tr -d '\t' | tr -d '\n')" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "New server route is $(ip r show $serverip metric 1 | tr -d '\t' | tr -d '\n')"
fi fi
if [ -n "$routesintfbackup" ] && ([ "$nbintfb" -gt "1" ] && [ "$(ip r show $serverip metric 999 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintfbackup " ]) || ([ "$nbintfb" = "1" ] && [ -n "$uintfb" ] && [ "$(ip r show $serverip metric 999 | grep $uintfb)" = "" ]); then if [ -n "$routesintfbackup" ] && ([ "$nbintfb" -gt "1" ] && [ "$(ip r show $serverip metric 999 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintfbackup " ]) || ([ "$nbintfb" = "1" ] && [ -n "$uintfb" ] && [ "$(ip r show $serverip metric 999 | grep $uintfb)" = "" ]); then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) backup default route $serverip $routesintfbackup nbintfb $nbintfb $OMR_TRACKER_DEVICE" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) backup default route $serverip $routesintfbackup nbintfb $nbintfb $OMR_TRACKER_DEVICE"
ip route replace $serverip scope global metric 999 $routesintfbackup ip route replace $serverip scope global metric 999 $routesintfbackup 2>&1 >/dev/null
fi fi
fi fi
} }
@ -429,17 +429,17 @@ set_server_all_routes6() {
config_foreach set_routes_intf6 interface config_foreach set_routes_intf6 interface
uintf="$(echo $routesintf6 | awk '{print $5}')" uintf="$(echo $routesintf6 | awk '{print $5}')"
uintfb="$(echo $routesintfbackup6 | awk '{print $5}')" uintfb="$(echo $routesintfbackup6 | awk '{print $5}')"
if [ -n "$routesintf6" ] && ([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show $serverip metric 0 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintf6 " ]) || ([ "$nbintf6" = "1" ] && [ -n "$uintf" ] && [ "$(ip -6 r show $serverip metric 1 | grep $uintf)" = "" ]); then if [ -n "$routesintf6" ] && ([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show $serverip metric 1 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintf6 " ]) || ([ "$nbintf6" = "1" ] && [ -n "$uintf" ] && [ "$(ip -6 r show $serverip metric 1 | grep $uintf)" = "" ]); then
while [ "$(ip -6 r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "$serverip" ] && [ "$(ip -6 r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "" ]; do while [ "$(ip -6 r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "$serverip" ] && [ "$(ip -6 r show $serverip | grep -v nexthop | sed 's/ //g' | tr -d '\n')" != "" ]; do
ip -6 r del $serverip ip -6 r del $serverip
done done
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) default route $serverip $routesintf6" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) default route $serverip $routesintf6"
ip -6 route replace $serverip scope global metric 1 $routesintf6 ip -6 route replace $serverip scope global metric 1 $routesintf6 2>&1 >/dev/null
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "New server route is $(ip -6 r show $serverip metric 1 | tr -d '\t' | tr -d '\n')" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "New server route is $(ip -6 r show $serverip metric 1 | tr -d '\t' | tr -d '\n')"
fi fi
if [ -n "$routesintfbackup6" ] && ([ "$nbintfb6" -gt "1" ] && [ "$(ip -6 r show $serverip metric 999 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintfbackup6 " ]) || ([ "$nbintfb6" = "1" ] && [ -n "$uintfb" ] && [ "$(ip -6 r show $serverip metric 999 | grep $uintfb)" = "" ]); then if [ -n "$routesintfbackup6" ] && ([ "$nbintfb6" -gt "1" ] && [ "$(ip -6 r show $serverip metric 999 | tr -d '\t' | tr -d '\n')" != "$serverip $routesintfbackup6 " ]) || ([ "$nbintfb6" = "1" ] && [ -n "$uintfb" ] && [ "$(ip -6 r show $serverip metric 999 | grep $uintfb)" = "" ]); then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) backup default route $serverip $routesintfbackup6 nbintfb $nbintfb6 $OMR_TRACKER_DEVICE" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) backup default route $serverip $routesintfbackup6 nbintfb $nbintfb6 $OMR_TRACKER_DEVICE"
ip -6 route replace $serverip scope global metric 999 $routesintfbackup6 ip -6 route replace $serverip scope global metric 999 $routesintfbackup6 2>&1 >/dev/null
fi fi
fi fi
} }
@ -471,12 +471,12 @@ set_server_route() {
#if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$multipath_current_config" = "" ]; then #if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$multipath_current_config" = "" ]; then
if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) route via $OMR_TRACKER_DEVICE_GATEWAY metric $metric" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) route via $OMR_TRACKER_DEVICE_GATEWAY metric $metric"
ip route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric ip route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null
fi fi
} }
config_list_foreach $server ip server_route config_list_foreach $server ip server_route
if [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then if [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null
fi fi
} }
@ -503,12 +503,12 @@ set_server_route6() {
#if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$multipath_current_config" = "" ]; then #if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$multipath_current_config" = "" ]; then
if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then if [ "$serverip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep $serverip | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) route via $OMR_TRACKER_DEVICE_GATEWAY metric $metric" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Set server $server ($serverip) route via $OMR_TRACKER_DEVICE_GATEWAY metric $metric"
ip -6 route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $metric ip -6 route replace $serverip via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null
fi fi
} }
config_list_foreach $server ip server_route config_list_foreach $server ip server_route
if [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then if [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then
ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $metric ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null
fi fi
} }
@ -520,14 +520,14 @@ del_server_route() {
[ -n "$serverip" ] && _log "Delete default route via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE" [ -n "$serverip" ] && _log "Delete default route via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE"
local metric local metric
metric=$(uci -q get network.$OMR_TRACKER_INTERFACE.metric) metric=$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)
ip route del $serverip dev $OMR_TRACKER_DEVICE metric $metric >/dev/null 2>&1 [ -n "$(ip route show $serverip dev $OMR_TRACKER_DEVICE metric $metric)" ] && ip route del $serverip dev $OMR_TRACKER_DEVICE metric $metric >/dev/null 2>&1
ip route del $serverip dev $OMR_TRACKER_DEVICE >/dev/null 2>&1 [ -n "$(ip route show $serverip dev $OMR_TRACKER_DEVICE)" ] && ip route del $serverip dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
} }
config_list_foreach $server ip remove_route config_list_foreach $server ip remove_route
if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE >/dev/null 2>&1 [ -n "$(ip route show default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE)" ] && ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
else else
ip route del default dev $OMR_TRACKER_DEVICE >/dev/null 2>&1 [ -n "$(ip route show default dev $OMR_TRACKER_DEVICE)" ] && ip route del default dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
fi fi
} }
@ -539,14 +539,14 @@ del_server_route6() {
[ -n "$serverip" ] && _log "Delete default route via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE" [ -n "$serverip" ] && _log "Delete default route via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE"
local metric local metric
metric=$(uci -q get network.$OMR_TRACKER_INTERFACE.metric) metric=$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)
ip -6 route del $serverip dev $OMR_TRACKER_DEVICE metric $metric >/dev/null 2>&1 [ -n "$(ip -6 route show $serverip dev $OMR_TRACKER_DEVICE metric $metric)" ] && ip -6 route del $serverip dev $OMR_TRACKER_DEVICE metric $metric >/dev/null 2>&1
ip -6 route del $serverip dev $OMR_TRACKER_DEVICE >/dev/null 2>&1 [ -n "$(ip -6 route show $serverip dev $OMR_TRACKER_DEVICE)" ] && ip -6 route del $serverip dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
} }
config_list_foreach $server ip remove_route config_list_foreach $server ip remove_route
if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; then if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; then
ip -6 route del default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE >/dev/null 2>&1 [ -n "$(ip -6 route show default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE)" ] && ip -6 route del default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
else else
ip -6 route del default dev $OMR_TRACKER_DEVICE >/dev/null 2>&1 [ -n "$(ip -6 route show default dev $OMR_TRACKER_DEVICE)" ] && ip -6 route del default dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
fi fi
} }
@ -738,7 +738,7 @@ fi
if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then
if ([ "$default_gw" != "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]) && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ]; then if ([ "$default_gw" != "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]) && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ]; then
_log "Tunnel up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE" _log "Tunnel up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE"
ip route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE ip route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE 2>&1 >/dev/null
if [ "$(pgrep openmptcprouter-vps)" = "" ]; then if [ "$(pgrep openmptcprouter-vps)" = "" ]; then
/etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 /etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1
fi fi
@ -836,7 +836,7 @@ if [ "$multipath_config" = "master" ]; then
omrvpn_intf=$(uci -q get "network.omrvpn.ifname" || echo "tun") omrvpn_intf=$(uci -q get "network.omrvpn.ifname" || echo "tun")
if [ -n "$omrvpn_intf" ] && [ "$(ip route show default | awk '/default/ {print $5}' | grep $omrvpn_intf)" = "" ] && [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ]; then if [ -n "$omrvpn_intf" ] && [ "$(ip route show default | awk '/default/ {print $5}' | grep $omrvpn_intf)" = "" ] && [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ]; then
_log "Master up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE" _log "Master up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE"
ip route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE ip route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE 2>&1 >/dev/null
fi fi
config_load openmptcprouter config_load openmptcprouter
#if [ "$(uci -q get openmptcprouter.settings.master)" = "balancing" ]; then #if [ "$(uci -q get openmptcprouter.settings.master)" = "balancing" ]; then
@ -849,7 +849,7 @@ if [ "$multipath_config" = "master" ]; then
omrvpn_intf=$(uci -q get "network.omrvpn.ifname" || echo "tun") omrvpn_intf=$(uci -q get "network.omrvpn.ifname" || echo "tun")
if [ -n "$omrvpn_intf" ] && [ "$(ip route show default | awk '/default/ {print $5}' | grep $omrvpn_intf)" = "" ] && [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ]; then if [ -n "$omrvpn_intf" ] && [ "$(ip route show default | awk '/default/ {print $5}' | grep $omrvpn_intf)" = "" ] && [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ]; then
_log "Master up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE" _log "Master up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE"
ip -6 route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE ip -6 route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE 2>&1 >/dev/null
fi fi
config_load openmptcprouter config_load openmptcprouter
#if [ "$(uci -q get openmptcprouter.settings.master)" = "balancing" ]; then #if [ "$(uci -q get openmptcprouter.settings.master)" = "balancing" ]; then
@ -871,36 +871,36 @@ if [ "$multipath_config" = "master" ]; then
config_foreach set_route_balancing interface config_foreach set_route_balancing interface
config_foreach set_route_balancing6 interface config_foreach set_route_balancing6 interface
[ -n "$routesbalancing" ] && { [ -n "$routesbalancing" ] && {
([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 0 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 0 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { ([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && {
_log "Set ip route replace default scope global $routesbalancing" _log "Set ip route replace default scope global $routesbalancing"
ip route replace default scope global metric 0 $routesbalancing ip route replace default scope global metric 1 $routesbalancing 2>&1 >/dev/null
} }
} }
[ -n "$routesbalancing6" ] && { [ -n "$routesbalancing6" ] && {
([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing6 " ]) || ([ "$nbintf6" = "1" ] && [ "$(ip -6 r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ]) && { ([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing6 " ]) || ([ "$nbintf6" = "1" ] && [ "$(ip -6 r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ]) && {
_log "Set ip -6 route replace default scope global metric 1 $routesbalancing6" _log "Set ip -6 route replace default scope global metric 1 $routesbalancing6"
ip -6 route replace default scope global metric 1 $routesbalancing6 ip -6 route replace default scope global metric 1 $routesbalancing6 2>&1 >/dev/null
} }
} }
[ -n "$routesbalancingbackup" ] && { [ -n "$routesbalancingbackup" ] && {
([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { ([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && {
_log "Set backup ip route replace default scope global $routesbalancingbackup" _log "Set backup ip route replace default scope global $routesbalancingbackup"
ip route replace default scope global metric 999 $routesbalancingbackup ip route replace default scope global metric 999 $routesbalancingbackup 2>&1 >/dev/null
} }
} }
[ -n "$routesbalancingbackup6" ] && { [ -n "$routesbalancingbackup6" ] && {
([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup6 " ]) || ([ "$nbintf6" = "1" ] && [ "$(ip -6 r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ]) && { ([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup6 " ]) || ([ "$nbintf6" = "1" ] && [ "$(ip -6 r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ]) && {
_log "Set backup ip -6 route replace default scope global $routesbalancingbackup6" _log "Set backup ip -6 route replace default scope global $routesbalancingbackup6"
ip -6 route replace default scope global metric 999 $routesbalancingbackup6 ip -6 route replace default scope global metric 999 $routesbalancingbackup6 2>&1 >/dev/null
} }
} }
fi fi
fi fi
if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show table 991337)" != "default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE " ]; then if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show table 991337)" != "default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE " ]; then
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE table 991337 ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE table 991337 2>&1 >/dev/null
fi fi
if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show table 991337)" != "default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE " ]; then if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show table 991337)" != "default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE " ]; then
ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE table 991337 ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE table 991337 2>&1 >/dev/null
fi fi
if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((10 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]; then if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((10 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]; then
[ "$(pgrep openmptcprouter-vps)" = "" ] && /etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 [ "$(pgrep openmptcprouter-vps)" = "" ] && /etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1

View file

@ -1,6 +1,7 @@
# #
# Copyright (C) 2009 David Cooper <dave@kupesoft.com> # Copyright (C) 2009 David Cooper <dave@kupesoft.com>
# Copyright (C) 2009-2016 OpenWrt.org # Copyright (C) 2009-2016 OpenWrt.org
# Copyright (C) 2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@ -9,21 +10,20 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=msmtp PKG_NAME:=msmtp
PKG_VERSION:=1.6.8 PKG_VERSION:=1.8.14
PKG_RELEASE:=2 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://marlam.de/msmtp/releases PKG_SOURCE_URL:=https://marlam.de/msmtp/releases
PKG_HASH:=55ff95a304d888b56d07d9c62327ab9bfe26532c9c2a2ed6aefc43bea1b659fb PKG_HASH:=d56f065d711486e9c234618515a02a48a48dab4051b34f3e108fbecb6fb773b4
PKG_LICENSE:=GPL-3.0+ PKG_MAINTAINER:=
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org> PKG_CPE_ID:=cpe:/a:marlam:msmtp
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1 PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
@ -33,7 +33,7 @@ define Package/msmtp/Default
CATEGORY:=Mail CATEGORY:=Mail
DEPENDS:=$(INTL_DEPENDS) DEPENDS:=$(INTL_DEPENDS)
TITLE:=Simple sendmail SMTP forwarding TITLE:=Simple sendmail SMTP forwarding
URL:=http://msmtp.sourceforge.net/ URL:=https://marlam.de/msmtp
endef endef
define Package/msmtp/Default/description define Package/msmtp/Default/description
@ -46,9 +46,10 @@ endef
define Package/msmtp define Package/msmtp
$(call Package/msmtp/Default) $(call Package/msmtp/Default)
DEPENDS+= +libopenssl +ca-bundle DEPENDS+= +libgnutls +ca-bundle
TITLE+= (with SSL support) TITLE+= (with SSL support)
VARIANT:=ssl VARIANT:=ssl
DEFAULT_VARIANT:=1
endef endef
define Package/msmtp/conffiles define Package/msmtp/conffiles
@ -64,6 +65,7 @@ define Package/msmtp-nossl
$(call Package/msmtp/Default) $(call Package/msmtp/Default)
TITLE+= (without SSL support) TITLE+= (without SSL support)
VARIANT:=nossl VARIANT:=nossl
PROVIDES:=msmtp
endef endef
define Package/msmtp-nossl/description define Package/msmtp-nossl/description
@ -75,7 +77,9 @@ define Package/msmtp-mta
$(call Package/msmtp/Default) $(call Package/msmtp/Default)
TITLE+= (as MTA) TITLE+= (as MTA)
DEPENDS+=+msmtp DEPENDS+=+msmtp
# DEPENDS+=@(PACKAGE_msmtp||PACKAGE_msmtp-nossl) ALTERNATIVES:=\
100:/usr/sbin/sendmail:/usr/bin/msmtp \
100:/usr/lib/sendmail:/usr/bin/msmtp
endef endef
define Package/msmtp-mta/description define Package/msmtp-mta/description
@ -86,7 +90,7 @@ endef
define Package/msmtp-queue define Package/msmtp-queue
$(call Package/msmtp/Default) $(call Package/msmtp/Default)
DEPENDS+= +bash @(PACKAGE_msmtp||PACKAGE_msmtp-nossl) DEPENDS+= +bash +msmtp
TITLE+= (queue scripts) TITLE+= (queue scripts)
endef endef
@ -102,21 +106,12 @@ CONFIGURE_ARGS += \
--without-libidn \ --without-libidn \
--without-libsecret \ --without-libsecret \
--without-macosx-keyring \ --without-macosx-keyring \
--without-msmtpd
ifneq ($(CONFIG_USE_UCLIBC),)
CONFIGURE_ARGS += --disable-gai-idn
endif
MAKE_FLAGS :=
ifeq ($(BUILD_VARIANT),ssl) ifeq ($(BUILD_VARIANT),ssl)
CONFIGURE_ARGS += \ CONFIGURE_ARGS += --with-tls=openssl
--with-tls=openssl else
endif CONFIGURE_ARGS += --without-tls
ifeq ($(BUILD_VARIANT),nossl)
CONFIGURE_ARGS += \
--with-tls=no
endif endif
define Package/msmtp/install define Package/msmtp/install
@ -129,8 +124,6 @@ endef
define Package/msmtp-mta/install define Package/msmtp-mta/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/sbin $(1)/usr/lib
ln -sf ../bin/msmtp $(1)/usr/sbin/sendmail
ln -sf ../bin/msmtp $(1)/usr/lib/sendmail
endef endef
Package/msmtp-nossl/conffiles = $(Package/msmtp/conffiles) Package/msmtp-nossl/conffiles = $(Package/msmtp/conffiles)

View file

@ -18,7 +18,7 @@ set_ipv6_state() {
local disable_ipv6="$(uci -q get openmptcprouter.settings.disable_ipv6)" local disable_ipv6="$(uci -q get openmptcprouter.settings.disable_ipv6)"
[ -z "$disable_ipv6" ] && disable_ipv6="1" [ -z "$disable_ipv6" ] && disable_ipv6="1"
#previous=$(sysctl -qn net.ipv6.conf.all.disable_ipv6 | tr -d "\n") #previous=$(sysctl -qn net.ipv6.conf.all.disable_ipv6 | tr -d "\n")
previous="$(uci get network.lan.ipv6)" previous="$(uci -q get network.lan.ipv6)"
#sysctl -qw net.ipv6.conf.all.disable_ipv6=$disable_ipv6 #sysctl -qw net.ipv6.conf.all.disable_ipv6=$disable_ipv6
#sed -i "s:^net.ipv6.conf.all.disable_ipv6=[0-9]*:net.ipv6.conf.all.disable_ipv6=$disable_ipv6:" /etc/sysctl.d/zzz_openmptcprouter.conf #sed -i "s:^net.ipv6.conf.all.disable_ipv6=[0-9]*:net.ipv6.conf.all.disable_ipv6=$disable_ipv6:" /etc/sysctl.d/zzz_openmptcprouter.conf
sed -i "s:^net.ipv6.conf.all.disable_ipv6=[0-9]*::" /etc/sysctl.d/zzz_openmptcprouter.conf sed -i "s:^net.ipv6.conf.all.disable_ipv6=[0-9]*::" /etc/sysctl.d/zzz_openmptcprouter.conf
@ -40,6 +40,8 @@ set_ipv6_state() {
delete dhcp.lan.ra_default delete dhcp.lan.ra_default
delete dhcp.lan.ra_management delete dhcp.lan.ra_management
delete dhcp.lan.ra_preference delete dhcp.lan.ra_preference
unbound.ub_main.protocol='ip4_only'
commit unbound
del_list v2ray.main.inbounds="omr6" del_list v2ray.main.inbounds="omr6"
commit v2ray commit v2ray
EOF EOF
@ -50,6 +52,7 @@ set_ipv6_state() {
commit dhcp commit dhcp
commit shadowsocks-libev commit shadowsocks-libev
EOF EOF
[ ! -f /etc/wgetrc ] && cp /etc/wgetrc4 /etc/wgetrc
else else
logger -t "omr-6in4" "Enable IPv6" logger -t "omr-6in4" "Enable IPv6"
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
@ -66,6 +69,8 @@ set_ipv6_state() {
set network.omr6in4.force_link=1 set network.omr6in4.force_link=1
set network.omr6in4.metric=1 set network.omr6in4.metric=1
delete network.omr6in4.auto delete network.omr6in4.auto
unbound.ub_main.protocol='mixed'
commit unbound
EOF EOF
if [ "$(network.lan.ip6assign)" = "" ]; then if [ "$(network.lan.ip6assign)" = "" ]; then
uci -q set network.lan.ip6assign='60' uci -q set network.lan.ip6assign='60'
@ -92,6 +97,7 @@ set_ipv6_state() {
EOF EOF
/etc/init.d/v2ray restart /etc/init.d/v2ray restart
fi fi
rm -f /etc/wgetrc
fi fi
/etc/init.d/odhcpd restart /etc/init.d/odhcpd restart
if [ "$previous" != "1" ]; then if [ "$previous" != "1" ]; then

View file

@ -359,7 +359,7 @@ while true; do
_dns "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes" _dns "$OMR_TRACKER_HOST" "$OMR_TRACKER_DEVICE_IP" "yes"
statusb=$? statusb=$?
fi fi
ip route del "$OMR_TRACKER_HOST" via "$OMR_TRACKER_DEVICE_GATEWAY" dev "$OMR_TRACKER_DEVICE" src "$OMR_TRACKER_DEVICE_IP" > /dev/null 2>&1 [ -n "$(ip route show ${OMR_TRACKER_HOST} via ${OMR_TRACKER_DEVICE_GATEWAY} dev ${OMR_TRACKER_DEVICE} src ${OMR_TRACKER_DEVICE_IP})" ] && ip route del "$OMR_TRACKER_HOST" via "$OMR_TRACKER_DEVICE_GATEWAY" dev "$OMR_TRACKER_DEVICE" src "$OMR_TRACKER_DEVICE_IP" > /dev/null 2>&1
if $(exit $statusb); then if $(exit $statusb); then
OMR_TRACKER_STATUS_MSG="" OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK" OMR_TRACKER_STATUS="OK"

View file

@ -57,10 +57,19 @@ if [ "$(uci -q get shadowsocks-libev.hi3)" != "" ]; then
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set shadowsocks-libev.hi$c.local_port=$port set shadowsocks-libev.hi$c.local_port=$port
set shadowsocks-libev.hi$c.server=sss0 set shadowsocks-libev.hi$c.server=sss0
set shadowsocks-libev.hi$((c+1))=ss_redir
set shadowsocks-libev.hi$((c+1)).local_address="::" set shadowsocks-libev.hi$((c+1)).local_address="::"
set shadowsocks-libev.hi$((c+1)).local_port=$port set shadowsocks-libev.hi$((c+1)).local_port=$port
set shadowsocks-libev.hi$((c+1)).local_address="::" set shadowsocks-libev.hi$((c+1)).local_address="::"
set shadowsocks-libev.hi$((c+1)).server=sss1 set shadowsocks-libev.hi$((c+1)).server=sss1
set shadowsocks-libev.hi$((c+1)).mode=tcp_and_udp
set shadowsocks-libev.hi$((c+1)).timeout=1000
set shadowsocks-libev.hi$((c+1)).fast_open=1
set shadowsocks-libev.hi$((c+1)).reuse_port=1
set shadowsocks-libev.hi$((c+1)).syslog=1
set shadowsocks-libev.hi$((c+1)).mptcp=1
set shadowsocks-libev.hi$((c+1)).no_delay=1
set shadowsocks-libev.hi$((c+1)).verbose=0
commit shadowsocks-libev commit shadowsocks-libev
EOF EOF
port=$((port+1)) port=$((port+1))

View file

@ -8,31 +8,32 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=protobuf PKG_NAME:=protobuf
PKG_VERSION:=3.5.1 PKG_VERSION:=3.14.0
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-cpp-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-cpp-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/google/protobuf/releases/download/v$(PKG_VERSION) PKG_SOURCE_URL:=https://github.com/google/protobuf/releases/download/v$(PKG_VERSION)
PKG_HASH:=c28dba8782da2cfea1e11c61d335958c31a9c1bc553063546af9cbe98f204092 PKG_HASH:=50ec5a07c0c55d4ec536dd49021f2e194a26bfdbc531d03d1e9d4d3e27175659
PKG_MAINTAINER:=Ken Keys <kkeys@caida.org>
PKG_LICENSE:=BSD-3-Clause PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:google:protobuf
PKG_BUILD_DEPENDS:=protobuf/host HOST_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0# MIPS16 prevents protobuf's usage of the 'sync' asm-opcode PKG_BUILD_PARALLEL:=1
CMAKE_SOURCE_SUBDIR:=cmake
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/protobuf/Default define Package/protobuf/Default
SECTION:=libs SECTION:=libs
CATEGORY:=Libraries CATEGORY:=Libraries
TITLE:=A structured data encoding library TITLE:=A structured data encoding library
URL:=https://github.com/google/protobuf URL:=https://github.com/google/protobuf
DEPENDS:=+zlib +libpthread +libstdcpp DEPENDS:=+zlib +libpthread +libatomic +libstdcpp
MAINTAINER:=Ken Keys <kkeys@caida.org>
endef endef
define Package/protobuf define Package/protobuf
@ -65,20 +66,28 @@ This package provides the libprotobuf-lite library.
endef endef
CONFIGURE_ARGS += --with-protoc=$(STAGING_DIR_HOSTPKG)/bin/protoc CMAKE_HOST_OPTIONS += \
-Dprotobuf_BUILD_PROTOC_BINARIES=ON \
-Dprotobuf_BUILD_TESTS=OFF \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_SKIP_RPATH=OFF \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOSTPKG}/lib"
CMAKE_OPTIONS += \
-Dprotobuf_BUILD_PROTOC_BINARIES=ON \
-Dprotobuf_BUILD_TESTS=OFF \
-Dprotobuf_WITH_ZLIB=ON \
-DBUILD_SHARED_LIBS=ON
TARGET_LDFLAGS += -latomic $(if $(CONFIG_USE_GLIBC),-lm)
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) \ $(call Build/InstallDev/cmake,$(1))
$(1)/usr/lib \ $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/protobuf.pc
$(1)/usr/include $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/protobuf.pc
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/protobuf-lite.pc
$(CP) \ $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/protobuf-lite.pc
$(PKG_INSTALL_DIR)/usr/include/* \
$(1)/usr/include/
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/* \
$(1)/usr/lib/
endef endef
define Package/protobuf-lite/install define Package/protobuf-lite/install

View file

@ -1,6 +1,6 @@
# #
# Copyright (C) 2017-2018 Yousong Zhou <yszhou4tech@gmail.com> # Copyright (C) 2017-2018 Yousong Zhou <yszhou4tech@gmail.com>
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> # Copyright (C) 2018-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@ -15,7 +15,7 @@ include $(TOPDIR)/rules.mk
# #
PKG_NAME:=shadowsocks-libev PKG_NAME:=shadowsocks-libev
PKG_VERSION:=3.3.5 PKG_VERSION:=3.3.5
PKG_RELEASE:=2 PKG_RELEASE:=10
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION) PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)

View file

@ -112,7 +112,7 @@ v2r_rules_parse_args() {
__errmsg "Requires at least -l or -L option" __errmsg "Requires at least -l or -L option"
return 1 return 1
fi fi
if [ -n "$o_dst_forward_recentrst" ] && ! iptables -m recent -h >/dev/null; then if [ -n "$o_dst_forward_recentrst" ] && ! iptables -w -m recent -h >/dev/null; then
__errmsg "Please install iptables-mod-conntrack-extra with opkg" __errmsg "Please install iptables-mod-conntrack-extra with opkg"
return 1 return 1
fi fi
@ -166,7 +166,7 @@ v2r_rules_iptchains_init() {
} }
v2r_rules_iptchains_init_mark() { v2r_rules_iptchains_init_mark() {
if [ "$(iptables -t mangle -L PREROUTING | grep ss_rules_dst_bypass_all)" = "" ]; then if [ "$(iptables -w -t mangle -L PREROUTING | grep ss_rules_dst_bypass_all)" = "" ]; then
iptables-restore -w --noflush <<-EOF iptables-restore -w --noflush <<-EOF
*mangle *mangle
-A PREROUTING -m set --match-set ss_rules_dst_bypass_all dst -j MARK --set-mark 0x539 -A PREROUTING -m set --match-set ss_rules_dst_bypass_all dst -j MARK --set-mark 0x539

View file

@ -95,7 +95,7 @@ v2ray_rules6_parse_args() {
__errmsg "Requires at least -l or -L option" __errmsg "Requires at least -l or -L option"
return 1 return 1
fi fi
if [ -n "$o_dst_forward_recentrst" ] && ! ip6tables -m recent -h >/dev/null; then if [ -n "$o_dst_forward_recentrst" ] && ! ip6tables -w -m recent -h >/dev/null; then
__errmsg "Please install ip6tables-mod-conntrack-extra with opkg" __errmsg "Please install ip6tables-mod-conntrack-extra with opkg"
return 1 return 1
fi fi