From 8ec0bdff9b04d6231b64458120c56de17132f895 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 5 Dec 2023 16:35:47 +0100 Subject: [PATCH 1/6] Add debug mode to modemamanger to be able to run AT commands --- modemmanager/files/modemmanager.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modemmanager/files/modemmanager.init b/modemmanager/files/modemmanager.init index c19022031..16610bcd8 100644 --- a/modemmanager/files/modemmanager.init +++ b/modemmanager/files/modemmanager.init @@ -20,7 +20,7 @@ start_service() { # . /usr/share/ModemManager/modemmanager.common procd_open_instance - procd_set_param command /usr/sbin/ModemManager-wrapper + procd_set_param command /usr/sbin/ModemManager-wrapper --debug procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}" procd_set_param pidfile "${MODEMMANAGER_PID_FILE}" procd_close_instance From 6dbc29ae7baa74cabc925f0bff6d5c73a9915dbb Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 5 Dec 2023 16:36:14 +0100 Subject: [PATCH 2/6] Restart OpenVPN only if not started and with a CA --- mptcp/files/usr/share/omr/post-tracking.d/010-services | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/010-services b/mptcp/files/usr/share/omr/post-tracking.d/010-services index eab51b480..4268caa61 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/010-services +++ b/mptcp/files/usr/share/omr/post-tracking.d/010-services @@ -42,7 +42,7 @@ fi if [ "$(pgrep openvpn)" = "" ] && [ -f /etc/init.d/openvpn ]; then openvpn_enable=0 openvpn_enabled() { - [ "$(uci -q get openvpn.$1.enabled)" = "1" ] && openvpn_enable=1 + [ "$(uci -q get openvpn.$1.enabled)" = "1" ] && [ -n "$(uci -q get openvpn.$1.ca)" ] && openvpn_enable=1 } config_load openvpn config_foreach openvpn_enabled openvpn From 8c8ae48f707280513cd7911dd443b7fe54def42a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 5 Dec 2023 17:49:43 +0100 Subject: [PATCH 3/6] Add netxen-nix fix https://github.com/Ysurac/openmptcprouter/issues/3065 --- netxen-nic/Makefile | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 netxen-nic/Makefile diff --git a/netxen-nic/Makefile b/netxen-nic/Makefile new file mode 100644 index 000000000..399970c87 --- /dev/null +++ b/netxen-nic/Makefile @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: GPL-2.0-only + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME := netxen-nic +PKG_RELEASE := 1 + +PKG_SOURCE := $(LINUX_SOURCE) +PKG_SOURCE_URL := $(LINUX_SITE) +PKG_HASH := $(LINUX_KERNEL_HASH) + +PKG_LICENSE := GPL-2.0 + +PKG_FLAGS := nonshared +PKG_BUILD_PARALLEL := 1 + +include $(INCLUDE_DIR)/package.mk + +TAR_CMD=$(HOST_TAR) -C $(1) --strip-components=1 $(TAR_OPTIONS) + +define Build/Compile + $(KERNEL_MAKE) \ + $(PKG_JOBS) \ + CONFIG_NETXEN_NIC=m \ + M=$(PKG_BUILD_DIR)/drivers/net/ethernet/qlogic/netxen \ + modules +endef + +KernelPackage/hooks := : + +define KernelPackage/netxen-nic + TITLE := NetXen Multi port (1/10) Gigabit Ethernet NIC + KCONFIG := CONFIG_NETXEN_NIC=m + FILES := $(PKG_BUILD_DIR)/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko + AUTOLOAD := $(call AutoProbe,netxen_nic) + DEPENDS := @PCI_SUPPORT +endef +$(eval $(call KernelPackage,netxen-nic)) From a277c1c7b2a320687130675d219bb87ccfd93731 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 6 Dec 2023 14:25:39 +0100 Subject: [PATCH 4/6] Should fix https://github.com/Ysurac/openmptcprouter/issues/3050 --- .../omr/post-tracking.d/001-post-tracking | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking index 86490fa01..737415ae9 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking @@ -722,6 +722,7 @@ default_gw=$(ip route get 1.1.1.1 | grep via | awk '{print $3}') default_gw6=$(ip -6 route get 2606:4700:4700::1111 | grep via | awk '{print $3}') #current_interface_gw=$(uci -q get "network.$OMR_TRACKER_INTERFACE.gateway") +interface_autostart=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e '@["autostart"]') interface_up=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e '@["up"]') interface_available=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e '@["available"]') interface_pending=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e '@["pending"]') @@ -739,7 +740,20 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then _log "Set $OMR_TRACKER_INTERFACE up" ifup $OMR_TRACKER_INTERFACE sleep 30 - #elif [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ]; then + elif [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_up" = "false" ] && [ "$interface_available" = "false" ] && [ "$interface_pending" = "false" ] && [ "$interface_autostart" = "true" ]; then + modemfind="0" + for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do + if [ -n "$(timeout 2 mmcli -m $modem -K | grep $OMR_TRACKER_DEVICE)" ]; then + modemfind="1" + fi + done + if [ "$modemfind" = "0" ]; then + _log "Can't find $OMR_TRACKER_INTERFACE in ModemManager, restart modemmanager..." + /etc/init.d/modemmanager restart + sleep 30 + fi + fi + #elif [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_available" = "false" ]; then # for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do # if [ -n "$(timeout 2 mmcli -m $modem -K | grep $OMR_TRACKER_DEVICE)" ]; then # modem_device=$(timeout 2 mmcli -m $modem -K | grep 'modem.generic.device ' | awk '{print $3}') @@ -753,7 +767,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then # } # fi # done - fi + #fi # This part must be done after modems restart because we have no idea when modems will be ready again... (another solution would be to check ModemManager status) if [ "$OMR_TRACKER_PREV_STATUS" = "$OMR_TRACKER_STATUS" ]; then From 9eca2b3ed78897df0b981ed086757a80b0a9d23a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 6 Dec 2023 14:26:26 +0100 Subject: [PATCH 5/6] Less logs by default --- openmptcprouter/files/etc/uci-defaults/2060-omr-system | 1 + 1 file changed, 1 insertion(+) diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index 3e30f8d5b..01d8b66b2 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -7,6 +7,7 @@ uci -q batch <<-EOF >/dev/null set system.ntp.enabled='1' del system.ntp.server set system.@system[-1].cronloglevel=9 + set system.@system[-1].conloglevel=7 add_list system.ntp.server='0.pool.ntp.org' add_list system.ntp.server='1.pool.ntp.org' add_list system.ntp.server='2.pool.ntp.org' From 4a660fdd729dbb4fde923e921126eea3348249de Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 6 Dec 2023 18:04:53 +0100 Subject: [PATCH 6/6] Only display VPS available proxy --- .../luasrc/view/openmptcprouter/wizard.htm | 39 +++++++++++++++++++ .../files/etc/init.d/openmptcprouter-vps | 15 +++++++ 2 files changed, 54 insertions(+) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 1d8eba66a..128199904 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -232,6 +232,42 @@

diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 0b3512f6e..0176273ea 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -1936,8 +1936,10 @@ _set_config_from_vps() { # Get available server available_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')" + available_proxy="$(echo "$vps_config" | jsonfilter -q -e '@.proxy.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')" uci -q batch <<-EOF >/dev/null del openmptcprouter.${servername}.available_vpn + del openmptcprouter.${servername}.available_proxy EOF if [ "$user_permission" = "ro" ]; then @@ -1947,6 +1949,12 @@ _set_config_from_vps() { set openmptcprouter.${servername}.available_vpn=${current_vpn} EOF fi + current_proxy="$(echo "$vps_config" | jsonfilter -q -e '@.proxy.current')" + if [ -n "$current_proxy" ]; then + uci -q batch <<-EOF >/dev/null + set openmptcprouter.${servername}.available_proxy=${current_proxy} + EOF + fi else if [ -n "$available_vpn" ]; then @@ -1956,6 +1964,13 @@ _set_config_from_vps() { EOF done fi + if [ -n "$available_proxy" ]; then + for proxy in $available_proxy; do + uci -q batch <<-EOF >/dev/null + add_list openmptcprouter.${servername}.available_proxy=$proxy + EOF + done + fi fi if [ "$noerror" = "1" ]; then uci -q batch <<-EOF >/dev/null