Update Endpoint.cs

This commit is contained in:
Derek S 2021-04-06 21:24:54 -05:00
parent 051932f544
commit be9394c3a5

View file

@ -84,7 +84,7 @@ namespace LightReflectiveMirror.LoadBalancing
if (servers.Count == 0) if (servers.Count == 0)
{ {
await context.Response.SendResponseAsync(HttpStatusCode.NoContent); await context.Response.SendResponseAsync(HttpStatusCode.RangeNotSatisfiable);
return; return;
} }
@ -124,26 +124,24 @@ namespace LightReflectiveMirror.LoadBalancing
[RestRoute("Get", "/api/masterlist/")] [RestRoute("Get", "/api/masterlist/")]
public async Task GetMasterServerList(IHttpContext context) public async Task GetMasterServerList(IHttpContext context)
{ {
var relays = Program.instance.availableRelayServers.ToList(); var relays = Program.instance.availableRelayServers.ToList();
List<Room> masterList = new(); List<Room> masterList = new();
foreach (var relay in relays)
foreach (var relay in relays)
{
var serversOnRelay = await Program.instance.GetServerListFromIndividualRelay(relay.Key.Address, relay.Key.EndpointPort);
if(serversOnRelay != null)
{ {
masterList.AddRange(serversOnRelay); var serversOnRelay = await Program.instance.GetServerListFromIndividualRelay(relay.Key.Address, relay.Key.EndpointPort);
}
else { continue; }
}
// we have servers, send em! if (serversOnRelay != null)
if (masterList.Any()) {
await context.Response.SendResponseAsync(JsonConvert.SerializeObject(masterList)); masterList.AddRange(serversOnRelay);
// no servers or maybe no relays, fuck you }
else else { continue; }
await context.Response.SendResponseAsync(HttpStatusCode.NoContent); }
// we have servers, send em!
if (masterList.Any())
await context.Response.SendResponseAsync(JsonConvert.SerializeObject(masterList));
// no servers or maybe no relays, fuck you
else
await context.Response.SendResponseAsync(HttpStatusCode.RangeNotSatisfiable);
} }
/// <summary> /// <summary>
@ -184,11 +182,13 @@ namespace LightReflectiveMirror.LoadBalancing
services.Configure<LoggerFilterOptions>(options => options.MinLevel = LogLevel.None); services.Configure<LoggerFilterOptions>(options => options.MinLevel = LogLevel.None);
}, (server) => }, (server) =>
{ {
foreach(string ip in GetLocalIps()) foreach (string ip in GetLocalIps())
{
server.Prefixes.Add($"http://{ip}:{port}/"); server.Prefixes.Add($"http://{ip}:{port}/");
}
}).Build(); }).Build();
server.Router.Options.SendExceptionMessages = false; server.Router.Options.SendExceptionMessages = true;
server.Start(); server.Start();
return true; return true;
@ -212,6 +212,17 @@ namespace LightReflectiveMirror.LoadBalancing
} }
} }
bool hasLocal = false;
for(int i = 0; i < bindableIPv4Addresses.Count; i++)
{
if (bindableIPv4Addresses[i] == "127.0.0.1")
hasLocal = true;
}
if (!hasLocal)
bindableIPv4Addresses.Add("127.0.0.1");
return bindableIPv4Addresses; return bindableIPv4Addresses;
} }
#endregion #endregion