1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-15 03:51:51 +00:00
This commit is contained in:
suyuan 2024-03-14 10:42:24 +08:00 committed by GitHub
commit 82fd00b736
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 128 additions and 54 deletions

View file

@ -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

View file

@ -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

View file

@ -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))
}

View file

@ -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

View file

@ -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>

View file

@ -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

View file

@ -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
}

View file

@ -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
}

View file

@ -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

View file

@ -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
}