Merge pull request #12066 from chrisforbes/preview-server-crash-fix-bleed

server: Fix server getting wedged after map query with bad minimap
This commit is contained in:
Paul Chote
2016-09-21 04:05:59 +01:00
committed by GitHub
2 changed files with 15 additions and 3 deletions

View File

@@ -150,9 +150,10 @@ namespace OpenRA
foreach (var kv in yaml)
maps[kv.Key].UpdateRemoteSearch(MapStatus.DownloadAvailable, kv.Value, mapDetailsReceived);
}
catch
catch (Exception e)
{
Log.Write("debug", "Can't parse remote map search data:\n{0}", data);
Log.Write("debug", "Exception: {0}", e);
if (queryFailed != null)
queryFailed();
}

View File

@@ -367,7 +367,15 @@ namespace OpenRA
spawns[j / 2] = new CPos(r.spawnpoints[j], r.spawnpoints[j + 1]);
newData.SpawnPoints = spawns;
newData.GridType = r.map_grid_type;
newData.Preview = new Bitmap(new MemoryStream(Convert.FromBase64String(r.minimap)));
try
{
newData.Preview = new Bitmap(new MemoryStream(Convert.FromBase64String(r.minimap)));
}
catch (Exception e)
{
Log.Write("debug", "Failed parsing mapserver minimap response: {0}", e);
newData.Preview = null;
}
var playersString = Encoding.UTF8.GetString(Convert.FromBase64String(r.players_block));
newData.Players = new MapPlayers(MiniYaml.FromString(playersString));
@@ -389,7 +397,10 @@ namespace OpenRA
return Pair.New(rules, flagged);
});
}
catch (Exception) { }
catch (Exception e)
{
Log.Write("debug", "Failed parsing mapserver response: {0}", e);
}
// Commit updated data before running the callbacks
innerData = newData;