diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 32ca54a3c..fa3269151 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -1337,6 +1337,12 @@ function settings_add() local disable_6in4 = luci.http.formvalue("enable6in4") or "0" ucic:set("openmptcprouter","settings","disable_6in4",disable_6in4) + -- Disable ModemManager + local disable_modemmanager = luci.http.formvalue("disablemodemmanager") or "0" + ucic:set("openmptcprouter","settings","disable_modemmanager",disable_modemmanager) + if disable_modemmanager == "1" then + luci.sys.exec("/etc/init.d/modemmanager stop") + end -- Enable/disable external check local externalcheck = luci.http.formvalue("externalcheck") or "1" diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index a428166b1..5f2594c35 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -297,6 +297,13 @@ +
+ +
+ checked<% end %>> +
+
+
diff --git a/modemmanager/files/etc/init.d/modemmanager b/modemmanager/files/etc/init.d/modemmanager index 44d2ebebc..e34080837 100644 --- a/modemmanager/files/etc/init.d/modemmanager +++ b/modemmanager/files/etc/init.d/modemmanager @@ -7,6 +7,7 @@ START=05 LOG_LEVEL="INFO" start_service() { + [ "$(uci -q get openmptcprouter.settings.disable_modemmanager)" = "1" ] && return # Setup ModemManager service # # We will make sure that the rundir always exists, and we initially cleanup diff --git a/omr-schedule/files/usr/share/omr/schedule.d/010-services b/omr-schedule/files/usr/share/omr/schedule.d/010-services index 91d565280..066e6a744 100755 --- a/omr-schedule/files/usr/share/omr/schedule.d/010-services +++ b/omr-schedule/files/usr/share/omr/schedule.d/010-services @@ -104,20 +104,21 @@ if [ "$(pgrep uhttpd)" = "" ] && [ -f /etc/init.d/uhttpd ]; then sleep 5 fi -if [ -z "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ]; then - _log "Can't find ModemManager, restart it..." - /etc/init.d/modemmanager restart >/dev/null 2>&1 - sleep 5 -elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ] && [ -z "$(timeout 2 mmcli -L)" ]; then - _log "ModemManager doesn't answer, restart it..." - /etc/init.d/modemmanager restart >/dev/null 2>&1 - sleep 5 -#elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -z "$(uci -q show network | grep modemmanager)" ]; then -# _log "ModemManager not used, stop it..." -# /etc/init.d/modemmanager stop >/dev/null 2>&1 -# sleep 5 +if [ "$(uci -q get openmptcprouter.settings.disable_modemmanager)" != "1" ]; then + if [ -z "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ]; then + _log "Can't find ModemManager, restart it..." + /etc/init.d/modemmanager restart >/dev/null 2>&1 + sleep 5 + elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ] && [ -z "$(timeout 2 mmcli -L)" ]; then + _log "ModemManager doesn't answer, restart it..." + /etc/init.d/modemmanager restart >/dev/null 2>&1 + sleep 5 + #elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -z "$(uci -q show network | grep modemmanager)" ]; then + # _log "ModemManager not used, stop it..." + # /etc/init.d/modemmanager stop >/dev/null 2>&1 + # sleep 5 + fi fi - if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ "$(pgrep -f omr-tracker-v2ray)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then _log "Can't find omr-tracker-v2ray, restart omr-tracker..." /etc/init.d/omr-tracker restart >/dev/null 2>&1 diff --git a/omr-tracker/files/etc/config/omr-tracker b/omr-tracker/files/etc/config/omr-tracker index 40adaab52..b5e7606d1 100644 --- a/omr-tracker/files/etc/config/omr-tracker +++ b/omr-tracker/files/etc/config/omr-tracker @@ -35,7 +35,7 @@ config defaults 'defaults' option family 'ipv4' option reliability '1' option count '2' - option failure_interval '5' + option failure_interval '20' option tries_up '5' config proxy 'proxy' diff --git a/omr-tracker/files/etc/uci-defaults/omr-tracker b/omr-tracker/files/etc/uci-defaults/omr-tracker index 5c495ca86..74df05a1f 100755 --- a/omr-tracker/files/etc/uci-defaults/omr-tracker +++ b/omr-tracker/files/etc/uci-defaults/omr-tracker @@ -115,6 +115,13 @@ if [ "$(uci -q get omr-tracker.defaults.server_http_test)" = "" ]; then EOF fi +if [ -z "$(uci -q get omr-tracker.defaults.failure_interval)" ] || [ "$(uci -q get omr-tracker.defaults.failure_interval)" = "5" ]; then + uci -q batch <<-EOF >/dev/null + set omr-tracker.defaults.failure_interval=20 + commit omr-tracker + EOF +fi + if [ "$(uci -q get omr-tracker.defaults.family)" = "" ]; then uci -q batch <<-EOF >/dev/null set omr-tracker.defaults.initial_state='online' diff --git a/omr-tracker/files/usr/share/omr/post-tracking.d/002-error b/omr-tracker/files/usr/share/omr/post-tracking.d/002-error index a587cec71..52c3d608c 100755 --- a/omr-tracker/files/usr/share/omr/post-tracking.d/002-error +++ b/omr-tracker/files/usr/share/omr/post-tracking.d/002-error @@ -42,7 +42,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || { [ "$OMR_TRACKER_INTERFACE" != "omrvp # ifup $OMR_TRACKER_INTERFACE # sleep 30 #if [ -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 - if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ]; then + if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$(uci -q get openmptcprouter.settings.disable_modemmanager)" != "1" ]; then modemfind="0" device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)" . /usr/share/ModemManager/modemmanager.common diff --git a/ovpn-dco/Makefile b/ovpn-dco/Makefile index 1a62cf7c2..d41d0b8e3 100644 --- a/ovpn-dco/Makefile +++ b/ovpn-dco/Makefile @@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk define KernelPackage/ovpn-dco-v2 SUBMENU:=Network Support TITLE:=OpenVPN data channel offload - DEPENDS:=+kmod-crypto-aead +kmod-udptunnel4 +IPV6:kmod-udptunnel6 @!LINUX_6_10 @!LINUX_6_11 + DEPENDS:=+kmod-crypto-aead +kmod-udptunnel4 +IPV6:kmod-udptunnel6 FILES:=$(PKG_BUILD_DIR)/drivers/net/ovpn-dco/ovpn-dco-v2.ko AUTOLOAD:=$(call AutoLoad,30,ovpn-dco-v2) endef diff --git a/ovpn-dco/patches/900-fix-linux-6.6.patch b/ovpn-dco/patches/900-fix-linux-6.6.patch new file mode 100644 index 000000000..8d5457da1 --- /dev/null +++ b/ovpn-dco/patches/900-fix-linux-6.6.patch @@ -0,0 +1,15 @@ +diff --git a/drivers/net/ovpn-dco/ovpn.c b/drivers/net/ovpn-dco/ovpn.c +index 66c0191..6cc426a 100644 +--- a/drivers/net/ovpn-dco/ovpn.c ++++ b/drivers/net/ovpn-dco/ovpn.c +@@ -21,6 +21,10 @@ + #include "tcp.h" + #include "udp.h" + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,10) ++#include ++#endif ++ + #include + #include + diff --git a/ovpn-dco/patches/901-fix-linux-6.11.patch b/ovpn-dco/patches/901-fix-linux-6.11.patch new file mode 100644 index 000000000..b3456527a --- /dev/null +++ b/ovpn-dco/patches/901-fix-linux-6.11.patch @@ -0,0 +1,9 @@ +--- a/drivers/net/ovpn-dco/main.c ++++ b/drivers/net/ovpn-dco/main.c +@@ -268,4 +268,6 @@ MODULE_AUTHOR(DRV_COPYRIGHT); + MODULE_LICENSE("GPL"); + MODULE_VERSION(DRV_VERSION); + MODULE_ALIAS_RTNL_LINK(DRV_NAME); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) + MODULE_ALIAS_GENL_FAMILY(OVPN_NL_NAME); ++#endif diff --git a/r8125/Makefile b/r8125/Makefile deleted file mode 100644 index 3772756b4..000000000 --- a/r8125/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# Attribution: https://gist.github.com/lenew/9b41ba901c3393047ede0766760f9d55 - -#Put this source to 'package/lean/r8125' folder of OpenWRT/LEDE SDK -#Build(make menuconfig, make defconfig, make) - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=r8125 -PKG_VERSION:=9.013.02-2 -PKG_RELEASE:=$(AUTORELEASE) - - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/awesometic/realtek-r8125-dkms/tar.gz/$(PKG_VERSION)? -PKG_HASH:=eae10100680de13e8119602c50a1748b8a0669eccd61d9a4515b4c846deb3960 -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/realtek-$(PKG_NAME)-dkms-$(PKG_VERSION) -PKG_LICENSE:=GPL-2.0-only -PKG_LICENSE_FILES:=LICENSE - -include $(INCLUDE_DIR)/package.mk - -define KernelPackage/r8125 - TITLE:=Driver for Realtek r8125 chipsets - SUBMENU:=Network Devices - VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE) - FILES:= $(PKG_BUILD_DIR)/src/r8125.ko - DEPENDS:=@!LINUX_6_10 @!LINUX_6_11 - AUTOLOAD:=$(call AutoProbe,r8125) -endef - -define Package/r8125/description - This package contains a driver for Realtek r8125 chipsets. -endef - -define Build/Compile - +$(KERNEL_MAKE) M=$(PKG_BUILD_DIR)/src modules -endef - -$(eval $(call KernelPackage,r8125)) diff --git a/r8168/Makefile b/r8168/Makefile deleted file mode 100644 index a3f688eae..000000000 --- a/r8168/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# -# Download realtek r8168 linux driver from official site: -# [https://www.realtek.com/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software] -# - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=r8168 -PKG_VERSION:=8.052.01 -PKG_RELEASE:=1 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/BROBIRD/openwrt-r8168.git -PKG_SOURCE_VERSION:=a1d4d30ce44c6d1d5de559d8dfdda7a65b1918a3 - -PKG_LICENSE:=GPPL-2.0-only - -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) - -include $(INCLUDE_DIR)/package.mk - -define KernelPackage/r8168 - TITLE:=Driver for Realtek r8168 chipsets - SUBMENU:=Network Devices - VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE) - FILES:= $(PKG_BUILD_DIR)/src/r8168.ko - AUTOLOAD:=$(call AutoProbe,r8168) - CONFLICTS:=kmod-r8169 -endef - -define Package/r8168/description - This package contains a driver for Realtek r8168 chipsets. -endef - -define Build/Compile - +$(KERNEL_MAKE) M=$(PKG_BUILD_DIR)/src modules -endef - -$(eval $(call KernelPackage,r8168)) diff --git a/r8168/patches/001-r8168-add-LED-configuration-from-OF.patch b/r8168/patches/001-r8168-add-LED-configuration-from-OF.patch deleted file mode 100644 index 62a352dd8..000000000 --- a/r8168/patches/001-r8168-add-LED-configuration-from-OF.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/src/r8168_n.c -+++ b/src/r8168_n.c -@@ -47,6 +47,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -23482,6 +23483,22 @@ rtl8168_set_bios_setting(struct net_devi - } - } - -+static int rtl8168_led_configuration(struct rtl8168_private *tp) -+{ -+ u32 led_data; -+ int ret; -+ -+ ret = of_property_read_u32(tp->pci_dev->dev.of_node, -+ "realtek,led-data", &led_data); -+ -+ if (ret) -+ return ret; -+ -+ RTL_W16(tp, CustomLED, led_data); -+ -+ return 0; -+} -+ - static void - rtl8168_init_software_variable(struct net_device *dev) - { -@@ -24000,6 +24017,8 @@ rtl8168_init_software_variable(struct ne - tp->NotWrMcuPatchCode = TRUE; - } - -+ rtl8168_led_configuration(tp); -+ - tp->NicCustLedValue = RTL_R16(tp, CustomLED); - - rtl8168_get_hw_wol(dev); diff --git a/r8168/patches/900-6.6-support.patch b/r8168/patches/900-6.6-support.patch deleted file mode 100644 index 00d1adade..000000000 --- a/r8168/patches/900-6.6-support.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/src/r8168_n.c 2023-10-20 17:46:41.593467802 +0200 -+++ b/src/r8168_n.c 2023-10-20 17:47:59.460123974 +0200 -@@ -82,6 +82,10 @@ - #include - #endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,5,0) -+#include -+#endif -+ - #include - #include - diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index b42ccb9bc..e92f65fa4 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.20.4 -PKG_HASH:=cf064ad157974b3e396aab3bb60aab380dbc4e11b736603bfbc8e7a138f6bb26 +PKG_VERSION:=1.21.0 +PKG_HASH:=4891475a2389676e4fd3250bb579ffa7d1ad0bc9e3987c3e293c8f3a8a37bded PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/xtables-addons/Makefile b/xtables-addons/Makefile index 57cfef3a6..5c248634a 100644 --- a/xtables-addons/Makefile +++ b/xtables-addons/Makefile @@ -7,9 +7,9 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=xtables-addons -PKG_VERSION:=3.24 +PKG_VERSION:=3.26 PKG_RELEASE:=1 -PKG_HASH:=3e823f71720519ced31c4c7d2bfaf7120d9c01c59a0843dfcbe93c95c64d81c1 +PKG_HASH:=0b52df2117bacf2e32d1d3f98d09dbf88b274390733d3955699b108acaf9f2a6 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://inai.de/files/xtables-addons/ @@ -41,15 +41,6 @@ CONFIGURE_ARGS+= \ --with-kbuild="$(LINUX_DIR)" \ --with-xtlibdir="/usr/lib/iptables" -ifdef CONFIG_EXTERNAL_TOOLCHAIN -MAKE_FLAGS:= \ - $(patsubst ARCH=%,ARCH=$(LINUX_KARCH),$(MAKE_FLAGS)) \ - DEPMOD="/bin/true" - -MAKE_INSTALL_FLAGS:= \ - $(patsubst ARCH=%,ARCH=$(LINUX_KARCH),$(MAKE_FLAGS)) \ - DEPMOD="/bin/true" -else define Build/Compile +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ $(KERNEL_MAKE_FLAGS) \ @@ -65,7 +56,6 @@ define Build/Install DEPMOD="/bin/true" \ install endef -endif # 1: extension/module suffix used in package name # 2: extension/module display name used in package title/description @@ -80,7 +70,7 @@ define BuildTemplate $$(call Package/xtables-addons) CATEGORY:=Network TITLE:=$(2) iptables extension - DEPENDS:=iptables $(if $(4),+kmod-ipt-$(1)) @!LINUX_6_10 @!LINUX_6_11 + DEPENDS:=iptables $(if $(4),+kmod-ipt-$(1)) endef define Package/iptables-mod-$(1)/install @@ -99,7 +89,7 @@ define BuildTemplate define KernelPackage/ipt-$(1) SUBMENU:=Netfilter Extensions TITLE:=$(2) netfilter module - DEPENDS:=+kmod-ipt-core $(5) @!LINUX_6_10 @!LINUX_6_11 + DEPENDS:=+kmod-ipt-core $(5) FILES:=$(foreach mod,$(4),$(PKG_BUILD_DIR)/extensions/$(mod).$(LINUX_KMOD_SUFFIX)) AUTOLOAD:=$(call AutoProbe,$(notdir $(4))) endef @@ -114,7 +104,7 @@ define Package/iptaccount $(call Package/xtables-addons) CATEGORY:=Network TITLE:=iptables-mod-account control utility - DEPENDS:=iptables +iptables-mod-account @!LINUX_6_10 @!LINUX_6_11 + DEPENDS:=iptables +iptables-mod-account endef define Package/iptaccount/install @@ -136,7 +126,7 @@ define Package/iptasn DEPENDS:=iptables +iptables-mod-asn \ +perl +perlbase-getopt +perlbase-io +perl-text-csv_xs \ +perl-net-cidr-lite \ - +wget-ssl +!BUSYBOX_CONFIG_ZCAT:gzip @!LINUX_6_10 @!LINUX_6_11 + +wget-ssl +!BUSYBOX_CONFIG_ZCAT:gzip endef define Package/iptasn/config @@ -172,7 +162,7 @@ define Package/iptgeoip DEPENDS:=iptables +iptables-mod-geoip \ +perl +perlbase-getopt +perlbase-io +perl-text-csv_xs \ +perl-net-cidr-lite \ - +wget-ssl +!BUSYBOX_CONFIG_ZCAT:gzip @!LINUX_6_10 @!LINUX_6_11 + +wget-ssl +!BUSYBOX_CONFIG_ZCAT:gzip endef define Package/iptgeoip/config diff --git a/xtables-addons/patches/200-add-lua-packetscript.patch b/xtables-addons/patches/200-add-lua-packetscript.patch index 2a97f54d7..c49014e49 100644 --- a/xtables-addons/patches/200-add-lua-packetscript.patch +++ b/xtables-addons/patches/200-add-lua-packetscript.patch @@ -1038,7 +1038,7 @@ +#endif /* CONTROLLER_H_ */ --- /dev/null +++ b/extensions/LUA/Kbuild -@@ -0,0 +1,49 @@ +@@ -0,0 +1,51 @@ +# -*- Makefile -*- + +# Adding debug options @@ -1063,6 +1063,8 @@ + prot_buf_dynamic.o \ + + ++# Enable ++EXTRA_CFLAGS += -isystem $(shell $(CC) -print-file-name=include) +# Adding Lua Support +EXTRA_CFLAGS += -I$(src)/lua -I$(src)/lua/include +xt_LUA-y += lua/lapi.o \ @@ -1361,16 +1363,13 @@ +#include --- /dev/null +++ b/extensions/LUA/lua/lapi.c -@@ -0,0 +1,1086 @@ +@@ -0,0 +1,1083 @@ +/* +** $Id: lapi.c,v 2.55.1.5 2008/07/04 18:41:18 roberto Exp $ +** Lua API +** See Copyright Notice in lua.h +*/ + -+#include -+#include -+#include +#include + +#define lapi_c @@ -7825,7 +7824,7 @@ +} --- /dev/null +++ b/extensions/LUA/lua/llex.h -@@ -0,0 +1,81 @@ +@@ -0,0 +1,83 @@ +/* +** $Id: llex.h,v 1.58.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lexical Analyzer @@ -7838,6 +7837,8 @@ +#include "lobject.h" +#include "lzio.h" + ++/* prevent conflict with definition from asm/current.h */ ++#undef current + +#define FIRST_RESERVED 257 + @@ -7909,7 +7910,7 @@ +#endif --- /dev/null +++ b/extensions/LUA/lua/llimits.h -@@ -0,0 +1,125 @@ +@@ -0,0 +1,124 @@ +/* +** $Id: llimits.h,v 1.69.1.1 2007/12/27 13:02:25 roberto Exp $ +** Limits, basic types, and some other `installation-dependent' definitions @@ -7920,7 +7921,6 @@ +#define llimits_h + +#include -+#include + +#include "lua.h" + @@ -12003,7 +12003,7 @@ +} --- /dev/null +++ b/extensions/LUA/lua/ltable.c -@@ -0,0 +1,588 @@ +@@ -0,0 +1,587 @@ +/* +** $Id: ltable.c,v 2.32.1.2 2007/12/28 15:32:23 roberto Exp $ +** Lua tables (hash) @@ -12024,7 +12024,6 @@ +** Hence even when the load factor reaches 100%, performance remains good. +*/ + -+#include +#include + +#define ltable_c @@ -13062,7 +13061,7 @@ +#endif --- /dev/null +++ b/extensions/LUA/lua/luaconf.h -@@ -0,0 +1,797 @@ +@@ -0,0 +1,803 @@ +/* +** $Id: luaconf.h,v 1.82.1.7 2008/02/11 16:25:08 roberto Exp $ +** Configuration file for Lua @@ -13078,8 +13077,12 @@ +#if !defined(__KERNEL__) +#include +#else ++#include ++ ++#undef UCHAR_MAX ++#undef BUFSIZ ++#undef NO_FPU +#define UCHAR_MAX 255 -+#define SHRT_MAX 32767 +#define BUFSIZ 8192 +#define NO_FPU +#endif @@ -13702,6 +13705,8 @@ +*/ +#if defined(__KERNEL__) +#undef LUA_USE_ULONGJMP ++#define setjmp __builtin_setjmp ++#define longjmp __builtin_longjmp +#endif + +#if defined(__cplusplus) @@ -15649,7 +15654,7 @@ +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = -+SHELL = /bin/bash ++SHELL = /bin/sh +STRIP = strip +VERSION = 1.21 +abs_builddir = /home/andre/Dropbox/xtables-addons/extensions/LUA @@ -17221,7 +17226,7 @@ + --- /dev/null +++ b/extensions/LUA/prot_buf_ip.c -@@ -0,0 +1,209 @@ +@@ -0,0 +1,210 @@ +/* + * Copyright (C) 2010 University of Basel + * by Andre Graf @@ -17241,6 +17246,7 @@ + */ + +#if defined(__KERNEL__) ++ #include + #include + #include +#endif @@ -17479,7 +17485,7 @@ +} --- /dev/null +++ b/extensions/LUA/prot_buf_tcp.c -@@ -0,0 +1,188 @@ +@@ -0,0 +1,189 @@ +/* + * Copyright (C) 2010 University of Basel + * by Andre Graf @@ -17499,6 +17505,7 @@ + */ + +#if defined(__KERNEL__) ++ #include + #include + #include +#endif @@ -17760,7 +17767,7 @@ +} --- /dev/null +++ b/extensions/LUA/prot_buf_udp.c -@@ -0,0 +1,53 @@ +@@ -0,0 +1,54 @@ +/* + * Copyright (C) 2010 University of Basel + * by Andre Graf @@ -17780,6 +17787,7 @@ + */ + +#if defined(__KERNEL__) ++ #include + #include +#endif + @@ -17877,7 +17885,7 @@ +#include +#include +#include -+#include ++#include +#include +#include +#include "xt_LUA.h" @@ -17922,10 +17930,10 @@ + * XT_CONTINUE inside the *register_lua_packet_lib* function. + */ + -+spinlock_t lock = SPIN_LOCK_UNLOCKED; ++DEFINE_SPINLOCK(lock); + +static uint32_t -+lua_tg(struct sk_buff *pskb, const struct xt_target_param *par) ++lua_tg(struct sk_buff *pskb, const struct xt_action_param *par) +{ + uint32_t verdict; + lua_packet_segment *p; @@ -17937,7 +17945,7 @@ + + L = lua_envs[info->state_id]->L; + -+ if (!skb_make_writable(pskb, pskb->len)) ++ if (skb_ensure_writable(pskb, pskb->len)) + return NF_DROP; + + /* call the function provided by --function parameter or the default 'process_packet' defined in Lua */ @@ -17946,11 +17954,11 @@ + /* push the lua_packet_segment as a parameter */ + p = (lua_packet_segment *)lua_newuserdata(L, sizeof(lua_packet_segment)); + if (pskb->mac_header) -+ p->start = pskb->mac_header; ++ p->start = skb_mac_header(pskb); + else if (pskb->network_header) -+ p->start = pskb->network_header; ++ p->start = skb_network_header(pskb); + else if (pskb->transport_header) -+ p->start = pskb->transport_header; ++ p->start = skb_transport_header(pskb); + p->offset = 0; + p->length = (unsigned long)pskb->tail - (unsigned long)p->start; + p->changes = NULL; @@ -18066,16 +18074,16 @@ + * some workqueue initialization. So far this is done each time this function + * is called, subject to change. + */ -+static bool ++static int +lua_tg_checkentry(const struct xt_tgchk_param *par) +{ + const struct xt_lua_tginfo *info = par->targinfo; + + if (load_script_into_state(info->state_id, info->script_size, (char *)info->buf)) { + lua_state_refs[info->state_id]++; -+ return true; ++ return 0; + } -+ return false; ++ return -EINVAL; +} + +/*::* diff --git a/xtables-addons/patches/201-fix-lua-packetscript.patch b/xtables-addons/patches/201-fix-lua-packetscript.patch index 64130121c..fad2693fa 100644 --- a/xtables-addons/patches/201-fix-lua-packetscript.patch +++ b/xtables-addons/patches/201-fix-lua-packetscript.patch @@ -1,147 +1,12 @@ ---- a/extensions/LUA/Kbuild -+++ b/extensions/LUA/Kbuild -@@ -22,6 +22,8 @@ xt_LUA-y += nf_lua.o \ - prot_buf_dynamic.o \ - - -+# Enable -+EXTRA_CFLAGS += -isystem $(shell $(CC) -print-file-name=include) - # Adding Lua Support - EXTRA_CFLAGS += -I$(src)/lua -I$(src)/lua/include - xt_LUA-y += lua/lapi.o \ ---- a/extensions/LUA/xt_LUA_target.c -+++ b/extensions/LUA/xt_LUA_target.c -@@ -19,7 +19,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include "xt_LUA.h" -@@ -64,10 +64,10 @@ uint32_t lua_state_refs[LUA_STATE_ARRAY - * XT_CONTINUE inside the *register_lua_packet_lib* function. - */ - --spinlock_t lock = SPIN_LOCK_UNLOCKED; -+DEFINE_SPINLOCK(lock); - - static uint32_t --lua_tg(struct sk_buff *pskb, const struct xt_target_param *par) -+lua_tg(struct sk_buff *pskb, const struct xt_action_param *par) - { - uint32_t verdict; - lua_packet_segment *p; -@@ -79,7 +79,7 @@ lua_tg(struct sk_buff *pskb, const struc - - L = lua_envs[info->state_id]->L; - -- if (!skb_make_writable(pskb, pskb->len)) -+ if (skb_ensure_writable(pskb, pskb->len)) - return NF_DROP; - - /* call the function provided by --function parameter or the default 'process_packet' defined in Lua */ -@@ -88,11 +88,11 @@ lua_tg(struct sk_buff *pskb, const struc - /* push the lua_packet_segment as a parameter */ - p = (lua_packet_segment *)lua_newuserdata(L, sizeof(lua_packet_segment)); - if (pskb->mac_header) -- p->start = pskb->mac_header; -+ p->start = skb_mac_header(pskb); - else if (pskb->network_header) -- p->start = pskb->network_header; -+ p->start = skb_network_header(pskb); - else if (pskb->transport_header) -- p->start = pskb->transport_header; -+ p->start = skb_transport_header(pskb); - p->offset = 0; - p->length = (unsigned long)pskb->tail - (unsigned long)p->start; - p->changes = NULL; -@@ -208,16 +208,16 @@ static bool load_script_into_state(uint3 - * some workqueue initialization. So far this is done each time this function - * is called, subject to change. - */ --static bool -+static int - lua_tg_checkentry(const struct xt_tgchk_param *par) - { - const struct xt_lua_tginfo *info = par->targinfo; - - if (load_script_into_state(info->state_id, info->script_size, (char *)info->buf)) { - lua_state_refs[info->state_id]++; -- return true; -+ return 0; - } -- return false; -+ return -EINVAL; - } - - /*::* ---- a/extensions/LUA/lua/llimits.h -+++ b/extensions/LUA/lua/llimits.h -@@ -8,7 +8,6 @@ - #define llimits_h - - #include --#include - - #include "lua.h" - ---- a/extensions/LUA/lua/lapi.c -+++ b/extensions/LUA/lua/lapi.c -@@ -4,9 +4,6 @@ - ** See Copyright Notice in lua.h - */ - --#include --#include --#include - #include - - #define lapi_c ---- a/extensions/LUA/lua/ltable.c -+++ b/extensions/LUA/lua/ltable.c -@@ -18,7 +18,6 @@ - ** Hence even when the load factor reaches 100%, performance remains good. - */ - --#include - #include - - #define ltable_c ---- a/extensions/LUA/lua/luaconf.h -+++ b/extensions/LUA/lua/luaconf.h -@@ -13,8 +13,12 @@ - #if !defined(__KERNEL__) - #include - #else -+#include -+ -+#undef UCHAR_MAX -+#undef BUFSIZ -+#undef NO_FPU - #define UCHAR_MAX 255 --#define SHRT_MAX 32767 - #define BUFSIZ 8192 - #define NO_FPU - #endif -@@ -637,6 +641,8 @@ union luai_Cast { double l_d; long l_l; - */ - #if defined(__KERNEL__) - #undef LUA_USE_ULONGJMP -+#define setjmp __builtin_setjmp -+#define longjmp __builtin_longjmp - #endif - - #if defined(__cplusplus) ---- a/extensions/LUA/lua/llex.h -+++ b/extensions/LUA/lua/llex.h -@@ -10,6 +10,8 @@ - #include "lobject.h" - #include "lzio.h" - -+/* prevent conflict with definition from asm/current.h */ -+#undef current - - #define FIRST_RESERVED 257 +--- a/extensions/LUA/controller.h 2024-09-26 16:49:17.099012595 +0200 ++++ b/extensions/LUA/controller.h 2024-09-26 16:49:39.098706793 +0200 +@@ -244,6 +244,9 @@ + int get_string_generic(lua_State *L); + int get_byte_generic_str(lua_State *L); + struct field_changes * get_allocated_field_changes(lua_State *L, int nr_of_fields); ++int32_t get_header_size(struct protocol_buf * prot_buf); ++struct field_changes * tftp_get_field_changes(lua_State *L, lua_packet_segment * seg); ++void free_dynamic_prot_buf(struct protocol_buf * prot_buf); + /* only used by the dynamic prot buf subsystem */ + #define MAX_NR_OF_DYN_PROT_BUFS 16 diff --git a/xtables-addons/patches/210-freebsd-build-fix.patch b/xtables-addons/patches/210-freebsd-build-fix.patch deleted file mode 100644 index 4f05d60eb..000000000 --- a/xtables-addons/patches/210-freebsd-build-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/extensions/LUA/Makefile -+++ b/extensions/LUA/Makefile -@@ -110,7 +110,7 @@ PKG_CONFIG = /usr/bin/pkg-config - RANLIB = ranlib - SED = /bin/sed - SET_MAKE = --SHELL = /bin/bash -+SHELL = /bin/sh - STRIP = strip - VERSION = 1.21 - abs_builddir = /home/andre/Dropbox/xtables-addons/extensions/LUA diff --git a/xtables-addons/patches/300-fix-path-Makefile.extra.patch b/xtables-addons/patches/300-fix-path-Makefile.extra.patch new file mode 100644 index 000000000..34791746c --- /dev/null +++ b/xtables-addons/patches/300-fix-path-Makefile.extra.patch @@ -0,0 +1,11 @@ +--- a/extensions/ACCOUNT/Makefile.am ++++ b/extensions/ACCOUNT/Makefile.am +@@ -3,7 +3,7 @@ + AM_CPPFLAGS = ${regular_CPPFLAGS} -I${abs_top_srcdir}/extensions + AM_CFLAGS = ${regular_CFLAGS} ${libxtables_CFLAGS} + +-include ${top_srcdir}/Makefile.extra ++include ../../Makefile.extra + + sbin_PROGRAMS = iptaccount + iptaccount_LDADD = libxt_ACCOUNT_cl.la diff --git a/xtables-addons/patches/301-fix-build-with-linux-6.11.patch b/xtables-addons/patches/301-fix-build-with-linux-6.11.patch new file mode 100644 index 000000000..15ebf12a4 --- /dev/null +++ b/xtables-addons/patches/301-fix-build-with-linux-6.11.patch @@ -0,0 +1,15 @@ +--- a/extensions/rtsp/nf_conntrack_rtsp.c ++++ b/extensions/rtsp/nf_conntrack_rtsp.c +@@ -735,8 +735,12 @@ init(void) + } + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) + strlcpy(hlpr->name, tmpname, sizeof(hlpr->name)); + #else ++ strscpy(hlpr->name, tmpname, sizeof(hlpr->name)); ++#endif ++#else + hlpr->name = tmpname; + #endif + pr_debug("port #%d: %d\n", i, ports[i]); diff --git a/xtables-addons/patches/900-remove-checksumh.patch b/xtables-addons/patches/900-remove-checksumh.patch deleted file mode 100644 index 4af1688f5..000000000 --- a/xtables-addons/patches/900-remove-checksumh.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- a/extensions/LUA/prot_buf_ip.c 2023-10-20 16:55:00.658340536 +0200 -+++ b/extensions/LUA/prot_buf_ip.c 2023-10-20 16:55:11.030165998 +0200 -@@ -17,7 +17,6 @@ - */ - - #if defined(__KERNEL__) -- #include - #include - #endif - ---- a/extensions/LUA/prot_buf_tcp.c 2023-10-20 17:05:44.507457150 +0200 -+++ v/extensions/LUA/prot_buf_tcp.c 2023-10-20 17:06:08.907041173 +0200 -@@ -17,7 +17,6 @@ - */ - - #if defined(__KERNEL__) -- #include - #include - #endif - #include "controller.h" ---- a/extensions/LUA/prot_buf_udp.c 2023-10-20 17:05:54.411288304 +0200 -+++ b/extensions/LUA/prot_buf_udp.c 2023-10-20 17:06:15.758924360 +0200 -@@ -16,10 +16,9 @@ - * along with this program; if not, see . - */ - - #if defined(__KERNEL__) -- #include - #endif - - #include "controller.h" - -