mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-13 11:01:50 +00:00
sync (#374)
This commit is contained in:
commit
93a132ed21
12 changed files with 90 additions and 69 deletions
|
@ -8,12 +8,12 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=6.4.0
|
||||
PKG_VERSION:=6.5.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||
PKG_HASH:=4c51b8decbc7e4da159ffb066f590cfb93dbf9af7ff86b1647ce42b7c179a272
|
||||
PKG_HASH:=a70179085fa1b96d3c33b040c809b75e2b57563adc505a4ad05e2609df373463
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=iptables
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
|
|
@ -8,12 +8,14 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libmbim
|
||||
PKG_SOURCE_VERSION:=1.29.2
|
||||
PKG_SOURCE_VERSION:=1.30.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libmbim.git
|
||||
#PKG_MIRROR_HASH:=0b0b46016738fc22355d5a58c8a2d1b2f04906c49c51a50b57a09640d13b00b7
|
||||
PKG_MIRROR_HASH:=8fc4e2d78d6a1003bf89303d3ce779283b176d74e84a241ba8efb0d468605268
|
||||
|
||||
PKG_BUILD_FLAGS:=gc-sections
|
||||
|
||||
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
|
||||
|
||||
|
@ -21,8 +23,7 @@ include $(INCLUDE_DIR)/package.mk
|
|||
include $(INCLUDE_DIR)/nls.mk
|
||||
include $(INCLUDE_DIR)/meson.mk
|
||||
|
||||
TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
|
||||
TARGET_LDFLAGS += -Wl,--gc-sections
|
||||
TARGET_CFLAGS += -fno-merge-all-constants -fmerge-constants
|
||||
|
||||
MESON_ARGS += \
|
||||
-Dintrospection=false \
|
||||
|
|
|
@ -8,12 +8,14 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libqmi
|
||||
PKG_SOURCE_VERSION:=1.33.3
|
||||
PKG_SOURCE_VERSION:=1.34.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libqmi.git
|
||||
#PKG_MIRROR_HASH:=711d16d75a6a9afaefcf2be1bc845a4a6181dff786dfbd079e41e91279a0be91
|
||||
PKG_MIRROR_HASH:=af3dc760d0c40ef8af1f8b424435daa12bff698ed45b1cc9a9e38ea62ed047f0
|
||||
|
||||
PKG_BUILD_FLAGS:=gc-sections
|
||||
|
||||
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
|
||||
|
||||
|
@ -21,8 +23,7 @@ include $(INCLUDE_DIR)/package.mk
|
|||
include $(INCLUDE_DIR)/nls.mk
|
||||
include $(INCLUDE_DIR)/meson.mk
|
||||
|
||||
TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
|
||||
TARGET_LDFLAGS += -Wl,--gc-sections
|
||||
TARGET_CFLAGS += -fno-merge-all-constants -fmerge-constants
|
||||
|
||||
define Package/libqmi/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
|
|
|
@ -960,7 +960,7 @@ function wizard_add()
|
|||
ucic:set("shadowsocks-libev","sss1","method","chacha20-ietf-poly1305")
|
||||
ucic:set("glorytun","vpn","chacha20","1")
|
||||
ucic:set("glorytun-udp","vpn","chacha","1")
|
||||
ucic:set("openvpn","omr","cipher","AES-256-GCM")
|
||||
ucic:set("openvpn","omr","cipher","chacha20-poly1305")
|
||||
ucic:set("mlvpn","general","cleartext_data","0")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_security","chacha20-poly1305")
|
||||
ucic:set("v2ray","omrout","s_vless_user_security","chacha20-poly1305")
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=modemmanager
|
||||
PKG_SOURCE_VERSION:=1.20.6
|
||||
PKG_RELEASE:=8
|
||||
PKG_SOURCE_VERSION:=1.22.0
|
||||
PKG_RELEASE:=5
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
|
||||
PKG_MIRROR_HASH:=e90103e2e42bb826bbbac83937a9a69f50348cd6ce0d8da655a12b65494ce7c9
|
||||
PKG_MIRROR_HASH:=98daa1a15075c88afb3ed0de20dc83fe51d2ba3c66318ce3f731da4616a2e192
|
||||
|
||||
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
. /lib/functions.sh
|
||||
. /lib/netifd/netifd-proto.sh
|
||||
INCLUDE_ONLY=1 . /lib/netifd/proto/modemmanager.sh
|
||||
|
||||
################################################################################
|
||||
# Runtime state
|
||||
|
@ -20,7 +21,8 @@ MODEMMANAGER_EVENTS_CACHE="${MODEMMANAGER_RUNDIR}/events.cache"
|
|||
# Common logging
|
||||
|
||||
mm_log() {
|
||||
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && logger -t "ModemManager" "hotplug: $*"
|
||||
local level="$1"; shift
|
||||
logger -p "daemon.${level}" -t "ModemManager[$$]" "hotplug: $*"
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
@ -39,14 +41,14 @@ mm_find_physdev_sysfs_path() {
|
|||
# avoid infinite loops iterating
|
||||
[ -z "${tmp_path}" ] || [ "${tmp_path}" = "/" ] && return
|
||||
|
||||
# for USB devices, the physical device will be that with a idVendor
|
||||
# and idProduct pair of files
|
||||
# For USB devices, the physical device will be that with a idVendor
|
||||
# and idProduct pair of files
|
||||
[ -f "${tmp_path}"/idVendor ] && [ -f "${tmp_path}"/idProduct ] && {
|
||||
tmp_path=$(readlink -f "$tmp_path")
|
||||
echo "${tmp_path}"
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
# For PCI devices, the physical device will be that with a vendor
|
||||
# and device pair of files
|
||||
[ -f "${tmp_path}"/vendor ] && [ -f "${tmp_path}"/device ] && {
|
||||
|
@ -138,10 +140,6 @@ mm_get_modem_config_foreach_cb() {
|
|||
local cfg="$1"
|
||||
local sysfspath="$2"
|
||||
|
||||
local proto
|
||||
config_get proto "${cfg}" proto
|
||||
[ "${proto}" = modemmanager ] || return 0
|
||||
|
||||
local dev
|
||||
dev=$(uci_get network "${cfg}" device)
|
||||
[ "${dev}" = "${sysfspath}" ] || return 0
|
||||
|
@ -169,7 +167,7 @@ mm_wait_for_modem() {
|
|||
|
||||
while [ $n -ge 0 ]; do
|
||||
[ -d "${sysfspath}" ] || {
|
||||
mm_log "error: ignoring modem detection request: no device at ${sysfspath}"
|
||||
mm_log "error" "ignoring modem detection request: no device at ${sysfspath}"
|
||||
proto_set_available "${cfg}" 0
|
||||
return 1
|
||||
}
|
||||
|
@ -177,10 +175,10 @@ mm_wait_for_modem() {
|
|||
# Check if the modem exists at the given sysfs path
|
||||
if ! mmcli -m "${sysfspath}" > /dev/null 2>&1
|
||||
then
|
||||
mm_log "error: modem not detected at sysfs path"
|
||||
mm_log "error" "modem not detected at sysfs path"
|
||||
else
|
||||
mm_log "modem exported successfully at ${sysfspath}"
|
||||
mm_log "setting interface '${cfg}' as available"
|
||||
mm_log "info" "modem exported successfully at ${sysfspath}"
|
||||
mm_log "info" "setting interface '${cfg}' as available"
|
||||
proto_set_available "${cfg}" 1
|
||||
return 0
|
||||
fi
|
||||
|
@ -189,7 +187,7 @@ mm_wait_for_modem() {
|
|||
n=$((n-step))
|
||||
done
|
||||
|
||||
mm_log "error: timed out waiting for the modem to get exported at ${sysfspath}"
|
||||
mm_log "error" "timed out waiting for the modem to get exported at ${sysfspath}"
|
||||
proto_set_available "${cfg}" 0
|
||||
return 2
|
||||
}
|
||||
|
@ -201,7 +199,7 @@ mm_report_modem_wait() {
|
|||
|
||||
parent_sysfspath=$(mm_find_physdev_sysfs_path "$sysfspath")
|
||||
[ -n "${parent_sysfspath}" ] || {
|
||||
mm_log "error: parent device sysfspath not found"
|
||||
mm_log "error" "parent device sysfspath not found"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -212,23 +210,23 @@ mm_report_modem_wait() {
|
|||
|
||||
cfg=$(mm_get_modem_config "${parent_sysfspath}")
|
||||
if [ -n "${cfg}" ]; then
|
||||
mm_log "interface '${cfg}' is set to configure device '${parent_sysfspath}'"
|
||||
mm_log "now waiting for modem at sysfs path ${parent_sysfspath}"
|
||||
mm_log "info" "interface '${cfg}' is set to configure device '${parent_sysfspath}'"
|
||||
mm_log "info" "now waiting for modem at sysfs path ${parent_sysfspath}"
|
||||
mm_set_modem_wait_status "${parent_sysfspath}" "processed"
|
||||
# Launch subshell for the explicit wait
|
||||
( mm_wait_for_modem "${cfg}" "${parent_sysfspath}" ) > /dev/null 2>&1 &
|
||||
else
|
||||
mm_log "no need to wait for modem at sysfs path ${parent_sysfspath}"
|
||||
mm_log "info" "no need to wait for modem at sysfs path ${parent_sysfspath}"
|
||||
mm_set_modem_wait_status "${parent_sysfspath}" "ignored"
|
||||
fi
|
||||
;;
|
||||
"processed")
|
||||
mm_log "already waiting for modem at sysfs path ${parent_sysfspath}"
|
||||
mm_log "info" "already waiting for modem at sysfs path ${parent_sysfspath}"
|
||||
;;
|
||||
"ignored")
|
||||
;;
|
||||
*)
|
||||
mm_log "error: unknown status read for device at sysfs path ${parent_sysfspath}"
|
||||
mm_log "error" "unknown status read for device at sysfs path ${parent_sysfspath}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
@ -236,19 +234,21 @@ mm_report_modem_wait() {
|
|||
################################################################################
|
||||
# Cleanup interfaces
|
||||
|
||||
mm_cleanup_interface_cb() {
|
||||
local cfg="$1"
|
||||
|
||||
local proto
|
||||
config_get proto "${cfg}" proto
|
||||
[ "${proto}" = modemmanager ] || return 0
|
||||
|
||||
proto_set_available "${cfg}" 0
|
||||
}
|
||||
|
||||
mm_cleanup_interfaces() {
|
||||
config_load network
|
||||
config_foreach mm_cleanup_interface_cb interface
|
||||
local sysfs_path status
|
||||
|
||||
# Do nothing if there is no sysfs cache
|
||||
[ -f "${MODEMMANAGER_SYSFS_CACHE}" ] || return
|
||||
|
||||
while IFS= read -r sysfs_cache_line; do
|
||||
sysfs_path=$(echo "${sysfs_cache_line}" | awk '{print $1}')
|
||||
status=$(echo "${sysfs_cache_line}" | awk '{print $2}')
|
||||
|
||||
if [ "${status}" = "processed" ]; then
|
||||
mm_log "debug" "call cleanup for: ${sysfs_path}"
|
||||
mm_cleanup_interface_by_sysfspath "${sysfs_path}"
|
||||
fi
|
||||
done < ${MODEMMANAGER_SYSFS_CACHE}
|
||||
}
|
||||
|
||||
mm_cleanup_interface_by_sysfspath() {
|
||||
|
@ -258,7 +258,7 @@ mm_cleanup_interface_by_sysfspath() {
|
|||
cfg=$(mm_get_modem_config "$dev")
|
||||
[ -n "${cfg}" ] || return
|
||||
|
||||
mm_log "setting interface '$cfg' as unavailable"
|
||||
mm_log "info" "setting interface '$cfg' as unavailable"
|
||||
proto_set_available "${cfg}" 0
|
||||
}
|
||||
|
||||
|
@ -273,7 +273,7 @@ mm_report_event() {
|
|||
local sysfspath="$4"
|
||||
|
||||
# Do not save virtual devices
|
||||
local virtual
|
||||
local virtual result
|
||||
virtual="$(echo "$sysfspath" | cut -d'/' -f4)"
|
||||
[ "$virtual" = "virtual" ] && {
|
||||
mm_log "debug" "sysfspath is a virtual device ($sysfspath)"
|
||||
|
@ -294,11 +294,15 @@ mm_report_event() {
|
|||
esac
|
||||
|
||||
# Report the event
|
||||
mm_log "event reported: action=${action}, name=${name}, subsystem=${subsystem}"
|
||||
mmcli --report-kernel-event="action=${action},name=${name},subsystem=${subsystem}" 1>/dev/null 2>&1 &
|
||||
mm_log "debug" "Report event: action=${action}, name=${name}, subsystem=${subsystem}"
|
||||
result=$(mmcli --report-kernel-event="action=${action},name=${name},subsystem=${subsystem}" 2>&1)
|
||||
if [ "$?" -eq "0" ]; then
|
||||
# Wait for added modem if a sysfspath is given
|
||||
[ -n "${sysfspath}" ] && [ "$action" = "add" ] && mm_report_modem_wait "${sysfspath}"
|
||||
else
|
||||
mm_log "error" "Couldn't report kernel event: ${result}"
|
||||
fi
|
||||
|
||||
# Wait for added modem if a sysfspath is given
|
||||
[ -n "${sysfspath}" ] && [ "$action" = "add" ] && mm_report_modem_wait "${sysfspath}"
|
||||
}
|
||||
|
||||
mm_report_event_from_cache_line() {
|
||||
|
@ -310,14 +314,11 @@ mm_report_event_from_cache_line() {
|
|||
subsystem=$(echo "${event_line}" | awk -F ',' '{ print $3 }')
|
||||
sysfspath=$(echo "${event_line}" | awk -F ',' '{ print $4 }')
|
||||
|
||||
mm_log "cached event found: action=${action}, name=${name}, subsystem=${subsystem}, sysfspath=${sysfspath}"
|
||||
mm_log "debug" "cached event found: action=${action}, name=${name}, subsystem=${subsystem}, sysfspath=${sysfspath}"
|
||||
mm_report_event "${action}" "${name}" "${subsystem}" "${sysfspath}"
|
||||
}
|
||||
|
||||
mm_report_events_from_cache() {
|
||||
# Remove the sysfs cache
|
||||
rm -f "${MODEMMANAGER_SYSFS_CACHE}"
|
||||
|
||||
local n=60
|
||||
local step=1
|
||||
local mmrunning=0
|
||||
|
@ -325,11 +326,11 @@ mm_report_events_from_cache() {
|
|||
# Wait for ModemManager to be available in the bus
|
||||
while [ $n -ge 0 ]; do
|
||||
sleep $step
|
||||
mm_log "checking if ModemManager is available..."
|
||||
mm_log "info" "checking if ModemManager is available..."
|
||||
|
||||
if ! mmcli -L >/dev/null 2>&1
|
||||
then
|
||||
mm_log "ModemManager not yet available"
|
||||
mm_log "info" "ModemManager not yet available"
|
||||
else
|
||||
mmrunning=1
|
||||
break
|
||||
|
@ -338,10 +339,13 @@ mm_report_events_from_cache() {
|
|||
done
|
||||
|
||||
[ ${mmrunning} -eq 1 ] || {
|
||||
mm_log "error: couldn't report initial kernel events: ModemManager not running"
|
||||
mm_log "error" "couldn't report initial kernel events: ModemManager not running"
|
||||
return
|
||||
}
|
||||
|
||||
# Remove the sysfs cache
|
||||
rm -f "${MODEMMANAGER_SYSFS_CACHE}"
|
||||
|
||||
# Report cached kernel events
|
||||
while IFS= read -r event_line; do
|
||||
mm_report_event_from_cache_line "${event_line}"
|
||||
|
|
|
@ -4,13 +4,6 @@
|
|||
USE_PROCD=1
|
||||
START=70
|
||||
|
||||
stop_service() {
|
||||
# Load common utils
|
||||
. /usr/share/ModemManager/modemmanager.common
|
||||
# Set all configured interfaces as unavailable
|
||||
mm_cleanup_interfaces
|
||||
}
|
||||
|
||||
start_service() {
|
||||
# Setup ModemManager service
|
||||
#
|
||||
|
|
|
@ -20,7 +20,6 @@ main() {
|
|||
|
||||
mkdir -p "${MODEMMANAGER_RUNDIR}"
|
||||
chmod 0755 "${MODEMMANAGER_RUNDIR}"
|
||||
mm_cleanup_interfaces
|
||||
|
||||
/usr/sbin/ModemManager "$@" 1>/dev/null 2>/dev/null &
|
||||
CHILD="$!"
|
||||
|
@ -28,6 +27,7 @@ main() {
|
|||
mm_report_events_from_cache
|
||||
|
||||
wait "$CHILD"
|
||||
mm_cleanup_interfaces
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
|
|
@ -141,7 +141,9 @@ else
|
|||
|
||||
ID=$(ip mptcp endpoint show | grep -m 1 "dev $DEVICE" | awk '{print $3}')
|
||||
IFF=$(ip mptcp endpoint show | grep -m 1 "dev $DEVICE" | awk '{print $4}')
|
||||
IP=$(ip a show $DEVICE | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
|
||||
#IP=$(ip a show $DEVICE | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
|
||||
[ -f /usr/bin/jsonfilter ] && IP=$(ip -j a show $DEVICE | jsonfilter -e '@[0].addr_info[*].local')
|
||||
[ -f /usr/bin/jq ] && IP=$(ip -j a show $DEVICE | jq -r '.[0].addr_info[].local')
|
||||
[ -z "$ID" ] && [ -n "$IP" ] && ID=$(ip mptcp endpoint show | grep "$IP" | awk '{print $3}')
|
||||
RMID=$(ip mptcp endpoint show | grep '::ffff' | awk '{ print $3 }')
|
||||
[ -n "$RMID" ] && ip mptcp endpoint delete id $RMID 2>&1 >/dev/null
|
||||
|
|
|
@ -79,9 +79,18 @@ _check_master() {
|
|||
EOF
|
||||
if [ "$count" -eq "0" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_vmess_address=$ip
|
||||
set xray.omrout.s_vless_address=$ip
|
||||
set xray.omrout.s_vless_reality_address=$ip
|
||||
set xray.omrout.s_trojan_address=$ip
|
||||
set xray.omrout.s_socks_address=$ip
|
||||
set xray.omrout.s_shadowsocks_address=$ip
|
||||
set v2ray.omrout.s_vmess_address=$ip
|
||||
set v2ray.omrout.s_vless_address=$ip
|
||||
set v2ray.omrout.s_trojan_address=$ip
|
||||
set v2ray.omrout.s_socks_address=$ip
|
||||
commit v2ray
|
||||
commit xray
|
||||
set glorytun.vpn.host=$ip
|
||||
commit glorytun
|
||||
glorytun-udp.vpn.host=$ip
|
||||
|
@ -98,6 +107,7 @@ _check_master() {
|
|||
EOF
|
||||
/etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null
|
||||
/etc/init.d/v2ray restart >/dev/null 2>/dev/null
|
||||
/etc/init.d/xray restart >/dev/null 2>/dev/null
|
||||
/etc/init.d/glorytun restart >/dev/null 2>/dev/null
|
||||
/etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null
|
||||
/etc/init.d/mlvpn restart >/dev/null 2>/dev/null
|
||||
|
@ -194,9 +204,18 @@ _check_backup() {
|
|||
EOF
|
||||
if [ "$count" -eq "0" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_vmess_address=$ip
|
||||
set xray.omrout.s_vless_address=$ip
|
||||
set xray.omrout.s_vless_reality_address=$ip
|
||||
set xray.omrout.s_trojan_address=$ip
|
||||
set xray.omrout.s_socks_address=$ip
|
||||
set xray.omrout.s_shadowsocks_address=$ip
|
||||
set v2ray.omrout.s_vmess_address=$ip
|
||||
set v2ray.omrout.s_vless_address=$ip
|
||||
set v2ray.omrout.s_trojan_address=$ip
|
||||
set v2ray.omrout.s_socks_address=$ip
|
||||
commit v2ray
|
||||
commit xray
|
||||
set glorytun.vpn.host=$ip
|
||||
commit glorytun
|
||||
glorytun-udp.vpn.host=$ip
|
||||
|
|
|
@ -135,7 +135,7 @@ _set_glorytun_vps() {
|
|||
|
||||
_set_openvpn_vps() {
|
||||
local enabled port key
|
||||
enabled="$(uci -q get openvpn.omr.enable)"
|
||||
enabled="$(uci -q get openvpn.omr.enabled)"
|
||||
[ "$enabled" != "1" ] && echo "OpenVPN disabled" && return
|
||||
port="$(uci -q get openvpn.omr.port)"
|
||||
cipher="$(uci -q get openvpn.omr.cipher)"
|
||||
|
|
|
@ -154,9 +154,10 @@ if [ "$(uci -q get network.tun0.mtu)" = "1200" ] || [ -z "$(uci -q get network.t
|
|||
EOF
|
||||
fi
|
||||
|
||||
# Set the default VPN
|
||||
if [ "$(uci -q get openmptcprouter.settings.vpn)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openmptcprouter.settings.vpn='glorytun_tcp'
|
||||
set openmptcprouter.settings.vpn='openvpn'
|
||||
set glorytun.vpn.enable='1'
|
||||
commit glorytun
|
||||
commit openmptcprouter
|
||||
|
|
Loading…
Reference in a new issue