From 9681acebf92c7c30b5d014d3227e72a9a30a9624 Mon Sep 17 00:00:00 2001 From: luciferWei Date: Mon, 1 Sep 2025 15:48:45 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Feat=EF=BC=9A=E8=A7=A3=E5=86=B3=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=88=86=E6=94=AF=E6=B2=A1=E6=9C=89=E5=85=B3=E9=97=AD?= =?UTF-8?q?fd=E3=80=82=20\nSigned-off-by:=20LuciferWei=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: luciferWei --- src/common/forward.cpp | 5 +---- src/daemon/daemon_forward.cpp | 12 +----------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/src/common/forward.cpp b/src/common/forward.cpp index 0a6dd1ed..7323fd32 100644 --- a/src/common/forward.cpp +++ b/src/common/forward.cpp @@ -764,11 +764,8 @@ bool HdcForwardBase::DoForwardBegin(HCtxForward ctx) switch (ctx->type) { case FORWARD_TCP: case FORWARD_JDWP: // jdwp use tcp ->socketpair->jvm - uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); - uv_read_start((uv_stream_t *)&ctx->tcp, AllocForwardBuf, ReadForwardBuf); - break; case FORWARD_ARK: - WRITE_LOG(LOG_DEBUG, "DoForwardBegin ark socketpair id:%u fds[0]:%d", ctx->id, fds[0]); + WRITE_LOG(LOG_DEBUG, "DoForwardBegin socketpair id:%u fds[0]:%d", ctx->id, fds[0]); uv_tcp_init(loopTask, &ctx->tcp); uv_tcp_open(&ctx->tcp, fds[0]); uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); diff --git a/src/daemon/daemon_forward.cpp b/src/daemon/daemon_forward.cpp index 73faa5d6..e6b9f430 100644 --- a/src/daemon/daemon_forward.cpp +++ b/src/daemon/daemon_forward.cpp @@ -53,19 +53,9 @@ bool HdcDaemonForward::SetupJdwpPoint(HCtxForward ctxPoint) return true; } // do slave connect - bool ret = false; - if (uv_tcp_init(loopTask, &ctxPoint->tcp)) { - return ret; - } - ctxPoint->tcp.data = ctxPoint; // fd[0] for forward, fd[1] for jdwp - // forward to close fd[0], fd[1] for jdwp close - int fds[2] = { 0 }; + bool ret = false; Base::CreateSocketPair(fds); - if (uv_tcp_open(&ctxPoint->tcp, fds[0])) { - Base::CloseSocketPair(fds); - return ret; - } constexpr auto len = sizeof(uint32_t); uint8_t flag[1 + len + len]; flag[0] = SP_JDWP_NEWFD; -- Gitee From ebf3c1fdc5b720b098752c58ceefe4bf539ce0d9 Mon Sep 17 00:00:00 2001 From: luciferWei Date: Mon, 1 Sep 2025 20:36:29 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Feat=EF=BC=9A=E8=A7=A3=E5=86=B3=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=88=86=E6=94=AF=E6=B2=A1=E6=9C=89=E5=85=B3=E9=97=AD?= =?UTF-8?q?fd=E3=80=82=20\nSigned-off-by:=20LuciferWei=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: luciferWei --- src/common/forward.cpp | 5 ++++- src/daemon/daemon_forward.cpp | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/common/forward.cpp b/src/common/forward.cpp index 7323fd32..0a6dd1ed 100644 --- a/src/common/forward.cpp +++ b/src/common/forward.cpp @@ -764,8 +764,11 @@ bool HdcForwardBase::DoForwardBegin(HCtxForward ctx) switch (ctx->type) { case FORWARD_TCP: case FORWARD_JDWP: // jdwp use tcp ->socketpair->jvm + uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); + uv_read_start((uv_stream_t *)&ctx->tcp, AllocForwardBuf, ReadForwardBuf); + break; case FORWARD_ARK: - WRITE_LOG(LOG_DEBUG, "DoForwardBegin socketpair id:%u fds[0]:%d", ctx->id, fds[0]); + WRITE_LOG(LOG_DEBUG, "DoForwardBegin ark socketpair id:%u fds[0]:%d", ctx->id, fds[0]); uv_tcp_init(loopTask, &ctx->tcp); uv_tcp_open(&ctx->tcp, fds[0]); uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); diff --git a/src/daemon/daemon_forward.cpp b/src/daemon/daemon_forward.cpp index e6b9f430..cf04d140 100644 --- a/src/daemon/daemon_forward.cpp +++ b/src/daemon/daemon_forward.cpp @@ -54,14 +54,23 @@ bool HdcDaemonForward::SetupJdwpPoint(HCtxForward ctxPoint) } // do slave connect // fd[0] for forward, fd[1] for jdwp + // forward to close fd[0], fd[1] for jdwp close + int fds[2] = { 0 }; bool ret = false; Base::CreateSocketPair(fds); + if (uv_tcp_init(loopTask, &ctxPoint->tcp)) { + return ret; + } + ctxPoint->tcp.data = ctxPoint; + if (uv_tcp_open(&ctxPoint->tcp, fds[0])) { + Base::CloseSocketPair(fds); + return ret; + } constexpr auto len = sizeof(uint32_t); uint8_t flag[1 + len + len]; flag[0] = SP_JDWP_NEWFD; if (memcpy_s(flag + 1, sizeof(flag) - 1, &pid, len) || memcpy_s(flag + 1 + len, sizeof(flag) - len - 1, &fds[1], len)) { - Base::CloseSocketPair(fds); return ret; } if (ThreadCtrlCommunicate(flag, sizeof(flag)) > 0) { -- Gitee From b15a3fa6e2ee99c2fbab27c73ab4011b67fbc460 Mon Sep 17 00:00:00 2001 From: luciferWei Date: Mon, 1 Sep 2025 15:48:45 +0800 Subject: [PATCH 3/5] =?UTF-8?q?Feat=EF=BC=9A=E8=A7=A3=E5=86=B3=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=88=86=E6=94=AF=E6=B2=A1=E6=9C=89=E5=85=B3=E9=97=AD?= =?UTF-8?q?fd=E3=80=82=20\nSigned-off-by:=20LuciferWei=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: luciferWei --- src/common/forward.cpp | 5 +---- src/daemon/daemon_forward.cpp | 10 ---------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/common/forward.cpp b/src/common/forward.cpp index 0a6dd1ed..7323fd32 100644 --- a/src/common/forward.cpp +++ b/src/common/forward.cpp @@ -764,11 +764,8 @@ bool HdcForwardBase::DoForwardBegin(HCtxForward ctx) switch (ctx->type) { case FORWARD_TCP: case FORWARD_JDWP: // jdwp use tcp ->socketpair->jvm - uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); - uv_read_start((uv_stream_t *)&ctx->tcp, AllocForwardBuf, ReadForwardBuf); - break; case FORWARD_ARK: - WRITE_LOG(LOG_DEBUG, "DoForwardBegin ark socketpair id:%u fds[0]:%d", ctx->id, fds[0]); + WRITE_LOG(LOG_DEBUG, "DoForwardBegin socketpair id:%u fds[0]:%d", ctx->id, fds[0]); uv_tcp_init(loopTask, &ctx->tcp); uv_tcp_open(&ctx->tcp, fds[0]); uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); diff --git a/src/daemon/daemon_forward.cpp b/src/daemon/daemon_forward.cpp index cf04d140..603e5445 100644 --- a/src/daemon/daemon_forward.cpp +++ b/src/daemon/daemon_forward.cpp @@ -54,18 +54,8 @@ bool HdcDaemonForward::SetupJdwpPoint(HCtxForward ctxPoint) } // do slave connect // fd[0] for forward, fd[1] for jdwp - // forward to close fd[0], fd[1] for jdwp close - int fds[2] = { 0 }; bool ret = false; Base::CreateSocketPair(fds); - if (uv_tcp_init(loopTask, &ctxPoint->tcp)) { - return ret; - } - ctxPoint->tcp.data = ctxPoint; - if (uv_tcp_open(&ctxPoint->tcp, fds[0])) { - Base::CloseSocketPair(fds); - return ret; - } constexpr auto len = sizeof(uint32_t); uint8_t flag[1 + len + len]; flag[0] = SP_JDWP_NEWFD; -- Gitee From 3efc506b5a03b76266468b3bbeafea49ab08b064 Mon Sep 17 00:00:00 2001 From: luciferWei Date: Tue, 2 Sep 2025 14:35:43 +0800 Subject: [PATCH 4/5] =?UTF-8?q?Feat=EF=BC=9A=E8=A7=A3=E5=86=B3=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=88=86=E6=94=AF=E6=B2=A1=E6=9C=89=E5=85=B3=E9=97=AD?= =?UTF-8?q?fd=E3=80=82=20\nSigned-off-by:=20LuciferWei=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: luciferWei --- src/common/forward.cpp | 5 ++++- src/daemon/daemon_forward.cpp | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/common/forward.cpp b/src/common/forward.cpp index 7323fd32..0a6dd1ed 100644 --- a/src/common/forward.cpp +++ b/src/common/forward.cpp @@ -764,8 +764,11 @@ bool HdcForwardBase::DoForwardBegin(HCtxForward ctx) switch (ctx->type) { case FORWARD_TCP: case FORWARD_JDWP: // jdwp use tcp ->socketpair->jvm + uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); + uv_read_start((uv_stream_t *)&ctx->tcp, AllocForwardBuf, ReadForwardBuf); + break; case FORWARD_ARK: - WRITE_LOG(LOG_DEBUG, "DoForwardBegin socketpair id:%u fds[0]:%d", ctx->id, fds[0]); + WRITE_LOG(LOG_DEBUG, "DoForwardBegin ark socketpair id:%u fds[0]:%d", ctx->id, fds[0]); uv_tcp_init(loopTask, &ctx->tcp); uv_tcp_open(&ctx->tcp, fds[0]); uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); diff --git a/src/daemon/daemon_forward.cpp b/src/daemon/daemon_forward.cpp index 603e5445..cf04d140 100644 --- a/src/daemon/daemon_forward.cpp +++ b/src/daemon/daemon_forward.cpp @@ -54,8 +54,18 @@ bool HdcDaemonForward::SetupJdwpPoint(HCtxForward ctxPoint) } // do slave connect // fd[0] for forward, fd[1] for jdwp + // forward to close fd[0], fd[1] for jdwp close + int fds[2] = { 0 }; bool ret = false; Base::CreateSocketPair(fds); + if (uv_tcp_init(loopTask, &ctxPoint->tcp)) { + return ret; + } + ctxPoint->tcp.data = ctxPoint; + if (uv_tcp_open(&ctxPoint->tcp, fds[0])) { + Base::CloseSocketPair(fds); + return ret; + } constexpr auto len = sizeof(uint32_t); uint8_t flag[1 + len + len]; flag[0] = SP_JDWP_NEWFD; -- Gitee From d222e6cb8bb7abb371bc8d92e384ff93af2b472e Mon Sep 17 00:00:00 2001 From: luciferWei Date: Tue, 2 Sep 2025 14:37:09 +0800 Subject: [PATCH 5/5] =?UTF-8?q?Feat=EF=BC=9A=E8=A7=A3=E5=86=B3=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=88=86=E6=94=AF=E6=B2=A1=E6=9C=89=E5=85=B3=E9=97=AD?= =?UTF-8?q?fd=E3=80=82=20\nSigned-off-by:=20LuciferWei=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: luciferWei --- src/daemon/daemon_forward.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/daemon/daemon_forward.cpp b/src/daemon/daemon_forward.cpp index cf04d140..db1f19e9 100644 --- a/src/daemon/daemon_forward.cpp +++ b/src/daemon/daemon_forward.cpp @@ -53,15 +53,15 @@ bool HdcDaemonForward::SetupJdwpPoint(HCtxForward ctxPoint) return true; } // do slave connect - // fd[0] for forward, fd[1] for jdwp - // forward to close fd[0], fd[1] for jdwp close - int fds[2] = { 0 }; bool ret = false; - Base::CreateSocketPair(fds); if (uv_tcp_init(loopTask, &ctxPoint->tcp)) { return ret; } ctxPoint->tcp.data = ctxPoint; + // fd[0] for forward, fd[1] for jdwp + // forward to close fd[0], fd[1] for jdwp close + int fds[2] = { 0 }; + Base::CreateSocketPair(fds); if (uv_tcp_open(&ctxPoint->tcp, fds[0])) { Base::CloseSocketPair(fds); return ret; -- Gitee