Skip to content

Commit

Permalink
also sanitize server names
Browse files Browse the repository at this point in the history
  • Loading branch information
Mailaender committed May 10, 2015
1 parent fbb27f1 commit f4d052c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
3 changes: 3 additions & 0 deletions OpenRA.Game/Server/Server.cs
Expand Up @@ -130,6 +130,9 @@ public Server(IPEndPoint endpoint, ServerSettings settings, ModData modData)
Port = localEndpoint.Port;

Settings = settings;

Settings.Name = OpenRA.Settings.SanitizedServerName(Settings.Name);

ModData = modData;

randomSeed = (int)DateTime.Now.ToBinary();
Expand Down
8 changes: 8 additions & 0 deletions OpenRA.Game/Settings.cs
Expand Up @@ -321,6 +321,14 @@ static string SanitizedName(string dirty)
return clean;
}

public static string SanitizedServerName(string dirty)
{
if (string.IsNullOrWhiteSpace(dirty))
return new ServerSettings().Name;
else
return SanitizedName(dirty);
}

public static string SanitizedPlayerName(string dirty)
{
var forbiddenNames = new string[] { "Open", "Closed" };
Expand Down
13 changes: 11 additions & 2 deletions OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs
Expand Up @@ -54,8 +54,17 @@ public ServerCreationLogic(Widget widget, Action onExit, Action openLobby)
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");
Expand All @@ -79,7 +88,7 @@ public ServerCreationLogic(Widget widget, Action onExit, Action openLobby)

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;
Expand Down

0 comments on commit f4d052c

Please sign in to comment.