From 0fb55df7ea534151dacee1747c3df31ec154c2fb Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Sat, 11 Nov 2017 19:21:49 -0500 Subject: [PATCH] ChatSetupInfo lists are sanity checked --- TGCommandLine/ChatCommands.cs | 4 ++-- TGServerService/ServerInstance/Chat.cs | 6 ++++++ TGServiceInterface/ChatSetupInfo.cs | 22 +++++++++++----------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/TGCommandLine/ChatCommands.cs b/TGCommandLine/ChatCommands.cs index 314a8725a1..651520457d 100644 --- a/TGCommandLine/ChatCommands.cs +++ b/TGCommandLine/ChatCommands.cs @@ -80,7 +80,7 @@ namespace TGCommandLine { var IRC = Interface.GetComponent(); var info = IRC.ProviderInfos()[providerIndex]; - IList channels; + List channels; switch (parameters[1].ToLower()) { @@ -158,7 +158,7 @@ namespace TGCommandLine { var IRC = Interface.GetComponent(); var info = IRC.ProviderInfos()[providerIndex]; - IList channels; + List channels; switch (parameters[1].ToLower()) { diff --git a/TGServerService/ServerInstance/Chat.cs b/TGServerService/ServerInstance/Chat.cs index f81c97c036..ede8605480 100644 --- a/TGServerService/ServerInstance/Chat.cs +++ b/TGServerService/ServerInstance/Chat.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Collections.Generic; using System.Web.Script.Serialization; using TGServerService.ChatCommands; @@ -174,6 +175,11 @@ namespace TGServerService /// public string SetProviderInfo(ChatSetupInfo info) { + info.AdminList.RemoveAll(x => String.IsNullOrWhiteSpace(x)); + info.AdminChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x)); + info.GameChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x)); + info.DevChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x)); + info.WatchdogChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x)); try { lock (ChatLock) diff --git a/TGServiceInterface/ChatSetupInfo.cs b/TGServiceInterface/ChatSetupInfo.cs index 20e522cba4..1f2d0d1967 100644 --- a/TGServiceInterface/ChatSetupInfo.cs +++ b/TGServiceInterface/ChatSetupInfo.cs @@ -103,7 +103,7 @@ namespace TGServiceInterface /// /// Sanitizes a list of /// - /// An of strings + /// A of strings void SanitizeChannelNames(IList channelnames) { for (var I = 0; I < channelnames.Count; ++I) @@ -129,9 +129,9 @@ namespace TGServiceInterface /// /// The list of admin entries /// - public IList AdminList + public List AdminList { - get { return new JavaScriptSerializer().Deserialize>(DataFields[AdminListIndex]); } + get { return new JavaScriptSerializer().Deserialize>(DataFields[AdminListIndex]); } set { DataFields[AdminListIndex] = new JavaScriptSerializer().Serialize(value); } } /// @@ -145,9 +145,9 @@ namespace TGServiceInterface /// /// The channels from which admin commands/messages can be sent/received /// - public IList AdminChannels + public List AdminChannels { - get { return new JavaScriptSerializer().Deserialize>(DataFields[AdminChannelIndex]); } + get { return new JavaScriptSerializer().Deserialize>(DataFields[AdminChannelIndex]); } set { SanitizeChannelNames(value); @@ -157,9 +157,9 @@ namespace TGServiceInterface /// /// The channels to which repo and compile messages are sent /// - public IList DevChannels + public List DevChannels { - get { return new JavaScriptSerializer().Deserialize>(DataFields[DevChannelIndex]); } + get { return new JavaScriptSerializer().Deserialize>(DataFields[DevChannelIndex]); } set { SanitizeChannelNames(value); @@ -169,9 +169,9 @@ namespace TGServiceInterface /// /// The channels to which watchdog messages are sent /// - public IList WatchdogChannels + public List WatchdogChannels { - get { return new JavaScriptSerializer().Deserialize>(DataFields[WDChannelIndex]); } + get { return new JavaScriptSerializer().Deserialize>(DataFields[WDChannelIndex]); } set { SanitizeChannelNames(value); @@ -181,9 +181,9 @@ namespace TGServiceInterface /// /// The channels to which game messages are sent /// - public IList GameChannels + public List GameChannels { - get { return new JavaScriptSerializer().Deserialize>(DataFields[GameChannelIndex]); } + get { return new JavaScriptSerializer().Deserialize>(DataFields[GameChannelIndex]); } set { SanitizeChannelNames(value);