update 2025-07-24 09:38:41
This commit is contained in:
parent
cba4222c57
commit
fe1c805859
@ -5,10 +5,10 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=daed
|
PKG_NAME:=daed
|
||||||
PKG_VERSION:=2025.07.20
|
PKG_VERSION:=2025.07.23
|
||||||
DAED_VERSION:=daed-c3588a9
|
DAED_VERSION:=daed-c3588a9
|
||||||
WING_VERSION:=wing-6df3da2
|
WING_VERSION:=wing-6df3da2
|
||||||
CORE_VERSION:=core-635ab7e
|
CORE_VERSION:=core-358f459
|
||||||
WING_HASH_SHORT:=$(shell echo $(WING_VERSION) | cut -d- -f2)
|
WING_HASH_SHORT:=$(shell echo $(WING_VERSION) | cut -d- -f2)
|
||||||
CORE_HASH_SHORT:=$(shell echo $(CORE_VERSION) | cut -d- -f2)
|
CORE_HASH_SHORT:=$(shell echo $(CORE_VERSION) | cut -d- -f2)
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
@ -80,7 +80,7 @@ return baseclass.extend({
|
|||||||
__name__: 'CBI.StaticList',
|
__name__: 'CBI.StaticList',
|
||||||
|
|
||||||
renderWidget: function(/* ... */) {
|
renderWidget: function(/* ... */) {
|
||||||
var dl = form.DynamicList.prototype.renderWidget.apply(this, arguments);
|
let dl = form.DynamicList.prototype.renderWidget.apply(this, arguments);
|
||||||
dl.querySelector('.add-item ul > li[data-value="-"]')?.remove();
|
dl.querySelector('.add-item ul > li[data-value="-"]')?.remove();
|
||||||
return dl;
|
return dl;
|
||||||
}
|
}
|
||||||
@ -88,49 +88,41 @@ return baseclass.extend({
|
|||||||
|
|
||||||
calcStringMD5(e) {
|
calcStringMD5(e) {
|
||||||
/* Thanks to https://stackoverflow.com/a/41602636 */
|
/* Thanks to https://stackoverflow.com/a/41602636 */
|
||||||
function h(a, b) {
|
let h = (a, b) => {
|
||||||
var c, d, e, f, g;
|
let c, d, e, f, g;
|
||||||
e = a & 2147483648;
|
c = a & 2147483648;
|
||||||
f = b & 2147483648;
|
d = b & 2147483648;
|
||||||
c = a & 1073741824;
|
e = a & 1073741824;
|
||||||
d = b & 1073741824;
|
f = b & 1073741824;
|
||||||
g = (a & 1073741823) + (b & 1073741823);
|
g = (a & 1073741823) + (b & 1073741823);
|
||||||
return c & d ? g ^ 2147483648 ^ e ^ f : c | d ? g & 1073741824 ? g ^ 3221225472 ^ e ^ f : g ^ 1073741824 ^ e ^ f : g ^ e ^ f;
|
return e & f ? g ^ 2147483648 ^ c ^ d : e | f ? g & 1073741824 ? g ^ 3221225472 ^ c ^ d : g ^ 1073741824 ^ c ^ d : g ^ c ^ d;
|
||||||
}
|
}, k = (a, b, c, d, e, f, g) => h((a = h(a, h(h(b & c | ~b & d, e), g))) << f | a >>> 32 - f, b),
|
||||||
function k(a, b, c, d, e, f, g) { a = h(a, h(h(b & c | ~b & d, e), g)); return h(a << f | a >>> 32 - f, b); }
|
l = (a, b, c, d, e, f, g) => h((a = h(a, h(h(b & d | c & ~d, e), g))) << f | a >>> 32 - f, b),
|
||||||
function l(a, b, c, d, e, f, g) { a = h(a, h(h(b & d | c & ~d, e), g)); return h(a << f | a >>> 32 - f, b); }
|
m = (a, b, c, d, e, f, g) => h((a = h(a, h(h(b ^ c ^ d, e), g))) << f | a >>> 32 - f, b),
|
||||||
function m(a, b, d, c, e, f, g) { a = h(a, h(h(b ^ d ^ c, e), g)); return h(a << f | a >>> 32 - f, b); }
|
n = (a, b, c, d, e, f, g) => h((a = h(a, h(h(c ^ (b | ~d), e), g))) << f | a >>> 32 - f, b),
|
||||||
function n(a, b, d, c, e, f, g) { a = h(a, h(h(d ^ (b | ~c), e), g)); return h(a << f | a >>> 32 - f, b); }
|
p = a => { let b = '', d = ''; for (let c = 0; c <= 3; c++) d = a >>> 8 * c & 255, d = '0' + d.toString(16), b += d.substr(d.length - 2, 2); return b; };
|
||||||
function p(a) {
|
|
||||||
var b = '', d = '';
|
|
||||||
for (var c = 0; 3 >= c; c++) d = a >>> 8 * c & 255, d = '0' + d.toString(16), b += d.substr(d.length - 2, 2);
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
var f = [], q, r, s, t, a, b, c, d;
|
let f = [], q, r, s, t, a, b, c, d;
|
||||||
e = function(a) {
|
e = (() => {
|
||||||
a = a.replace(/\r\n/g, '\n');
|
e = e.replace(/\r\n/g, '\n');
|
||||||
for (var b = '', d = 0; d < a.length; d++) {
|
let b = '';
|
||||||
var c = a.charCodeAt(d);
|
for (let d = 0; d < e.length; d++) {
|
||||||
128 > c ? b += String.fromCharCode(c) : (127 < c && 2048 > c ? b += String.fromCharCode(c >> 6 | 192) :
|
let c = e.charCodeAt(d);
|
||||||
(b += String.fromCharCode(c >> 12 | 224), b += String.fromCharCode(c >> 6 & 63 | 128)),
|
b += c < 128 ? String.fromCharCode(c) : c < 2048 ? String.fromCharCode(c >> 6 | 192) + String.fromCharCode(c & 63 | 128) :
|
||||||
b += String.fromCharCode(c & 63 | 128))
|
String.fromCharCode(c >> 12 | 224) + String.fromCharCode(c >> 6 & 63 | 128) + String.fromCharCode(c & 63 | 128);
|
||||||
}
|
}
|
||||||
return b;
|
return b;
|
||||||
}(e);
|
})();
|
||||||
f = function(b) {
|
f = (() => {
|
||||||
var c = b.length, a = c + 8;
|
let c = e.length, a = c + 8, d = 16 * ((a - a % 64) / 64 + 1), b = Array(d - 1), f = 0, g = 0;
|
||||||
for (var d = 16 * ((a - a % 64) / 64 + 1), e = Array(d - 1), f = 0, g = 0; g < c;)
|
for (; g < c;) a = (g - g % 4) / 4, f = g % 4 * 8, b[a] |= e.charCodeAt(g) << f, g++;
|
||||||
a = (g - g % 4) / 4, f = g % 4 * 8, e[a] |= b.charCodeAt(g) << f, g++;
|
a = (g - g % 4) / 4, b[a] |= 128 << g % 4 * 8, b[d - 2] = c << 3, b[d - 1] = c >>> 29;
|
||||||
a = (g - g % 4) / 4; e[a] |= 128 << g % 4 * 8; e[d - 2] = c << 3; e[d - 1] = c >>> 29;
|
return b;
|
||||||
return e;
|
})();
|
||||||
}(e);
|
|
||||||
a = 1732584193;
|
|
||||||
b = 4023233417;
|
|
||||||
c = 2562383102;
|
|
||||||
d = 271733878;
|
|
||||||
|
|
||||||
for (e = 0; e < f.length; e += 16) q = a, r = b, s = c, t = d,
|
a = 1732584193, b = 4023233417, c = 2562383102, d = 271733878;
|
||||||
|
for (e = 0; e < f.length; e += 16) {
|
||||||
|
q = a, r = b, s = c, t = d;
|
||||||
a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710),
|
a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710),
|
||||||
c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966),
|
c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966),
|
||||||
a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426),
|
a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426),
|
||||||
@ -164,6 +156,7 @@ return baseclass.extend({
|
|||||||
a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917),
|
a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917),
|
||||||
c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745),
|
c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745),
|
||||||
a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t);
|
a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t);
|
||||||
|
}
|
||||||
return (p(a) + p(b) + p(c) + p(d)).toLowerCase();
|
return (p(a) + p(b) + p(c) + p(d)).toLowerCase();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -173,7 +166,7 @@ return baseclass.extend({
|
|||||||
|
|
||||||
/* Thanks to luci-app-ssr-plus */
|
/* Thanks to luci-app-ssr-plus */
|
||||||
str = str.replace(/-/g, '+').replace(/_/g, '/');
|
str = str.replace(/-/g, '+').replace(/_/g, '/');
|
||||||
var padding = (4 - str.length % 4) % 4;
|
let padding = (4 - str.length % 4) % 4;
|
||||||
if (padding)
|
if (padding)
|
||||||
str = str + Array(padding + 1).join('=');
|
str = str + Array(padding + 1).join('=');
|
||||||
|
|
||||||
@ -193,7 +186,7 @@ return baseclass.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
generateRand(type, length) {
|
generateRand(type, length) {
|
||||||
var byteArr;
|
let byteArr;
|
||||||
if (['base64', 'hex'].includes(type))
|
if (['base64', 'hex'].includes(type))
|
||||||
byteArr = crypto.getRandomValues(new Uint8Array(length));
|
byteArr = crypto.getRandomValues(new Uint8Array(length));
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@ -215,7 +208,7 @@ return baseclass.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
loadDefaultLabel(uciconfig, ucisection) {
|
loadDefaultLabel(uciconfig, ucisection) {
|
||||||
var label = uci.get(uciconfig, ucisection, 'label');
|
let label = uci.get(uciconfig, ucisection, 'label');
|
||||||
if (label) {
|
if (label) {
|
||||||
return label;
|
return label;
|
||||||
} else {
|
} else {
|
||||||
@ -225,16 +218,16 @@ return baseclass.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
loadModalTitle(title, addtitle, uciconfig, ucisection) {
|
loadModalTitle(title, addtitle, uciconfig, ucisection) {
|
||||||
var label = uci.get(uciconfig, ucisection, 'label');
|
let label = uci.get(uciconfig, ucisection, 'label');
|
||||||
return label ? title + ' » ' + label : addtitle;
|
return label ? title + ' » ' + label : addtitle;
|
||||||
},
|
},
|
||||||
|
|
||||||
renderSectionAdd(section, extra_class) {
|
renderSectionAdd(section, extra_class) {
|
||||||
var el = form.GridSection.prototype.renderSectionAdd.apply(section, [ extra_class ]),
|
let el = form.GridSection.prototype.renderSectionAdd.apply(section, [ extra_class ]),
|
||||||
nameEl = el.querySelector('.cbi-section-create-name');
|
nameEl = el.querySelector('.cbi-section-create-name');
|
||||||
ui.addValidator(nameEl, 'uciname', true, (v) => {
|
ui.addValidator(nameEl, 'uciname', true, (v) => {
|
||||||
var button = el.querySelector('.cbi-section-create > .cbi-button-add');
|
let button = el.querySelector('.cbi-section-create > .cbi-button-add');
|
||||||
var uciconfig = section.uciconfig || section.map.config;
|
let uciconfig = section.uciconfig || section.map.config;
|
||||||
|
|
||||||
if (!v) {
|
if (!v) {
|
||||||
button.disabled = true;
|
button.disabled = true;
|
||||||
@ -314,7 +307,7 @@ return baseclass.extend({
|
|||||||
if (ucioption === 'node' && value === 'urltest')
|
if (ucioption === 'node' && value === 'urltest')
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var duplicate = false;
|
let duplicate = false;
|
||||||
uci.sections(uciconfig, ucisection, (res) => {
|
uci.sections(uciconfig, ucisection, (res) => {
|
||||||
if (res['.name'] !== section_id)
|
if (res['.name'] !== section_id)
|
||||||
if (res[ucioption] === value)
|
if (res[ucioption] === value)
|
||||||
|
@ -304,11 +304,6 @@ return view.extend({
|
|||||||
o.depends('routing_mode', 'custom');
|
o.depends('routing_mode', 'custom');
|
||||||
|
|
||||||
ss = o.subsection;
|
ss = o.subsection;
|
||||||
so = ss.option(form.Flag, 'tun_gso', _('Generic segmentation offload'));
|
|
||||||
so.depends('homeproxy.config.proxy_mode', 'redirect_tun');
|
|
||||||
so.depends('homeproxy.config.proxy_mode', 'tun');
|
|
||||||
so.rmempty = false;
|
|
||||||
|
|
||||||
so = ss.option(form.ListValue, 'tcpip_stack', _('TCP/IP stack'),
|
so = ss.option(form.ListValue, 'tcpip_stack', _('TCP/IP stack'),
|
||||||
_('TCP/IP stack.'));
|
_('TCP/IP stack.'));
|
||||||
if (features.with_gvisor) {
|
if (features.with_gvisor) {
|
||||||
|
@ -13,7 +13,6 @@ config homeproxy 'infra'
|
|||||||
option tun_addr4 '172.19.0.1/30'
|
option tun_addr4 '172.19.0.1/30'
|
||||||
option tun_addr6 'fdfe:dcba:9876::1/126'
|
option tun_addr6 'fdfe:dcba:9876::1/126'
|
||||||
option tun_mtu '9000'
|
option tun_mtu '9000'
|
||||||
option tun_gso '0'
|
|
||||||
option table_mark '100'
|
option table_mark '100'
|
||||||
option self_mark '100'
|
option self_mark '100'
|
||||||
option tproxy_mark '101'
|
option tproxy_mark '101'
|
||||||
|
@ -105,7 +105,7 @@ const proxy_mode = uci.get(uciconfig, ucimain, 'proxy_mode') || 'redirect_tproxy
|
|||||||
|
|
||||||
const mixed_port = uci.get(uciconfig, uciinfra, 'mixed_port') || '5330';
|
const mixed_port = uci.get(uciconfig, uciinfra, 'mixed_port') || '5330';
|
||||||
let self_mark, redirect_port, tproxy_port,
|
let self_mark, redirect_port, tproxy_port,
|
||||||
tun_name, tun_addr4, tun_addr6, tun_mtu, tun_gso,
|
tun_name, tun_addr4, tun_addr6, tun_mtu,
|
||||||
tcpip_stack, endpoint_independent_nat, udp_timeout;
|
tcpip_stack, endpoint_independent_nat, udp_timeout;
|
||||||
udp_timeout = uci.get(uciconfig, 'infra', 'udp_timeout');
|
udp_timeout = uci.get(uciconfig, 'infra', 'udp_timeout');
|
||||||
if (routing_mode === 'custom')
|
if (routing_mode === 'custom')
|
||||||
@ -122,10 +122,8 @@ if (match(proxy_mode), /tun/) {
|
|||||||
tun_addr4 = uci.get(uciconfig, uciinfra, 'tun_addr4') || '172.19.0.1/30';
|
tun_addr4 = uci.get(uciconfig, uciinfra, 'tun_addr4') || '172.19.0.1/30';
|
||||||
tun_addr6 = uci.get(uciconfig, uciinfra, 'tun_addr6') || 'fdfe:dcba:9876::1/126';
|
tun_addr6 = uci.get(uciconfig, uciinfra, 'tun_addr6') || 'fdfe:dcba:9876::1/126';
|
||||||
tun_mtu = uci.get(uciconfig, uciinfra, 'tun_mtu') || '9000';
|
tun_mtu = uci.get(uciconfig, uciinfra, 'tun_mtu') || '9000';
|
||||||
tun_gso = uci.get(uciconfig, uciinfra, 'tun_gso') || '0';
|
|
||||||
tcpip_stack = 'system';
|
tcpip_stack = 'system';
|
||||||
if (routing_mode === 'custom') {
|
if (routing_mode === 'custom') {
|
||||||
tun_gso = uci.get(uciconfig, uciroutingsetting, 'tun_gso') || '0';
|
|
||||||
tcpip_stack = uci.get(uciconfig, uciroutingsetting, 'tcpip_stack') || 'system';
|
tcpip_stack = uci.get(uciconfig, uciroutingsetting, 'tcpip_stack') || 'system';
|
||||||
endpoint_independent_nat = uci.get(uciconfig, uciroutingsetting, 'endpoint_independent_nat');
|
endpoint_independent_nat = uci.get(uciconfig, uciroutingsetting, 'endpoint_independent_nat');
|
||||||
}
|
}
|
||||||
@ -610,7 +608,6 @@ if (match(proxy_mode, /tun/))
|
|||||||
interface_name: tun_name,
|
interface_name: tun_name,
|
||||||
address: (ipv6_support === '1') ? [tun_addr4, tun_addr6] : [tun_addr4],
|
address: (ipv6_support === '1') ? [tun_addr4, tun_addr6] : [tun_addr4],
|
||||||
mtu: strToInt(tun_mtu),
|
mtu: strToInt(tun_mtu),
|
||||||
gso: (tun_gso === '1'),
|
|
||||||
auto_route: false,
|
auto_route: false,
|
||||||
endpoint_independent_nat: strToBool(endpoint_independent_nat),
|
endpoint_independent_nat: strToBool(endpoint_independent_nat),
|
||||||
udp_timeout: udp_timeout ? (udp_timeout + 's') : null,
|
udp_timeout: udp_timeout ? (udp_timeout + 's') : null,
|
||||||
|
@ -45,6 +45,11 @@ if (github_token) {
|
|||||||
uci.delete(uciconfig, uciinfra, 'github_token')
|
uci.delete(uciconfig, uciinfra, 'github_token')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* tun_gso was deprecated in sb 1.11 */
|
||||||
|
const tun_gso = uci.get(uciconfig, uciinfra, 'tun_gso');
|
||||||
|
if (tun_gso || tun_gso === '0')
|
||||||
|
uci.delete(uciconfig, uciinfra, 'tun_gso');
|
||||||
|
|
||||||
/* empty value defaults to all ports now */
|
/* empty value defaults to all ports now */
|
||||||
if (uci.get(uciconfig, ucimain, 'routing_port') === 'all')
|
if (uci.get(uciconfig, ucimain, 'routing_port') === 'all')
|
||||||
uci.delete(uciconfig, ucimain, 'routing_port');
|
uci.delete(uciconfig, ucimain, 'routing_port');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user