🎁 Sync 2026-04-02 08:47:45

This commit is contained in:
github-actions[bot] committed 2026-04-02 08:47:45 +08:00
1 parent 57c81ff5de
commit 020b4e1dc3
9 files changed
+2402 -2280

No files matched your search

+3 -3
View File
@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gn
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git
PKG_SOURCE_DATE:=2025-09-18
PKG_SOURCE_VERSION:=81b24e01531ecf0eff12ec9359a555ec3944ec4e
PKG_SOURCE_DATE:=2026-03-31
PKG_SOURCE_VERSION:=6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=BSD 3-Clause
+2 -2
View File
@@ -3,7 +3,7 @@
#ifndef OUT_LAST_COMMIT_POSITION_H_
#define OUT_LAST_COMMIT_POSITION_H_
#define LAST_COMMIT_POSITION_NUM 2286
#define LAST_COMMIT_POSITION "2286 (81b24e01531e)"
#define LAST_COMMIT_POSITION_NUM 2355
#define LAST_COMMIT_POSITION "2355 (6e8dcdebbadf)"
#endif // OUT_LAST_COMMIT_POSITION_H_
@@ -320,12 +320,15 @@ function renderListeners(s, uciconfig, isClient) {
o.modalonly = true;
o = s.taboption('field_general', form.ListValue, 'sudoku_table_type', _('Obfuscate type'));
o.value('prefer_ascii', _('Obfuscated as ASCII data stream'));
o.value('prefer_entropy', _('Obfuscated as low-entropy data stream'));
o.value('prefer_ascii', _('Obfuscated as %s').format(_('ASCII data stream')));
o.value('prefer_entropy', _('Obfuscated as %s').format(_('Low-entropy data stream')));
o.value('up_ascii_down_entropy', _('UP: %s; DOWN: %s').format(_('ASCII data stream'), _('Low-entropy data stream')));
o.value('up_entropy_down_ascii', _('UP: %s; DOWN: %s').format(_('Low-entropy data stream'), _('ASCII data stream')));
o.depends('type', 'sudoku');
o.modalonly = true;
o = s.taboption('field_general', form.DynamicList, 'sudoku_custom_tables', _('Custom byte layout'));
o = s.taboption('field_general', form.DynamicList, 'sudoku_custom_tables', _('Custom byte layout'),
_('Only applies to the %s.').format(_('Low-entropy data stream')));
o.renderWidget = function(/* ... */) {
let node = form.DynamicList.prototype.renderWidget.apply(this, arguments);
@@ -338,7 +341,7 @@ function renderListeners(s, uciconfig, isClient) {
return node;
}
o.validate = hm.validateSudokuCustomTable;
o.depends('sudoku_table_type', 'prefer_entropy');
o.depends({sudoku_table_type: /^(prefer_entropy|up_ascii_down_entropy|up_entropy_down_ascii)$/});
o.modalonly = true;
o = s.taboption('field_general', form.Value, 'sudoku_padding_min', _('Minimum padding rate'));
@@ -405,14 +405,17 @@ return view.extend({
so.modalonly = true;
so = ss.taboption('field_general', form.ListValue, 'sudoku_table_type', _('Obfuscate type'));
so.value('prefer_ascii', _('Obfuscated as ASCII data stream'));
so.value('prefer_entropy', _('Obfuscated as low-entropy data stream'));
so.value('prefer_ascii', _('Obfuscated as %s').format(_('ASCII data stream')));
so.value('prefer_entropy', _('Obfuscated as %s').format(_('Low-entropy data stream')));
so.value('up_ascii_down_entropy', _('UP: %s; DOWN: %s').format(_('ASCII data stream'), _('Low-entropy data stream')));
so.value('up_entropy_down_ascii', _('UP: %s; DOWN: %s').format(_('Low-entropy data stream'), _('ASCII data stream')));
so.depends('type', 'sudoku');
so.modalonly = true;
so = ss.taboption('field_general', form.DynamicList, 'sudoku_custom_tables', _('Custom byte layout'));
so = ss.taboption('field_general', form.DynamicList, 'sudoku_custom_tables', _('Custom byte layout'),
_('Only applies to the %s.').format(_('Low-entropy data stream')));
so.validate = hm.validateSudokuCustomTable;
so.depends('sudoku_table_type', 'prefer_entropy');
so.depends({sudoku_table_type: /^(prefer_entropy|up_ascii_down_entropy|up_entropy_down_ascii)$/});
so.modalonly = true;
so = ss.taboption('field_general', form.Value, 'sudoku_padding_min', _('Minimum padding rate'));
@@ -1197,6 +1200,13 @@ return view.extend({
so.depends({transport_enabled: '1', transport_type: 'grpc'});
so.modalonly = true;
so = ss.taboption('field_transport', form.Value, 'transport_grpc_ping_interval', _('gRPC ping interval'),
_('In seconds.'));
so.datatype = 'uinteger';
so.placeholder = '0';
so.depends({transport_enabled: '1', transport_type: 'grpc'});
so.modalonly = true;
so = ss.taboption('field_transport', form.Value, 'transport_ws_max_early_data', _('Max Early Data'),
_('Early Data first packet length limit.'));
so.datatype = 'uinteger';
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -239,8 +239,8 @@ config["etag-support"] = (uci.get(uciconf, uciglobal, 'etag_support') === '0') ?
config.ipv6 = (uci.get(uciconf, uciglobal, 'ipv6') === '0') ? false : true;
config["unified-delay"] = strToBool(uci.get(uciconf, uciglobal, 'unified_delay')) || false;
config["tcp-concurrent"] = strToBool(uci.get(uciconf, uciglobal, 'tcp_concurrent')) || false;
config["keep-alive-interval"] = durationToSecond(uci.get(uciconf, uciglobal, 'keep_alive_interval')) || 30;
config["keep-alive-idle"] = durationToSecond(uci.get(uciconf, uciglobal, 'keep_alive_idle')) || 600;
config["keep-alive-interval"] = durationToSecond(uci.get(uciconf, uciglobal, 'keep_alive_interval')) ?? 30;
config["keep-alive-idle"] = durationToSecond(uci.get(uciconf, uciglobal, 'keep_alive_idle')) ?? 600;
/* ACL settings */
config["interface-name"] = bind_interface;
config["routing-mark"] = self_mark;
@@ -540,7 +540,7 @@ uci.foreach(uciconf, ucinode, (cfg) => {
mode: cfg.sudoku_http_mask_mode,
tls: strToBool(cfg.sudoku_http_mask_tls) || false,
host: cfg.sudoku_http_mask_host,
path_root: cfg.sudoku_path_root,
"path-root": cfg.sudoku_path_root,
multiplex: cfg.sudoku_http_mask_multiplex,
}
} : {}),
@@ -648,7 +648,8 @@ uci.foreach(uciconf, ucinode, (cfg) => {
} : null,
"grpc-opts": cfg.transport_type === 'grpc' ? {
"grpc-service-name": cfg.transport_grpc_servicename,
"grpc-user-agent": cfg.transport_grpc_user_agent
"grpc-user-agent": cfg.transport_grpc_user_agent,
"ping-interval": strToInt(cfg.transport_grpc_ping_interval) || null
} : null,
"ws-opts": cfg.transport_type === 'ws' ? {
path: cfg.transport_path || '/',
@@ -273,7 +273,7 @@ export function parseListener(cfg, isClient, label) {
httpmask: (cfg.sudoku_http_mask === '0') ? { disable: true } : {
disable: false,
mode: cfg.sudoku_http_mask_mode,
path_root: cfg.sudoku_path_root,
"path-root": cfg.sudoku_path_root,
}
} : {}),
fallback: (cfg.sudoku_http_mask === '0') ? null : cfg.sudoku_fallback,