|
@@ -59,8 +59,28 @@ namespace InABox.Clients
|
|
|
public RestClient(string server) : this(server, false)
|
|
|
{
|
|
|
}
|
|
|
-
|
|
|
- public static string Ping(string[] urls, out DatabaseInfo info)
|
|
|
+
|
|
|
+ public static string? Ping(string[] urls)
|
|
|
+ {
|
|
|
+ string? result = null;
|
|
|
+ List<Task<Tuple<string, bool>>> pings = urls.Select(x => Task.Run(
|
|
|
+ () => new Tuple<string, bool>(x, new RestClient<User>(x).Ping())
|
|
|
+ )).ToList();
|
|
|
+ while (pings.Count > 0)
|
|
|
+ {
|
|
|
+ var ping = Task.WhenAny(pings).Result;
|
|
|
+ if (ping.Status == TaskStatus.RanToCompletion && ping.Result.Item2)
|
|
|
+ {
|
|
|
+ result = ping.Result.Item1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ pings.Remove(ping);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static string Info(string[] urls, out DatabaseInfo info)
|
|
|
{
|
|
|
var result = "";
|
|
|
info = new DatabaseInfo();
|