aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/UserManager/UserManagerBase.cs
diff options
context:
space:
mode:
authorlbsa712007-09-24 02:41:13 +0000
committerlbsa712007-09-24 02:41:13 +0000
commit5818958a9a6c5a10743928973172d255632af6de (patch)
tree16076d3c3dd65f303ba74ddbbdaa1ca3e3b6e67c /OpenSim/Framework/UserManager/UserManagerBase.cs
parentlong-lost fixes to physics -- proper physical avatar management on crossings, TP (diff)
downloadopensim-SC_OLD-5818958a9a6c5a10743928973172d255632af6de.zip
opensim-SC_OLD-5818958a9a6c5a10743928973172d255632af6de.tar.gz
opensim-SC_OLD-5818958a9a6c5a10743928973172d255632af6de.tar.bz2
opensim-SC_OLD-5818958a9a6c5a10743928973172d255632af6de.tar.xz
*** CHANGED CONFIG BEHAVIOUR ***
* Changed really strange LocalSettings behaviour with enforcing hard-coded plugin names if none supplied * UserServices and InventoryPlugin will only load if supplied with filename
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 }