aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/UserManager/UserManagerBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/UserManager/UserManagerBase.cs')
-rw-r--r--OpenSim/Framework/UserManager/UserManagerBase.cs41
1 files changed, 19 insertions, 22 deletions
diff --git a/OpenSim/Framework/UserManager/UserManagerBase.cs b/OpenSim/Framework/UserManager/UserManagerBase.cs
index e11204b..4a2870b 100644
--- a/OpenSim/Framework/UserManager/UserManagerBase.cs
+++ b/OpenSim/Framework/UserManager/UserManagerBase.cs
@@ -25,6 +25,7 @@
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26* 26*
27*/ 27*/
28
28using System; 29using System;
29using System.Collections; 30using System.Collections;
30using System.Collections.Generic; 31using System.Collections.Generic;
@@ -32,15 +33,11 @@ using System.Reflection;
32using System.Security.Cryptography; 33using System.Security.Cryptography;
33using libsecondlife; 34using libsecondlife;
34using Nwc.XmlRpc; 35using Nwc.XmlRpc;
36using OpenSim.Framework.Configuration;
35using OpenSim.Framework.Console; 37using OpenSim.Framework.Console;
36using OpenSim.Framework.Data; 38using OpenSim.Framework.Data;
37using OpenSim.Framework.Interfaces;
38using OpenSim.Framework.Inventory;
39using OpenSim.Framework.Utilities; 39using OpenSim.Framework.Utilities;
40 40
41using OpenSim.Framework.Configuration;
42using InventoryFolder = OpenSim.Framework.Inventory.InventoryFolder;
43
44namespace OpenSim.Framework.UserManagement 41namespace OpenSim.Framework.UserManagement
45{ 42{
46 public abstract class UserManagerBase 43 public abstract class UserManagerBase
@@ -54,32 +51,32 @@ namespace OpenSim.Framework.UserManagement
54 /// <param name="FileName">The filename to the user server plugin DLL</param> 51 /// <param name="FileName">The filename to the user server plugin DLL</param>
55 public void AddPlugin(string FileName) 52 public void AddPlugin(string FileName)
56 { 53 {
57 MainLog.Instance.Verbose( "Userstorage: Attempting to load " + FileName); 54 if (!String.IsNullOrEmpty(FileName))
58 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
59
60 MainLog.Instance.Verbose( "Userstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
61 foreach (Type pluginType in pluginAssembly.GetTypes())
62 { 55 {
63 if (!pluginType.IsAbstract) 56 MainLog.Instance.Verbose("Userstorage: Attempting to load " + FileName);
64 { 57 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
65 Type typeInterface = pluginType.GetInterface("IUserData", true);
66 58
67 if (typeInterface != null) 59 MainLog.Instance.Verbose("Userstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
60 foreach (Type pluginType in pluginAssembly.GetTypes())
61 {
62 if (!pluginType.IsAbstract)
68 { 63 {
69 IUserData plug = (IUserData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); 64 Type typeInterface = pluginType.GetInterface("IUserData", true);
70 plug.Initialise(); 65
71 AddPlugin(plug); 66 if (typeInterface != null)
67 {
68 IUserData plug =
69 (IUserData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
70 AddPlugin(plug);
71 }
72 } 72 }
73
74 typeInterface = null;
75 } 73 }
76 } 74 }
77
78 pluginAssembly = null;
79 } 75 }
80 76
81 private void AddPlugin(IUserData plug) 77 public void AddPlugin(IUserData plug)
82 { 78 {
79 plug.Initialise();
83 this._plugins.Add(plug.getName(), plug); 80 this._plugins.Add(plug.getName(), plug);
84 MainLog.Instance.Verbose( "Userstorage: Added IUserData Interface"); 81 MainLog.Instance.Verbose( "Userstorage: Added IUserData Interface");
85 } 82 }