diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/ClientStackManager.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/ClientStackManager.cs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/OpenSim/Region/ClientStack/ClientStackManager.cs b/OpenSim/Region/ClientStack/ClientStackManager.cs index 5723739..098466d 100644 --- a/OpenSim/Region/ClientStack/ClientStackManager.cs +++ b/OpenSim/Region/ClientStack/ClientStackManager.cs | |||
@@ -48,22 +48,32 @@ namespace OpenSim.Region.Environment | |||
48 | { | 48 | { |
49 | m_log.Info("[CLIENTSTACK]: Attempting to load " + dllName); | 49 | m_log.Info("[CLIENTSTACK]: Attempting to load " + dllName); |
50 | 50 | ||
51 | plugin = null; | 51 | try |
52 | pluginAssembly = Assembly.LoadFrom(dllName); | ||
53 | |||
54 | foreach (Type pluginType in pluginAssembly.GetTypes()) | ||
55 | { | 52 | { |
56 | if (pluginType.IsPublic) | 53 | plugin = null; |
57 | { | 54 | pluginAssembly = Assembly.LoadFrom(dllName); |
58 | Type typeInterface = pluginType.GetInterface("IClientNetworkServer", true); | ||
59 | 55 | ||
60 | if (typeInterface != null) | 56 | foreach (Type pluginType in pluginAssembly.GetTypes()) |
57 | { | ||
58 | if (pluginType.IsPublic) | ||
61 | { | 59 | { |
62 | m_log.Info("[CLIENTSTACK]: Added IClientNetworkServer Interface"); | 60 | Type typeInterface = pluginType.GetInterface("IClientNetworkServer", true); |
63 | plugin = pluginType; | 61 | |
64 | return; | 62 | if (typeInterface != null) |
63 | { | ||
64 | m_log.Info("[CLIENTSTACK]: Added IClientNetworkServer Interface"); | ||
65 | plugin = pluginType; | ||
66 | return; | ||
67 | } | ||
65 | } | 68 | } |
66 | } | 69 | } |
70 | } catch (ReflectionTypeLoadException e) | ||
71 | { | ||
72 | foreach(Exception e2 in e.LoaderExceptions) | ||
73 | { | ||
74 | m_log.Error(e2.ToString()); | ||
75 | } | ||
76 | throw e; | ||
67 | } | 77 | } |
68 | } | 78 | } |
69 | 79 | ||