Temp lets ignore the sync messages

This commit is contained in:
Owen
2026-03-06 15:14:48 -08:00
parent 7d6825132b
commit e68b65683f

214
main.go
View File

@@ -565,7 +565,7 @@ func runNewtMain(ctx context.Context) {
id, // CLI arg takes precedence id, // CLI arg takes precedence
secret, // CLI arg takes precedence secret, // CLI arg takes precedence
endpoint, endpoint,
pingInterval, 30*time.Second,
pingTimeout, pingTimeout,
opt, opt,
) )
@@ -959,7 +959,7 @@ persistent_keepalive_interval=5`, util.FixKey(privateKey.String()), util.FixKey(
"publicKey": publicKey.String(), "publicKey": publicKey.String(),
"pingResults": pingResults, "pingResults": pingResults,
"newtVersion": newtVersion, "newtVersion": newtVersion,
}, 1*time.Second) }, 2*time.Second)
return return
} }
@@ -1062,7 +1062,7 @@ persistent_keepalive_interval=5`, util.FixKey(privateKey.String()), util.FixKey(
"publicKey": publicKey.String(), "publicKey": publicKey.String(),
"pingResults": pingResults, "pingResults": pingResults,
"newtVersion": newtVersion, "newtVersion": newtVersion,
}, 1*time.Second) }, 2*time.Second)
logger.Debug("Sent exit node ping results to cloud for selection: pingResults=%+v", pingResults) logger.Debug("Sent exit node ping results to cloud for selection: pingResults=%+v", pingResults)
}) })
@@ -1198,116 +1198,118 @@ persistent_keepalive_interval=5`, util.FixKey(privateKey.String()), util.FixKey(
logger.Debug("Sync data received: TCP targets=%d, UDP targets=%d, health check targets=%d", logger.Debug("Sync data received: TCP targets=%d, UDP targets=%d, health check targets=%d",
len(syncData.Targets.TCP), len(syncData.Targets.UDP), len(syncData.HealthCheckTargets)) len(syncData.Targets.TCP), len(syncData.Targets.UDP), len(syncData.HealthCheckTargets))
// Build sets of desired targets (port -> target string) //TODO: TEST AND IMPLEMENT THIS
desiredTCP := make(map[int]string)
for _, t := range syncData.Targets.TCP {
parts := strings.Split(t, ":")
if len(parts) != 3 {
logger.Warn("Invalid TCP target format: %s", t)
continue
}
port := 0
if _, err := fmt.Sscanf(parts[0], "%d", &port); err != nil {
logger.Warn("Invalid port in TCP target: %s", parts[0])
continue
}
desiredTCP[port] = parts[1] + ":" + parts[2]
}
desiredUDP := make(map[int]string) // // Build sets of desired targets (port -> target string)
for _, t := range syncData.Targets.UDP { // desiredTCP := make(map[int]string)
parts := strings.Split(t, ":") // for _, t := range syncData.Targets.TCP {
if len(parts) != 3 { // parts := strings.Split(t, ":")
logger.Warn("Invalid UDP target format: %s", t) // if len(parts) != 3 {
continue // logger.Warn("Invalid TCP target format: %s", t)
} // continue
port := 0 // }
if _, err := fmt.Sscanf(parts[0], "%d", &port); err != nil { // port := 0
logger.Warn("Invalid port in UDP target: %s", parts[0]) // if _, err := fmt.Sscanf(parts[0], "%d", &port); err != nil {
continue // logger.Warn("Invalid port in TCP target: %s", parts[0])
} // continue
desiredUDP[port] = parts[1] + ":" + parts[2] // }
} // desiredTCP[port] = parts[1] + ":" + parts[2]
// }
// Get current targets from proxy manager // desiredUDP := make(map[int]string)
currentTCP, currentUDP := pm.GetTargets() // for _, t := range syncData.Targets.UDP {
// parts := strings.Split(t, ":")
// if len(parts) != 3 {
// logger.Warn("Invalid UDP target format: %s", t)
// continue
// }
// port := 0
// if _, err := fmt.Sscanf(parts[0], "%d", &port); err != nil {
// logger.Warn("Invalid port in UDP target: %s", parts[0])
// continue
// }
// desiredUDP[port] = parts[1] + ":" + parts[2]
// }
// Sync TCP targets // // Get current targets from proxy manager
// Remove TCP targets not in desired set // currentTCP, currentUDP := pm.GetTargets()
if tcpForIP, ok := currentTCP[wgData.TunnelIP]; ok {
for port := range tcpForIP {
if _, exists := desiredTCP[port]; !exists {
logger.Info("Sync: removing TCP target on port %d", port)
targetStr := fmt.Sprintf("%d:%s", port, tcpForIP[port])
updateTargets(pm, "remove", wgData.TunnelIP, "tcp", TargetData{Targets: []string{targetStr}})
}
}
}
// Add TCP targets that are missing // // Sync TCP targets
for port, target := range desiredTCP { // // Remove TCP targets not in desired set
needsAdd := true // if tcpForIP, ok := currentTCP[wgData.TunnelIP]; ok {
if tcpForIP, ok := currentTCP[wgData.TunnelIP]; ok { // for port := range tcpForIP {
if currentTarget, exists := tcpForIP[port]; exists { // if _, exists := desiredTCP[port]; !exists {
// Check if target address changed // logger.Info("Sync: removing TCP target on port %d", port)
if currentTarget == target { // targetStr := fmt.Sprintf("%d:%s", port, tcpForIP[port])
needsAdd = false // updateTargets(pm, "remove", wgData.TunnelIP, "tcp", TargetData{Targets: []string{targetStr}})
} else { // }
// Target changed, remove old one first // }
logger.Info("Sync: updating TCP target on port %d", port) // }
targetStr := fmt.Sprintf("%d:%s", port, currentTarget)
updateTargets(pm, "remove", wgData.TunnelIP, "tcp", TargetData{Targets: []string{targetStr}})
}
}
}
if needsAdd {
logger.Info("Sync: adding TCP target on port %d -> %s", port, target)
targetStr := fmt.Sprintf("%d:%s", port, target)
updateTargets(pm, "add", wgData.TunnelIP, "tcp", TargetData{Targets: []string{targetStr}})
}
}
// Sync UDP targets // // Add TCP targets that are missing
// Remove UDP targets not in desired set // for port, target := range desiredTCP {
if udpForIP, ok := currentUDP[wgData.TunnelIP]; ok { // needsAdd := true
for port := range udpForIP { // if tcpForIP, ok := currentTCP[wgData.TunnelIP]; ok {
if _, exists := desiredUDP[port]; !exists { // if currentTarget, exists := tcpForIP[port]; exists {
logger.Info("Sync: removing UDP target on port %d", port) // // Check if target address changed
targetStr := fmt.Sprintf("%d:%s", port, udpForIP[port]) // if currentTarget == target {
updateTargets(pm, "remove", wgData.TunnelIP, "udp", TargetData{Targets: []string{targetStr}}) // needsAdd = false
} // } else {
} // // Target changed, remove old one first
} // logger.Info("Sync: updating TCP target on port %d", port)
// targetStr := fmt.Sprintf("%d:%s", port, currentTarget)
// updateTargets(pm, "remove", wgData.TunnelIP, "tcp", TargetData{Targets: []string{targetStr}})
// }
// }
// }
// if needsAdd {
// logger.Info("Sync: adding TCP target on port %d -> %s", port, target)
// targetStr := fmt.Sprintf("%d:%s", port, target)
// updateTargets(pm, "add", wgData.TunnelIP, "tcp", TargetData{Targets: []string{targetStr}})
// }
// }
// Add UDP targets that are missing // // Sync UDP targets
for port, target := range desiredUDP { // // Remove UDP targets not in desired set
needsAdd := true // if udpForIP, ok := currentUDP[wgData.TunnelIP]; ok {
if udpForIP, ok := currentUDP[wgData.TunnelIP]; ok { // for port := range udpForIP {
if currentTarget, exists := udpForIP[port]; exists { // if _, exists := desiredUDP[port]; !exists {
// Check if target address changed // logger.Info("Sync: removing UDP target on port %d", port)
if currentTarget == target { // targetStr := fmt.Sprintf("%d:%s", port, udpForIP[port])
needsAdd = false // updateTargets(pm, "remove", wgData.TunnelIP, "udp", TargetData{Targets: []string{targetStr}})
} else { // }
// Target changed, remove old one first // }
logger.Info("Sync: updating UDP target on port %d", port) // }
targetStr := fmt.Sprintf("%d:%s", port, currentTarget)
updateTargets(pm, "remove", wgData.TunnelIP, "udp", TargetData{Targets: []string{targetStr}})
}
}
}
if needsAdd {
logger.Info("Sync: adding UDP target on port %d -> %s", port, target)
targetStr := fmt.Sprintf("%d:%s", port, target)
updateTargets(pm, "add", wgData.TunnelIP, "udp", TargetData{Targets: []string{targetStr}})
}
}
// Sync health check targets // // Add UDP targets that are missing
if err := healthMonitor.SyncTargets(syncData.HealthCheckTargets); err != nil { // for port, target := range desiredUDP {
logger.Error("Failed to sync health check targets: %v", err) // needsAdd := true
} else { // if udpForIP, ok := currentUDP[wgData.TunnelIP]; ok {
logger.Info("Successfully synced health check targets") // if currentTarget, exists := udpForIP[port]; exists {
} // // Check if target address changed
// if currentTarget == target {
// needsAdd = false
// } else {
// // Target changed, remove old one first
// logger.Info("Sync: updating UDP target on port %d", port)
// targetStr := fmt.Sprintf("%d:%s", port, currentTarget)
// updateTargets(pm, "remove", wgData.TunnelIP, "udp", TargetData{Targets: []string{targetStr}})
// }
// }
// }
// if needsAdd {
// logger.Info("Sync: adding UDP target on port %d -> %s", port, target)
// targetStr := fmt.Sprintf("%d:%s", port, target)
// updateTargets(pm, "add", wgData.TunnelIP, "udp", TargetData{Targets: []string{targetStr}})
// }
// }
// // Sync health check targets
// if err := healthMonitor.SyncTargets(syncData.HealthCheckTargets); err != nil {
// logger.Error("Failed to sync health check targets: %v", err)
// } else {
// logger.Info("Successfully synced health check targets")
// }
logger.Info("Sync complete") logger.Info("Sync complete")
}) })