Explorar el Código

add relayed for failoverme

Max Ma hace 1 año
padre
commit
42a58f1161
Se han modificado 1 ficheros con 16 adiciones y 0 borrados
  1. 16 0
      pro/controllers/failover.go

+ 16 - 0
pro/controllers/failover.go

@@ -187,6 +187,22 @@ func failOverME(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(fmt.Errorf("failed to create failover: %v", err), "internal"))
 		return
 	}
+	//relayed is not a single peer in host's peer list,  it's in the relay peer info. So there is no failover me triggered for relayed.
+	//if peerNode is relay, setup the failover flag for each relayed
+	if peerNode.IsRelay {
+		for _, id := range peerNode.RelayedNodes {
+			rNode, err := logic.GetNodeByID(id)
+			if err != nil {
+				slog.Error("failed to load relayed by id", "Eror", id)
+				continue
+			}
+			err = proLogic.SetFailOverCtx(failOverNode, node, rNode)
+			if err != nil {
+				slog.Error("failed to create failover", "id", node.ID.String(),
+					"network", node.Network, "on relayed", id, "error", err)
+			}
+		}
+	}
 	slog.Info("[auto-relay] created relay on node", "node", node.ID.String(), "network", node.Network)
 	sendPeerUpdate = true