From 3acae64d72dc8ee736e9c42a4f07c4ba7154cd7f Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 17 May 2013 10:04:30 -0700 Subject: [PATCH] Preventing shell resolution when unnecessary --HG-- branch : 1.x --- src/Orchard/Environment/RunningShellTable.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Orchard/Environment/RunningShellTable.cs b/src/Orchard/Environment/RunningShellTable.cs index 48de1dc9b..4e140beba 100644 --- a/src/Orchard/Environment/RunningShellTable.cs +++ b/src/Orchard/Environment/RunningShellTable.cs @@ -60,7 +60,8 @@ namespace Orchard.Environment { s.RequestUrlHost.Split(new [] {','}, StringSplitOptions.RemoveEmptyEntries) .Select(h => new ShellSettings(s) {RequestUrlHost = h})) .GroupBy(s => s.RequestUrlHost ?? string.Empty) - .OrderByDescending(g => g.Key.Length); + .OrderByDescending(g => g.Key.Length) + .ToArray(); if (unqualified.Count() == 1) { // only one shell had no request url criteria @@ -85,6 +86,11 @@ namespace Orchard.Environment { } public ShellSettings Match(string host, string appRelativePath) { + // optimized path when only one tenant (Default) + if (!_shellsByHost.Any()) { + return _fallback; + } + var hostLength = host.IndexOf(':'); if (hostLength != -1) host = host.Substring(0, hostLength);