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/Server/Base')
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