mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
sync (#453)
This commit is contained in:
commit
82fd00b736
10 changed files with 128 additions and 54 deletions
|
@ -731,7 +731,7 @@ interface_pending=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -
|
|||
initcwrwnd=""
|
||||
|
||||
# An interface in error will never be used in MPTCP
|
||||
if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then
|
||||
if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$interface_up" != "true" ]); then
|
||||
#if [ "$interface_up" = "true" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "wireguard" ]); then
|
||||
#if [ "$interface_available" = "true" ] && ([ "$interface_pending" = "true" ] || [ "$interface_up" = "true" ]) && [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "wireguard" ]); then
|
||||
if [ "$interface_available" = "true" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "wireguard" ]); then
|
||||
|
|
|
@ -422,24 +422,28 @@ _bypass_proto_without_ndpi() {
|
|||
set firewall.bypass_$proto.match='dest_ip'
|
||||
set firewall.bypass_$proto.family='ipv4'
|
||||
set firewall.bypass_$proto_rule=rule
|
||||
set firewall.bypass_$proto_rule.name="bypass_$proto"
|
||||
set firewall.bypass_$proto_rule.name="bypass_$proto_rule"
|
||||
set firewall.bypass_$proto_rule.src='lan'
|
||||
set firewall.bypass_$proto_rule.dest='*'
|
||||
set firewall.bypass_$proto_rule.family='ipv4'
|
||||
set firewall.bypass_$proto_rule.target='MARK'
|
||||
set firewall.bypass_$proto_rule.ipset="bypass_$proto"
|
||||
set firewall.bypass_$proto_rule.set_xmark="0x4539${intfid}"
|
||||
commit firewall
|
||||
EOF
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set firewall.bypass6_$proto=ipset
|
||||
set firewall.bypass6_$proto.name="bypas6s_$proto"
|
||||
set firewall.bypass6_$proto.name="bypass6_$proto"
|
||||
set firewall.bypass6_$proto.match='dest_ip'
|
||||
set firewall.bypass6_$proto.family='ipv6'
|
||||
set firewall.bypass6_$proto_rule=rule
|
||||
set firewall.bypass6_$proto_rule.name="bypass6_$proto"
|
||||
set firewall.bypass6_$proto_rule.name="bypass6_$proto_rule"
|
||||
set firewall.bypass6_$proto_rule.src='lan'
|
||||
set firewall.bypass6_$proto_rule.family='ipv6'
|
||||
set firewall.bypass6_$proto_rule.dest='*'
|
||||
set firewall.bypass6_$proto_rule.target='MARK'
|
||||
set firewall.bypass6_$proto_rule.set_xmark="0x6539${intfid}"
|
||||
set firewall.bypass6_$proto_rule.ipset="bypass6_$proto"
|
||||
commit firewall
|
||||
EOF
|
||||
#if [ "$intfid" != "" ]; then
|
||||
|
|
|
@ -61,11 +61,11 @@ _init_rto() {
|
|||
_update_rto() {
|
||||
if [ -z "$srtt" ]; then
|
||||
srtt=$1
|
||||
rttvar=$(($1 / 2))
|
||||
rttvar=$(echo "$(($1 / 2))" | cut -d. -f1)
|
||||
else
|
||||
diff=$((srtt - $1))
|
||||
rttvar=$(((75 * rttvar + 25 * (diff >= 0 ? diff : -diff)) / 100))
|
||||
srtt=$(((75 * srtt + 25 * $1) / 100))
|
||||
rttvar=$(echo "$(((75 * rttvar + 25 * (diff >= 0 ? diff : -diff)) / 100))" | cut -d. -f1)
|
||||
srtt=$(echo "$(((75 * srtt + 25 * $1) / 100))" | cut -d. -f1)
|
||||
fi
|
||||
rto=$((tmp = srtt + 3 * rttvar, tmp > rto_init ? tmp : rto_init))
|
||||
}
|
||||
|
|
|
@ -79,6 +79,18 @@ config_load network
|
|||
#config_foreach _setup_macvlan_update interface
|
||||
config_foreach _setup_mptcp_handover_to_on interface
|
||||
|
||||
_fix_metrics() {
|
||||
uci -q batch <<-EOF
|
||||
delete openmptcprouter.$1.metric
|
||||
delete network.$1.metric
|
||||
commit openmptcprouter
|
||||
commit network
|
||||
EOF
|
||||
}
|
||||
|
||||
config_load openmptcprouter
|
||||
config_foreach _fix_metrics interface
|
||||
|
||||
if [ "$(uci -q show network.lan | grep multipath)" != "" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
|
|
@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=openvpn
|
||||
|
||||
PKG_VERSION:=2.6.5
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=2.6.9
|
||||
PKG_RELEASE:=10
|
||||
|
||||
PKG_SOURCE_URL:=\
|
||||
https://build.openvpn.net/downloads/releases/ \
|
||||
https://swupdate.openvpn.net/community/releases/
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_HASH:=e34efdb9a3789a760cfc91d57349dfb1e31da169c98c06cb490c6a8a015638e2
|
||||
PKG_HASH:=e08d147e15b4508dfcd1d6618a1f21f1495f9817a8dadc1eddf0532fa116d7e3
|
||||
|
||||
PKG_MAINTAINER:=Magnus Kroken <mkroken@gmail.com>
|
||||
|
||||
|
|
|
@ -7,10 +7,14 @@
|
|||
$*
|
||||
}
|
||||
|
||||
# Wrap user defined scripts on up/down events
|
||||
# Wrap user defined scripts on up/down/route-up/route-pre-down/ipchange events
|
||||
# Scriptp set with up/down/route-up/route-pre-down/ipchange in the openvpn config are also executed with the command=user_xxxx
|
||||
case "$ACTION" in
|
||||
up) command=$user_up ;;
|
||||
down) command=$user_down ;;
|
||||
route-up) command=$user_route_up ;;
|
||||
route-pre-down) command=$user_route_pre_down ;;
|
||||
ipchange) command=$user_ipchange ;;
|
||||
*) command= ;;
|
||||
esac
|
||||
|
||||
|
@ -20,3 +24,4 @@ if [ -n "$command" ]; then
|
|||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
|
|
|
@ -10,22 +10,13 @@ STOP=10
|
|||
USE_PROCD=1
|
||||
PROG=/usr/sbin/openvpn
|
||||
|
||||
PATH_INSTANCE_DIR="/etc/openvpn"
|
||||
LIST_SEP="
|
||||
"
|
||||
|
||||
UCI_STARTED=
|
||||
UCI_DISABLED=
|
||||
|
||||
version_over_5_4() {
|
||||
MAJOR_VERSION=$(uname -r | awk -F '.' '{print $1}')
|
||||
MINOR_VERSION=$(uname -r | awk -F '.' '{print $2}')
|
||||
if [ $MAJOR_VERSION -ge 5 ] && [ $MINOR_VERSION -gt 13 ] || [ $MAJOR_VERSION -gt 5 ] ; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
append_param() {
|
||||
local s="$1"
|
||||
local v="$2"
|
||||
|
@ -154,6 +145,9 @@ openvpn_add_instance() {
|
|||
local security="$4"
|
||||
local up="$5"
|
||||
local down="$6"
|
||||
local route_up="$7"
|
||||
local route_pre_down="$8"
|
||||
local ipchange="$9"
|
||||
local client=$(grep -qEx "client|tls-client" "$dir/$conf" && echo 1)
|
||||
|
||||
procd_open_instance "$name"
|
||||
|
@ -169,12 +163,12 @@ openvpn_add_instance() {
|
|||
${client:+--ipchange "/usr/libexec/openvpn-hotplug ipchange $name"} \
|
||||
${up:+--setenv user_up "$up"} \
|
||||
${down:+--setenv user_down "$down"} \
|
||||
${route_up:+--setenv user_route_up "$route_up"} \
|
||||
${route_pre_down:+--setenv user_route_pre_down "$route_pre_down"} \
|
||||
${client:+${ipchange:+--setenv user_ipchange "$ipchange"}} \
|
||||
--script-security "${security:-2}" \
|
||||
$(openvpn_get_dev "$name" "$conf") \
|
||||
$(openvpn_get_credentials "$name" "$conf")
|
||||
if version_over_5_4; then
|
||||
procd_append_param command "--mptcp"
|
||||
fi
|
||||
procd_set_param file "$dir/$conf"
|
||||
procd_set_param term_timeout 15
|
||||
procd_set_param respawn
|
||||
|
@ -184,7 +178,7 @@ openvpn_add_instance() {
|
|||
procd_close_instance
|
||||
}
|
||||
|
||||
start_instance() {
|
||||
start_uci_instance() {
|
||||
local s="$1"
|
||||
|
||||
config_get config "$s" config
|
||||
|
@ -195,18 +189,25 @@ start_instance() {
|
|||
return 1
|
||||
}
|
||||
|
||||
local up down script_security
|
||||
local up down route_up route_pre_down ipchange script_security
|
||||
config_get up "$s" up
|
||||
config_get down "$s" down
|
||||
config_get route_up "$s" route_up
|
||||
config_get route_pre_down "$s" route_pre_down
|
||||
config_get ipchange "$s" ipchange
|
||||
config_get script_security "$s" script_security
|
||||
|
||||
[ ! -d "/var/run" ] && mkdir -p "/var/run"
|
||||
|
||||
if [ ! -z "$config" ]; then
|
||||
append UCI_STARTED "$config" "$LIST_SEP"
|
||||
[ -n "$script_security" ] || get_openvpn_option "$config" script_security script-security
|
||||
[ -n "$up" ] || get_openvpn_option "$config" up up
|
||||
[ -n "$down" ] || get_openvpn_option "$config" down down
|
||||
openvpn_add_instance "$s" "${config%/*}" "$config" "$script_security" "$up" "$down"
|
||||
[ -n "$route_up" ] || get_openvpn_option "$config" route_up route-up
|
||||
[ -n "$route_pre_down" ] || get_openvpn_option "$config" route_pre_down route-pre-down
|
||||
[ -n "$ipchange" ] || get_openvpn_option "$config" ipchange ipchange
|
||||
openvpn_add_instance "$s" "${config%/*}" "$config" "$script_security" "$up" "$down" "$route_up" "$route_pre_down" "$ipchange"
|
||||
return
|
||||
fi
|
||||
|
||||
|
@ -216,7 +217,47 @@ start_instance() {
|
|||
append_params "$s" $OPENVPN_PARAMS
|
||||
append_list "$s" $OPENVPN_LIST
|
||||
|
||||
openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf" "$script_security" "$up" "$down"
|
||||
openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf" "$script_security" "$up" "$down" "$route_up" "$route_pre_down" "$ipchange"
|
||||
}
|
||||
|
||||
start_path_instances() {
|
||||
local path name
|
||||
|
||||
for path in ${PATH_INSTANCE_DIR}/*.conf; do
|
||||
[ -f "$path" ] && {
|
||||
name="${path##*/}"
|
||||
name="${name%.conf}"
|
||||
start_path_instance "$name"
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
start_path_instance() {
|
||||
local name="$1"
|
||||
|
||||
local path name up down route_up route_pre_down ipchange
|
||||
|
||||
path="${PATH_INSTANCE_DIR}/${name}.conf"
|
||||
|
||||
# don't start configs again that are already started by uci
|
||||
if echo "$UCI_STARTED" | grep -qxF "$path"; then
|
||||
logger -t openvpn "$name.conf already started"
|
||||
return
|
||||
fi
|
||||
|
||||
# don't start configs which are set to disabled in uci
|
||||
if echo "$UCI_DISABLED" | grep -qxF "$path"; then
|
||||
logger -t openvpn "$name.conf is disabled in /etc/config/openvpn"
|
||||
return
|
||||
fi
|
||||
|
||||
get_openvpn_option "$path" up up || up=""
|
||||
get_openvpn_option "$path" down down || down=""
|
||||
get_openvpn_option "$path" route_up route-up || route_up=""
|
||||
get_openvpn_option "$path" route_pre_down route-pre-down || route_pre_down=""
|
||||
get_openvpn_option "$path" ipchange ipchange || ipchange=""
|
||||
|
||||
openvpn_add_instance "$name" "${path%/*}" "$path" "" "$up" "$down" "$route_up" "$route_pre_down" "$ipchange"
|
||||
}
|
||||
|
||||
start_service() {
|
||||
|
@ -238,31 +279,20 @@ start_service() {
|
|||
config_load 'openvpn'
|
||||
|
||||
if [ -n "$instance" ]; then
|
||||
[ "$instance_found" -gt 0 ] || return
|
||||
start_instance "$instance"
|
||||
if [ "$instance_found" -gt 0 ]; then
|
||||
start_uci_instance "$instance"
|
||||
elif [ -f "${PATH_INSTANCE_DIR}/${instance}.conf" ]; then
|
||||
start_path_instance "$instance"
|
||||
fi
|
||||
else
|
||||
config_foreach start_instance 'openvpn'
|
||||
config_foreach start_uci_instance 'openvpn'
|
||||
|
||||
local path name up down
|
||||
for path in /etc/openvpn/*.conf; do
|
||||
if [ -f "$path" ]; then
|
||||
name="${path##*/}"; name="${name%.conf}"
|
||||
|
||||
# don't start configs again that are already started by uci
|
||||
if echo "$UCI_STARTED" | grep -qxF "$path"; then
|
||||
continue
|
||||
|
||||
# don't start configs which are set to disabled in uci
|
||||
elif echo "$UCI_DISABLED" | grep -qxF "$path"; then
|
||||
logger -t openvpn "$name.conf is disabled in /etc/config/openvpn"
|
||||
continue
|
||||
fi
|
||||
|
||||
get_openvpn_option "$path" up up || up=""
|
||||
get_openvpn_option "$path" down down || down=""
|
||||
openvpn_add_instance "$name" "${path%/*}" "$path" "" "$up" "$down"
|
||||
fi
|
||||
done
|
||||
auto="$(uci_get openvpn globals autostart 1)"
|
||||
if [ "$auto" = "1" ]; then
|
||||
start_path_instances
|
||||
else
|
||||
logger -t openvpn "Autostart for configs in '$PATH_INSTANCE_DIR/*.conf' disabled"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -131,6 +131,14 @@ ss_xxx() {
|
|||
ss_rules_cb
|
||||
}
|
||||
|
||||
ss_omr_servers() {
|
||||
add_ip() {
|
||||
local ip="$1"
|
||||
[ -n "$ip" ] && [ -z "$(echo \"$ss_redir_servers\" | grep \"$ip\")" ] && ss_redir_servers="$ss_redir_servers $ip"
|
||||
}
|
||||
config_list_foreach "$1" ip add_ip
|
||||
}
|
||||
|
||||
ss_rules_cb() {
|
||||
local cfgserver server
|
||||
|
||||
|
@ -296,6 +304,10 @@ start_service() {
|
|||
for cfgtype in ss_local ss_redir ss_server ss_tunnel; do
|
||||
config_foreach ss_xxx "$cfgtype" "$cfgtype"
|
||||
done
|
||||
if [ -n "$(uci show openmptcprouter)" ]; then
|
||||
config_load openmptcprouter
|
||||
config_foreach ss_omr_servers server
|
||||
fi
|
||||
ss_rules
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
|||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=shadowsocks-rust
|
||||
PKG_VERSION:=1.18.0
|
||||
PKG_HASH:=e854743ecef9ab3b371fdcb139e6f4452831b487d449c97c2129abbf4f51e863
|
||||
PKG_VERSION:=1.18.1
|
||||
PKG_HASH:=c2e1d8838e4578c0a6b0de6e1da00e9ece2d780dc452117fd109bb091e5d106f
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
|
@ -48,7 +48,6 @@ define Package/shadowsocks-rust-config
|
|||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=shadowsocks-rust config
|
||||
URL:=https://github.com/shadowsocks/shadowsocks-rust
|
||||
DEPENDS:=$$(RUST_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
|
||||
|
|
|
@ -104,6 +104,14 @@ ss_xxx() {
|
|||
ss_rules_cb
|
||||
}
|
||||
|
||||
ss_omr_servers() {
|
||||
add_ip() {
|
||||
local ip="$1"
|
||||
[ -n "$ip" ] && [ -z "$(echo \"$ss_redir_servers\" | grep \"$ip\")" ] && ss_redir_servers="$ss_redir_servers $ip"
|
||||
}
|
||||
config_list_foreach "$1" ip add_ip
|
||||
}
|
||||
|
||||
ss_rules_cb() {
|
||||
local cfgserver server
|
||||
|
||||
|
@ -269,6 +277,10 @@ start_service() {
|
|||
for cfgtype in ss_local ss_redir ss_server ss_tunnel; do
|
||||
config_foreach ss_xxx "$cfgtype" "$cfgtype"
|
||||
done
|
||||
if [ -n "$(uci show openmptcprouter)" ]; then
|
||||
config_load openmptcprouter
|
||||
config_foreach ss_omr_servers server
|
||||
fi
|
||||
ss_rules
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue