From bbd74d47d4bc16a2f8bdb0aef695e0cc10dd0b72 Mon Sep 17 00:00:00 2001 From: kenzok8 Date: Fri, 7 Mar 2025 00:27:06 +0800 Subject: [PATCH] update 2025-03-07 00:27:06 --- .../resources/view/fchomo/client.js | 11 +++++ .../resources/view/fchomo/global.js | 12 ++--- luci-app-fchomo/po/templates/fchomo.pot | 23 ++++++++++ luci-app-fchomo/po/zh_Hans/fchomo.po | 23 ++++++++++ luci-app-fchomo/po/zh_Hant/fchomo.po | 23 ++++++++++ .../root/usr/share/fchomo/firewall_post.ut | 10 ++--- .../root/usr/share/fchomo/generate_client.uc | 5 ++- .../root/usr/share/rpcd/ucode/luci.fchomo | 43 +++++------------- .../usr/share/{fchomo => ucode}/fchomo.uc | 44 +++++++++++++++---- .../resources/view/tinyfilemanager/config.js | 6 +-- .../root/etc/config/tinyfilemanager | 2 +- .../root/etc/init.d/tinyfilemanager | 2 +- oaf/Makefile | 2 +- oaf/src/af_log.c | 7 ++- xray-core/Makefile | 4 +- 15 files changed, 154 insertions(+), 63 deletions(-) rename luci-app-fchomo/root/usr/share/{fchomo => ucode}/fchomo.uc (77%) diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js index d34a5a932..102bd328e 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/client.js @@ -799,6 +799,17 @@ return view.extend({ .format('https://wiki.metacubex.one/config/proxy-groups/#exclude-type')); so.placeholder = 'Shadowsocks|Trojan'; so.modalonly = true; + + so = ss.taboption('field_general', form.Flag, 'hidden', _('Hidden'), + _('Returns hidden status in the API to hide the display of this proxy group.') + '
' + + _('requires front-end adaptation using the API.')); + so.default = so.disabled; + so.modalonly = true; + + so = ss.taboption('field_general', form.Value, 'icon', _('Icon'), + _('Returns the string input for icon in the API to display in this proxy group.') + '
' + + _('requires front-end adaptation using the API.')); + so.modalonly = true; /* Proxy Group END */ /* Routing rules START */ diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js index 1cc49fac4..ef7e92583 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js @@ -168,9 +168,9 @@ return view.extend({ return E('strong', [features.core_version || _('Unknown')]); } - so = ss.option(form.DummyValue, '_luciapp_version', _('Application version')); + so = ss.option(form.DummyValue, '_app_version', _('Application version')); so.cfgvalue = function() { - return E('strong', [features.luciapp_version || _('Unknown')]); + return E('strong', [features.app_version || _('Unknown')]); } so = ss.option(form.DummyValue, '_client_status', _('Client status')); @@ -231,7 +231,7 @@ return view.extend({ so.value.apply(so, res); }) so.rmempty = false; - if (!features.hm_has_stunclient) { + if (!features.has_stunclient) { so.description = _('To check NAT Behavior you need to install stuntman-client first') .format('https://github.com/muink/openwrt-stuntman'); so.readonly = true; @@ -475,9 +475,9 @@ return view.extend({ so = ss.option(form.ListValue, 'proxy_mode', _('Proxy mode')); so.value('redir', _('Redirect TCP')); - if (features.hm_has_tproxy) + if (features.has_tproxy) so.value('redir_tproxy', _('Redirect TCP + TProxy UDP')); - if (features.hm_has_ip_full && features.hm_has_tun) { + if (features.has_ip_full && features.has_tun) { so.value('redir_tun', _('Redirect TCP + Tun UDP')); so.value('tun', _('Tun TCP/UDP')); } else @@ -782,7 +782,7 @@ return view.extend({ _('Please ensure that the DNS query of the domains to be processed in the DNS policy
' + 'are send via DIRECT/Proxy Node in the same semantics as Routing mode.')); so.default = so.disabled; - if (!features.hm_has_dnsmasq_full) { + if (!features.has_dnsmasq_full) { so.description = _('To enable, you need to install dnsmasq-full.'); so.readonly = true; uci.set(data[0], so.section.section, so.option, ''); diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot index e49fe721c..b4f878e8c 100644 --- a/luci-app-fchomo/po/templates/fchomo.pot +++ b/luci-app-fchomo/po/templates/fchomo.pot @@ -1010,6 +1010,10 @@ msgstr "" msgid "Heartbeat interval" msgstr "" +#: htdocs/luci-static/resources/view/fchomo/client.js:803 +msgid "Hidden" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:441 msgid "Host that supports TLS 1.3" msgstr "" @@ -1063,6 +1067,10 @@ msgstr "" msgid "IPv6 support" msgstr "" +#: htdocs/luci-static/resources/view/fchomo/client.js:809 +msgid "Icon" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:289 msgid "Idle session check interval" msgstr "" @@ -1891,6 +1899,16 @@ msgstr "" msgid "Restls script" msgstr "" +#: htdocs/luci-static/resources/view/fchomo/client.js:804 +msgid "" +"Returns hidden status in the API to hide the display of this proxy group." +msgstr "" + +#: htdocs/luci-static/resources/view/fchomo/client.js:810 +msgid "" +"Returns the string input for icon in the API to display in this proxy group." +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/global.js:754 msgid "Routing Control" msgstr "" @@ -2692,6 +2710,11 @@ msgstr "" msgid "razord-meta" msgstr "" +#: htdocs/luci-static/resources/view/fchomo/client.js:805 +#: htdocs/luci-static/resources/view/fchomo/client.js:811 +msgid "requires front-end adaptation using the API." +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:430 msgid "restls" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po index e1002c66f..d6276691c 100644 --- a/luci-app-fchomo/po/zh_Hans/fchomo.po +++ b/luci-app-fchomo/po/zh_Hans/fchomo.po @@ -1030,6 +1030,10 @@ msgstr "健康字段" msgid "Heartbeat interval" msgstr "心跳间隔" +#: htdocs/luci-static/resources/view/fchomo/client.js:803 +msgid "Hidden" +msgstr "隐藏" + #: htdocs/luci-static/resources/view/fchomo/node.js:441 msgid "Host that supports TLS 1.3" msgstr "主机名称 (支援 TLS 1.3)" @@ -1083,6 +1087,10 @@ msgstr "仅 IPv6" msgid "IPv6 support" msgstr "IPv6 支持" +#: htdocs/luci-static/resources/view/fchomo/client.js:809 +msgid "Icon" +msgstr "图标" + #: htdocs/luci-static/resources/view/fchomo/node.js:289 msgid "Idle session check interval" msgstr "空闲会话检查间隔" @@ -1918,6 +1926,16 @@ msgstr "资源管理" msgid "Restls script" msgstr "Restls 剧本" +#: htdocs/luci-static/resources/view/fchomo/client.js:804 +msgid "" +"Returns hidden status in the API to hide the display of this proxy group." +msgstr "在 API 返回 hidden 状态,以隐藏该代理组显示" + +#: htdocs/luci-static/resources/view/fchomo/client.js:810 +msgid "" +"Returns the string input for icon in the API to display in this proxy group." +msgstr "在 API 返回 icon 所输入的字符串,以在该代理组显示" + #: htdocs/luci-static/resources/view/fchomo/global.js:754 msgid "Routing Control" msgstr "路由控制" @@ -2726,6 +2744,11 @@ msgstr "私钥" msgid "razord-meta" msgstr "razord-meta" +#: htdocs/luci-static/resources/view/fchomo/client.js:805 +#: htdocs/luci-static/resources/view/fchomo/client.js:811 +msgid "requires front-end adaptation using the API." +msgstr "需要使用 API 的前端适配" + #: htdocs/luci-static/resources/view/fchomo/node.js:430 msgid "restls" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po index 50154bf17..3c0638b04 100644 --- a/luci-app-fchomo/po/zh_Hant/fchomo.po +++ b/luci-app-fchomo/po/zh_Hant/fchomo.po @@ -1030,6 +1030,10 @@ msgstr "健康欄位" msgid "Heartbeat interval" msgstr "心跳間隔" +#: htdocs/luci-static/resources/view/fchomo/client.js:803 +msgid "Hidden" +msgstr "隱藏" + #: htdocs/luci-static/resources/view/fchomo/node.js:441 msgid "Host that supports TLS 1.3" msgstr "主機名稱 (支援 TLS 1.3)" @@ -1083,6 +1087,10 @@ msgstr "僅 IPv6" msgid "IPv6 support" msgstr "IPv6 支援" +#: htdocs/luci-static/resources/view/fchomo/client.js:809 +msgid "Icon" +msgstr "圖標" + #: htdocs/luci-static/resources/view/fchomo/node.js:289 msgid "Idle session check interval" msgstr "空閒會話檢查間隔" @@ -1918,6 +1926,16 @@ msgstr "資源管理" msgid "Restls script" msgstr "Restls 劇本" +#: htdocs/luci-static/resources/view/fchomo/client.js:804 +msgid "" +"Returns hidden status in the API to hide the display of this proxy group." +msgstr "在 API 傳回 hidden 狀態,以隱藏該代理組顯示" + +#: htdocs/luci-static/resources/view/fchomo/client.js:810 +msgid "" +"Returns the string input for icon in the API to display in this proxy group." +msgstr "在 API 傳回 icon 所輸入的字串,以在該代理組顯示" + #: htdocs/luci-static/resources/view/fchomo/global.js:754 msgid "Routing Control" msgstr "路由控制" @@ -2726,6 +2744,11 @@ msgstr "私鑰" msgid "razord-meta" msgstr "razord-meta" +#: htdocs/luci-static/resources/view/fchomo/client.js:805 +#: htdocs/luci-static/resources/view/fchomo/client.js:811 +msgid "requires front-end adaptation using the API." +msgstr "需要使用 API 的前端適配" + #: htdocs/luci-static/resources/view/fchomo/node.js:430 msgid "restls" msgstr "" diff --git a/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut b/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut index f36ef4cb0..f51164a2a 100644 --- a/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut +++ b/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut @@ -4,7 +4,7 @@ {%- import { readfile } from 'fs'; import { cursor } from 'uci'; - import { isEmpty, yqRead } from 'fchomo'; + import { isEmpty, yqReadFile } from 'fchomo'; const fw4 = require('fw4'); @@ -122,10 +122,10 @@ for (let i in control_options) control_info[i] = uci.get(cfgname, 'routing', i); - control_info.wan_direct_ipv4_ips = json(trim(yqRead('-oj', '.IPCIDR', resources_dir + '/direct_list.yaml')) || '[]'); - control_info.wan_direct_ipv6_ips = json(trim(yqRead('-oj', '.IPCIDR6', resources_dir + '/direct_list.yaml')) || '[]'); - control_info.wan_proxy_ipv4_ips = json(trim(yqRead('-oj', '.IPCIDR', resources_dir + '/proxy_list.yaml')) || '[]'); - control_info.wan_proxy_ipv6_ips = json(trim(yqRead('-oj', '.IPCIDR6', resources_dir + '/proxy_list.yaml')) || '[]'); + control_info.wan_direct_ipv4_ips = json(trim(yqReadFile('-oj', '.IPCIDR', resources_dir + '/direct_list.yaml')) || '[]'); + control_info.wan_direct_ipv6_ips = json(trim(yqReadFile('-oj', '.IPCIDR6', resources_dir + '/direct_list.yaml')) || '[]'); + control_info.wan_proxy_ipv4_ips = json(trim(yqReadFile('-oj', '.IPCIDR', resources_dir + '/proxy_list.yaml')) || '[]'); + control_info.wan_proxy_ipv6_ips = json(trim(yqReadFile('-oj', '.IPCIDR6', resources_dir + '/proxy_list.yaml')) || '[]'); /* UCI config end */ -%} diff --git a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc index 42a2a86fe..8a9045503 100644 --- a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc +++ b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc @@ -666,9 +666,12 @@ uci.foreach(uciconf, ucipgrp, (cfg) => { lazy: (cfg.lazy === '0') ? false : null, "expected-status": cfg.url ? cfg.expected_status || '204' : null, "max-failed-times": cfg.url ? strToInt(cfg.max_failed_times) ?? 5 : null, + // General fields filter: parse_filter(cfg.filter), "exclude-filter": parse_filter(cfg.exclude_filter), - "exclude-type": parse_filter(cfg.exclude_type) + "exclude-type": parse_filter(cfg.exclude_type), + hidden: strToBool(cfg.hidden), + icon: cfg.icon }); }); /* Proxy Group END */ diff --git a/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo b/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo index 4c07bb7d4..903c934e4 100644 --- a/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo +++ b/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo @@ -4,17 +4,9 @@ import { access, lsdir, lstat, popen, readfile, writefile } from 'fs'; import { - shellQuote, yqRead, + shellQuote, isBinary, yqReadFile, HM_DIR, EXE_DIR, SDL_DIR, RUN_DIR -} from '/usr/share/fchomo/fchomo.uc'; - -function isBinary(str) { - for (let off = 0, byte = ord(str); off < length(str); byte = ord(str, ++off)) - if (byte <= 8 || (byte >= 14 && byte <= 31)) - return true; - - return false; -} +} from 'fchomo'; function hasKernelModule(kmod) { return (system(sprintf('[ -e "/lib/modules/$(uname -r)"/%s ]', shellQuote(kmod))) === 0); @@ -100,20 +92,15 @@ const methods = { fd.close(); } - const fp = popen(`${use_apk ? 'apk list -I' : 'opkg list-installed'} luci-app-fchomo | ` + - `awk '{print $${use_apk ? '1' : 'NF'}}'`); - if (fp) { - features.luciapp_version = trim(fp.read('line')) || null; + features.app_version = trim(popen(`${use_apk ? 'apk list -I' : 'opkg list-installed'} luci-app-fchomo | ` + + `awk '{print $${use_apk ? '1' : 'NF'}}'`).read('all')) || null; - fp.close(); - } - - features.hm_has_dnsmasq_full = system(`[ -n "$(${use_apk ? 'apk list -qI' : 'opkg list-installed'} dnsmasq-full)" ]`) == 0 || null; - features.hm_has_ip_full = access('/usr/libexec/ip-full'); - features.hm_has_stunclient = access('/usr/bin/stunclient'); - features.hm_has_tcp_brutal = hasKernelModule('brutal.ko'); - features.hm_has_tproxy = hasKernelModule('nft_tproxy.ko') || access('/etc/modules.d/nft-tproxy'); - features.hm_has_tun = hasKernelModule('tun.ko') || access('/etc/modules.d/30-tun'); + features.has_dnsmasq_full = system(`[ -n "$(${use_apk ? 'apk list -qI' : 'opkg list-installed'} dnsmasq-full)" ]`) == 0 || null; + features.has_ip_full = access('/usr/libexec/ip-full'); + features.has_stunclient = access('/usr/bin/stunclient'); + features.has_tcp_brutal = hasKernelModule('brutal.ko'); + features.has_tproxy = hasKernelModule('nft_tproxy.ko') || access('/etc/modules.d/nft-tproxy'); + features.has_tun = hasKernelModule('tun.ko') || access('/etc/modules.d/30-tun'); return features; } @@ -125,7 +112,7 @@ const methods = { if (req.args?.instance) { const instance = req.args?.instance; - let config = json(trim(yqRead('-oj', '.[] |= with(select(type == "!!map"); del(.)) |= with(select(type == "!!seq"); del(.))', `${RUN_DIR}/${instance}.yaml`)) || '{}'); + let config = json(trim(yqReadFile('-oj', '.[] |= with(select(type == "!!map"); del(.)) |= with(select(type == "!!seq"); del(.))', `${RUN_DIR}/${instance}.yaml`)) || '{}'); return { http: config['external-controller'], @@ -144,13 +131,7 @@ const methods = { if (!req.args?.url) return { httpcode: null, error: 'illegal url' }; - let httpcode = '-1'; - const fd = popen("wget --spider -t1 -ST3 '" + req.args?.url + "' 2>&1 | awk '/^\\s*HTTP\\//{print $2}'"); - if (fd) { - httpcode = trim(fd.read('line')) || httpcode; - - fd.close(); - } + const httpcode = trim(popen(`wget --spider -t1 -ST3 '${req.args?.url}' 2>&1 | awk '/^\\s*HTTP\\//{print $2}'`).read('all')) || '-1'; return { httpcode: httpcode }; } diff --git a/luci-app-fchomo/root/usr/share/fchomo/fchomo.uc b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc similarity index 77% rename from luci-app-fchomo/root/usr/share/fchomo/fchomo.uc rename to luci-app-fchomo/root/usr/share/ucode/fchomo.uc index 58cd1c373..9f7eb0d70 100644 --- a/luci-app-fchomo/root/usr/share/fchomo/fchomo.uc +++ b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc @@ -27,16 +27,44 @@ export function shellQuote(s) { return `'${replace(s, "'", "'\\''")}'`; }; -export function yqRead(flags, command, filepath) { - let out = ''; +export function isBinary(str) { + for (let off = 0, byte = ord(str); off < length(str); byte = ord(str, ++off)) + if (byte <= 8 || (byte >= 14 && byte <= 31)) + return true; - const fd = popen(`yq ${flags} ${shellQuote(command)} ${filepath}`); - if (fd) { - out = fd.read('all'); - fd.close(); - } + return false; +}; - return out; +export function executeCommand(...args) { + let outfd = mkstemp(); + let errfd = mkstemp(); + + const exitcode = system(`${join(' ', args)} >&${outfd.fileno()} 2>&${errfd.fileno()}`); + + outfd.seek(); + errfd.seek(); + + const stdout = outfd.read(1024 * 1024) ?? ''; + const stderr = errfd.read(1024 * 1024) ?? ''; + + outfd.close(); + errfd.close(); + + const binary = isBinary(stdout); + + return { + command: join(' ', args), + stdout: binary ? null : stdout, + stderr, + exitcode, + binary + }; +}; + +export function yqReadFile(flags, command, filepath) { + const out = executeCommand('yq', flags, shellQuote(command), filepath); + + return out.stdout; }; /* Utilities end */ diff --git a/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js b/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js index eb04d8cf9..f7d5e4756 100644 --- a/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js +++ b/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js @@ -103,11 +103,7 @@ return view.extend({ o.rmempty = false; o = s.option(form.Value, 'favicon_path', _('Favicon path')); - o.datatype = 'file'; - o.placeholder = '/etc/tinyfilemanager/favicon.png'; - o.optional = true; - o.rmempty = false; - o.retain = true; + o.placeholder = '/tinyfilemanager/rootfs/etc/tinyfilemanager/favicon.png'; o = s.option(form.DynamicList, 'exclude_items', _('Exclude Files/Folders')); o.datatype = "list(string)"; diff --git a/luci-app-tinyfilemanager/root/etc/config/tinyfilemanager b/luci-app-tinyfilemanager/root/etc/config/tinyfilemanager index 1e0fc4418..fe15fad06 100644 --- a/luci-app-tinyfilemanager/root/etc/config/tinyfilemanager +++ b/luci-app-tinyfilemanager/root/etc/config/tinyfilemanager @@ -7,6 +7,6 @@ config main option date_format 'd.m.o' option time_format 'H:i:s' option show_second '0' - option favicon_path '/etc/tinyfilemanager/favicon.png' + option favicon_path '/tinyfilemanager/rootfs/etc/tinyfilemanager/favicon.png' option online_viewer '0' diff --git a/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager b/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager index a95128e5f..1f6a615c7 100755 --- a/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager +++ b/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager @@ -37,7 +37,7 @@ validate_section() { 'date_format:or("d.m.o", "d-m-o", "d/m/o", "j.n.o", "j-n-o", "j/n/o", "o.m.d", "o-m-d", "o/m/d", "o.n.j", "o-n-j", "o/n/j"):d.m.o' \ 'time_format:or("H\:i\:s", "G\:i\:s", "A h\:i\:s", "A g\:i\:s", "h\:i\:s A", "g\:i\:s A"):H\:i\:s' \ 'show_second:bool:0' \ - 'favicon_path:file' \ + 'favicon_path:string' \ 'exclude_items:list(string)' \ 'online_viewer:or("0", "google", "microsoft"):0' \ 'max_upload_size:and(uinteger,max(2048))' diff --git a/oaf/Makefile b/oaf/Makefile index 8abafb7f6..fe63c560e 100755 --- a/oaf/Makefile +++ b/oaf/Makefile @@ -23,7 +23,7 @@ define KernelPackage/oaf/description endef -EXTRA_CFLAGS:=-Wno-declaration-after-statement -Wno-strict-prototypes -Wno-unused-variable -Wno-implicit-fallthrough -Wno-missing-braces -Wno-parentheses -Wno-format +EXTRA_CFLAGS:=-Wno-declaration-after-statement -Wno-strict-prototypes -Wno-unused-variable -Wno-implicit-fallthrough -Wno-missing-braces -Wno-parentheses -Wno-format -Wno-missing-prototypes -Wno-missing-declarations diff --git a/oaf/src/af_log.c b/oaf/src/af_log.c index e2f7eb9a3..941677410 100755 --- a/oaf/src/af_log.c +++ b/oaf/src/af_log.c @@ -115,13 +115,16 @@ static struct ctl_table oaf_table[] = { .mode = 0666, .proc_handler = proc_douintvec, }, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)) { } +#endif }; +#define OAF_SYS_PROC_DIR "oaf" static struct ctl_table oaf_root_table[] = { { - .procname = "oaf", + .procname = OAF_SYS_PROC_DIR, .mode = 0555, #if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)) .child = oaf_table, @@ -137,7 +140,7 @@ static int af_init_log_sysctl(void) #if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)) oaf_table_header = register_sysctl_table(oaf_root_table); #else - oaf_table_header = register_sysctl(oaf_root_table->procname, oaf_table); + oaf_table_header = register_sysctl(OAF_SYS_PROC_DIR, oaf_table); #endif if (oaf_table_header == NULL){ printk("init log sysctl...failed\n"); diff --git a/xray-core/Makefile b/xray-core/Makefile index a32fe9133..f6b0a94f6 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=25.2.21 +PKG_VERSION:=25.3.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a565db518d2da12fabb74e123d9bf2bdbc34420b81373938f8fcbc7004fda3ba +PKG_HASH:=d62305348deff713767fe1b3c23538e3f8bfe0c96d092f1f95f48c17bc2f5943 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0