also sanitize server names
This commit is contained in:
@@ -130,6 +130,9 @@ namespace OpenRA.Server
|
||||
Port = localEndpoint.Port;
|
||||
|
||||
Settings = settings;
|
||||
|
||||
Settings.Name = OpenRA.Settings.SanitizedServerName(Settings.Name);
|
||||
|
||||
ModData = modData;
|
||||
|
||||
randomSeed = (int)DateTime.Now.ToBinary();
|
||||
|
||||
@@ -321,6 +321,15 @@ namespace OpenRA
|
||||
return clean;
|
||||
}
|
||||
|
||||
public static string SanitizedServerName(string dirty)
|
||||
{
|
||||
var clean = SanitizedName(dirty);
|
||||
if (string.IsNullOrWhiteSpace(clean))
|
||||
return new ServerSettings().Name;
|
||||
else
|
||||
return clean;
|
||||
}
|
||||
|
||||
public static string SanitizedPlayerName(string dirty)
|
||||
{
|
||||
var forbiddenNames = new string[] { "Open", "Closed" };
|
||||
|
||||
@@ -55,8 +55,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
panel.Get<LabelWidget>("MAP_NAME").GetText = () => preview.Title;
|
||||
}
|
||||
|
||||
panel.Get<TextFieldWidget>("SERVER_NAME").Text = settings.Server.Name ?? "";
|
||||
var serverName = panel.Get<TextFieldWidget>("SERVER_NAME");
|
||||
serverName.Text = Settings.SanitizedServerName(settings.Server.Name);
|
||||
serverName.OnEnterKey = () => { serverName.YieldKeyboardFocus(); return true; };
|
||||
serverName.OnLoseFocus = () =>
|
||||
{
|
||||
serverName.Text = Settings.SanitizedServerName(serverName.Text);
|
||||
settings.Server.Name = serverName.Text;
|
||||
};
|
||||
|
||||
panel.Get<TextFieldWidget>("LISTEN_PORT").Text = settings.Server.ListenPort.ToString();
|
||||
|
||||
advertiseOnline = Game.Settings.Server.AdvertiseOnline;
|
||||
|
||||
var externalPort = panel.Get<TextFieldWidget>("EXTERNAL_PORT");
|
||||
@@ -80,7 +89,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
void CreateAndJoin()
|
||||
{
|
||||
var name = panel.Get<TextFieldWidget>("SERVER_NAME").Text;
|
||||
var name = Settings.SanitizedServerName(panel.Get<TextFieldWidget>("SERVER_NAME").Text);
|
||||
int listenPort, externalPort;
|
||||
if (!Exts.TryParseIntegerInvariant(panel.Get<TextFieldWidget>("LISTEN_PORT").Text, out listenPort))
|
||||
listenPort = 1234;
|
||||
|
||||
Reference in New Issue
Block a user