From 157ff94d0c3451f9c8669195d641701264cbf061 Mon Sep 17 00:00:00 2001 From: cmliu Date: Fri, 7 Nov 2025 19:42:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9UDP=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=B8=AD=E7=9A=84=E5=8F=98=E9=87=8F=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _worker.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_worker.js b/_worker.js index 8b3075a..1c249fc 100644 --- a/_worker.js +++ b/_worker.js @@ -337,8 +337,8 @@ function handleConnection(ws, request, FIXED_UUID) { if (command === 2) { // 0x02 = UDP if (port === 53) { isDns = true; - const vlessResponseHeader = new Uint8Array([bytes[0], 0]); - const { write } = await handleUDPOutBound(ws, vlessResponseHeader); + const 魏烈思响应头 = new Uint8Array([bytes[0], 0]); + const { write } = await handleUDPOutBound(ws, 魏烈思响应头); udpStreamWrite = write; if (payload.length) udpStreamWrite(payload); return null; // UDP 不需要返回 socket @@ -602,8 +602,8 @@ function parseAddress(bytes, offset, addrType) { return { host, length: endOffset }; } -async function handleUDPOutBound(webSocket, vlessResponseHeader) { - let isVlessHeaderSent = false; +async function handleUDPOutBound(webSocket, 魏烈思响应头) { + let 是否已发送魏烈思响应头 = false; const transformStream = new TransformStream({ start(controller) {}, transform(chunk, controller) { @@ -651,11 +651,11 @@ async function handleUDPOutBound(webSocket, vlessResponseHeader) { console.log(`[UDP DNS] 响应域名: ${dnsQuery.domain || '未知'}, 答案: ${answers}, 响应时间: ${(performance.now() - startTime).toFixed(2)}ms`); if (webSocket.readyState === 1) { // WebSocket.OPEN - if (isVlessHeaderSent) { + if (是否已发送魏烈思响应头) { webSocket.send(await new Blob([udpSizeBuffer, dnsQueryResult]).arrayBuffer()); } else { - webSocket.send(await new Blob([vlessResponseHeader, udpSizeBuffer, dnsQueryResult]).arrayBuffer()); - isVlessHeaderSent = true; + webSocket.send(await new Blob([魏烈思响应头, udpSizeBuffer, dnsQueryResult]).arrayBuffer()); + 是否已发送魏烈思响应头 = true; } // DNS 查询完成后关闭 WebSocket 连接 setTimeout(() => {