fix: make service control robust against partial service absence

This commit is contained in:
sagit
2026-02-08 04:17:10 +00:00
parent d5c0060cd9
commit a74eb9f431
2 changed files with 30 additions and 24 deletions
+9
View File
@@ -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以启用验证码,先给出计划
@@ -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 {