From 5f11b4658ef5a57297c9de89e0dbea4ca497b060 Mon Sep 17 00:00:00 2001 From: BlueWall (James Hughes) Date: Thu, 13 Dec 2012 13:13:40 -0500 Subject: Fix module pathname handling for Windows --- OpenSim/Server/Base/ServerUtils.cs | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Server/Base/ServerUtils.cs b/OpenSim/Server/Base/ServerUtils.cs index d06d612..d6d3957 100644 --- a/OpenSim/Server/Base/ServerUtils.cs +++ b/OpenSim/Server/Base/ServerUtils.cs @@ -139,8 +139,7 @@ namespace OpenSim.Server.Base if (a.AddinFile.Contains(Registry.DefaultAddinsFolder)) { m_log.InfoFormat("[SERVER]: Adding {0} from registry", a.Name); - connector.PluginPath = String.Format("{0}/{1}", Registry.DefaultAddinsFolder, a.Name.Replace(',', '.')); - } + connector.PluginPath = System.IO.Path.Combine(Registry.DefaultAddinsFolder,a.Name.Replace(',', '.')); } else { m_log.InfoFormat("[SERVER]: Adding {0} from ./bin", a.Name); @@ -216,20 +215,27 @@ namespace OpenSim.Server.Base /// /// The arguments which control which constructor is invoked on the plugin /// - public static T LoadPlugin(string dllName, Object[] args) where T:class - { - // This is good to debug configuration problems - //if (dllName == string.Empty) - // Util.PrintCallStack(); - - string[] parts = dllName.Split(new char[] {':'}); - - dllName = parts[0]; - - string className = String.Empty; - - if (parts.Length > 1) - className = parts[1]; + public static T LoadPlugin (string dllName, Object[] args) where T:class + { + // This is good to debug configuration problems + //if (dllName == string.Empty) + // Util.PrintCallStack(); + + string className = String.Empty; + + // The path for a dynamic plugin will contain ":" on Windows + string[] parts = dllName.Split (new char[] {':'}); + + if (parts [0].Length > 1) { + dllName = parts [0]; + if (parts.Length > 1) + className = parts[1]; + } else { + // This is Windows - we must replace the ":" in the path + dllName = String.Format ("{0}:{1}", parts [0], parts [1]); + if (parts.Length > 2) + className = parts[2]; + } return LoadPlugin(dllName, className, args); } -- cgit v1.1