diff --git a/.sisyphus/ralph-loop.local.md b/.sisyphus/ralph-loop.local.md new file mode 100644 index 0000000..6540d0f --- /dev/null +++ b/.sisyphus/ralph-loop.local.md @@ -0,0 +1,9 @@ +--- +active: true +iteration: 1 +max_iterations: 100 +completion_promise: "DONE" +started_at: "2026-02-08T04:16:19.890Z" +session_id: "ses_3c4892488ffe22XCFLNy3XIbZ3" +--- +把验证码功能换成cloudflare turnstile,删除原来的验证码,只使用cloudflare turnstile,可以让用户填写cloudflare turnstile的token以启用验证码,先给出计划 diff --git a/go-backend/internal/http/handler/control_plane.go b/go-backend/internal/http/handler/control_plane.go index a2f0887..c06fd02 100644 --- a/go-backend/internal/http/handler/control_plane.go +++ b/go-backend/internal/http/handler/control_plane.go @@ -387,34 +387,31 @@ func (h *Handler) controlForwardServices(forward *forwardRecord, commandType str nodeHandled := false for _, base := range bases { - payload := map[string]interface{}{ - "services": buildForwardControlServiceNames(base, commandType), + variants := []string{base + "_tcp", base + "_udp"} + if shouldTryLegacySingleService(commandType) || strings.EqualFold(strings.TrimSpace(commandType), "DeleteService") { + variants = append(variants, base) } - _, err := h.sendNodeCommand(fp.NodeID, commandType, payload, false, false) - if err == nil { + + candidateHandled := false + for _, name := range variants { + payload := map[string]interface{}{ + "services": []string{name}, + } + _, err := h.sendNodeCommand(fp.NodeID, commandType, payload, false, false) + if err == nil { + candidateHandled = true + continue + } + if !isNotFoundError(err) { + return err + } + lastNotFoundErr = err + } + + if candidateHandled { nodeHandled = true break } - - if !isNotFoundError(err) { - return err - } - lastNotFoundErr = err - - if shouldTryLegacySingleService(commandType) { - legacyPayload := map[string]interface{}{ - "services": []string{base}, - } - _, legacyErr := h.sendNodeCommand(fp.NodeID, commandType, legacyPayload, false, false) - if legacyErr == nil { - nodeHandled = true - break - } - if !isNotFoundError(legacyErr) { - return legacyErr - } - lastNotFoundErr = legacyErr - } } if nodeHandled {