package sync import ( "fmt" "net" "time" "vpnem/internal/models" ) // HealthCheck tests if a server's proxy port is reachable. func HealthCheck(server models.Server, timeout time.Duration) error { addr := fmt.Sprintf("%s:%d", server.Server, server.ServerPort) conn, err := net.DialTimeout("tcp", addr, timeout) if err != nil { return fmt.Errorf("server %s unreachable: %w", server.Tag, err) } conn.Close() return nil } // FindHealthyServer returns the first healthy non-RU server from the list. func FindHealthyServer(servers []models.Server, timeout time.Duration) *models.Server { for _, s := range servers { if s.Region == "RU" { continue } if err := HealthCheck(s, timeout); err == nil { return &s } } return nil }