diff --git a/backend/package.json b/backend/package.json index dfdae60..52db704 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.350", + "version": "2.14.351", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/processors/index.js b/backend/src/core/proxy-utils/processors/index.js index 20f833c..0ecdace 100644 --- a/backend/src/core/proxy-utils/processors/index.js +++ b/backend/src/core/proxy-utils/processors/index.js @@ -627,8 +627,15 @@ function ResolveDomainOperator({ ] : results[p.server]; if (type === 'IPv6' && isIPv6(ip)) { - ip = new ipAddress.Address6(ip).correctForm(); + try { + ip = new ipAddress.Address6(ip).correctForm(); + } catch (e) { + $.error( + `Failed to parse IPv6 address: ${ip}: ${e}`, + ); + } if (/^2001::[^:]+:[^:]+:[^:]+$/.test(ip)) { + p._IP4P = ip; const { server, port } = parseIP4P(ip); if (server && port) { p._domain = p.server; @@ -636,7 +643,6 @@ function ResolveDomainOperator({ p.port = port; p.resolved = true; p._IPv4 = p.server; - p._IP4P = ip; if (!isIP(p._IP)) { p._IP = p.server; }