From 57c92fa948bdcefa6b224094ca21f04a8cde6737 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 6 Feb 2014 20:31:53 -0500 Subject: [PATCH] trim trailing slashes from path substitutions --- .../ServerConfigurationManager.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/MediaBrowser.Server.Implementations/Configuration/ServerConfigurationManager.cs b/MediaBrowser.Server.Implementations/Configuration/ServerConfigurationManager.cs index 5ae3af5e22..db839a66e9 100644 --- a/MediaBrowser.Server.Implementations/Configuration/ServerConfigurationManager.cs +++ b/MediaBrowser.Server.Implementations/Configuration/ServerConfigurationManager.cs @@ -96,10 +96,36 @@ namespace MediaBrowser.Server.Implementations.Configuration ValidateItemByNamePath(newConfig); ValidateTranscodingTempPath(newConfig); + ValidatePathSubstitutions(newConfig); base.ReplaceConfiguration(newConfiguration); } + private void ValidatePathSubstitutions(ServerConfiguration newConfig) + { + foreach (var map in newConfig.PathSubstitutions) + { + if (string.IsNullOrWhiteSpace(map.From) || string.IsNullOrWhiteSpace(map.To)) + { + throw new ArgumentException("Invalid path substitution"); + } + + if (!map.From.EndsWith(":\\") && !map.From.EndsWith(":/")) + { + map.From = map.From.TrimEnd('/').TrimEnd('\\'); + } + if (!map.To.EndsWith(":\\") && !map.To.EndsWith(":/")) + { + map.To = map.To.TrimEnd('/').TrimEnd('\\'); + } + + if (string.IsNullOrWhiteSpace(map.From) || string.IsNullOrWhiteSpace(map.To)) + { + throw new ArgumentException("Invalid path substitution"); + } + } + } + /// /// Replaces the item by name path. ///