mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-29 16:06:36 +08:00
fix: make service control robust against partial service absence
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user