aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Communications')
-rw-r--r--OpenSim/Region/Communications/Local/CommunicationsLocal.cs2
-rw-r--r--OpenSim/Region/Communications/Local/LocalInventoryService.cs3
-rw-r--r--OpenSim/Region/Communications/Local/LocalLoginService.cs51
-rw-r--r--OpenSim/Region/Communications/Local/LocalUserServices.cs5
-rw-r--r--OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs2
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1GridServices.cs20
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs69
7 files changed, 67 insertions, 85 deletions
diff --git a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs
index 7e08297..a00b35f 100644
--- a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs
+++ b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs
@@ -107,7 +107,7 @@ namespace OpenSim.Region.Communications.Local
107 } 107 }
108 else 108 else
109 { 109 {
110 this.m_inventoryService.CreateNewUserInventory(LLUUID.Zero, userProf.UUID); 110 this.m_inventoryService.CreateNewUserInventory(userProf.UUID);
111 Console.WriteLine("Created new inventory set for " + firstName + " " + lastName); 111 Console.WriteLine("Created new inventory set for " + firstName + " " + lastName);
112 return userProf.UUID; 112 return userProf.UUID;
113 } 113 }
diff --git a/OpenSim/Region/Communications/Local/LocalInventoryService.cs b/OpenSim/Region/Communications/Local/LocalInventoryService.cs
index 5bd3277..53f6ffa 100644
--- a/OpenSim/Region/Communications/Local/LocalInventoryService.cs
+++ b/OpenSim/Region/Communications/Local/LocalInventoryService.cs
@@ -3,7 +3,6 @@ using libsecondlife;
3using OpenSim.Framework.Communications; 3using OpenSim.Framework.Communications;
4using OpenSim.Framework.Data; 4using OpenSim.Framework.Data;
5using InventoryFolder=OpenSim.Framework.Communications.Caches.InventoryFolder; 5using InventoryFolder=OpenSim.Framework.Communications.Caches.InventoryFolder;
6using InventoryCategory = OpenSim.Framework.Data.InventoryCategory;
7 6
8namespace OpenSim.Region.Communications.Local 7namespace OpenSim.Region.Communications.Local
9{ 8{
@@ -50,7 +49,7 @@ namespace OpenSim.Region.Communications.Local
50 } 49 }
51 } 50 }
52 51
53 public override void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder) 52 public override void AddNewInventoryFolder(LLUUID userID, InventoryFolder folder)
54 { 53 {
55 this.AddFolder(folder); 54 this.AddFolder(folder);
56 } 55 }
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs
index 95fdf5a..ab8e397 100644
--- a/OpenSim/Region/Communications/Local/LocalLoginService.cs
+++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs
@@ -7,6 +7,7 @@ using OpenSim.Framework.Data;
7using OpenSim.Framework.Types; 7using OpenSim.Framework.Types;
8using OpenSim.Framework.UserManagement; 8using OpenSim.Framework.UserManagement;
9using OpenSim.Framework.Utilities; 9using OpenSim.Framework.Utilities;
10using OpenSim.Framework.Inventory;
10 11
11namespace OpenSim.Region.Communications.Local 12namespace OpenSim.Region.Communications.Local
12{ 13{
@@ -24,7 +25,7 @@ namespace OpenSim.Region.Communications.Local
24 public event LoginToRegionEvent OnLoginToRegion; 25 public event LoginToRegionEvent OnLoginToRegion;
25 26
26 public LocalLoginService(UserManagerBase userManager, string welcomeMess, CommunicationsLocal parent, NetworkServersInfo serversInfo, bool authenticate) 27 public LocalLoginService(UserManagerBase userManager, string welcomeMess, CommunicationsLocal parent, NetworkServersInfo serversInfo, bool authenticate)
27 : base(userManager, parent.InventoryService, welcomeMess) 28 : base(userManager, welcomeMess)
28 { 29 {
29 m_Parent = parent; 30 m_Parent = parent;
30 this.serversInfo = serversInfo; 31 this.serversInfo = serversInfo;
@@ -52,7 +53,7 @@ namespace OpenSim.Region.Communications.Local
52 profile = this.m_userManager.GetUserProfile(firstname, lastname); 53 profile = this.m_userManager.GetUserProfile(firstname, lastname);
53 if (profile != null) 54 if (profile != null)
54 { 55 {
55 m_Parent.InventoryService.CreateNewUserInventory(LLUUID.Zero, profile.UUID); 56 m_Parent.InventoryService.CreateNewUserInventory(profile.UUID);
56 } 57 }
57 58
58 return profile; 59 return profile;
@@ -122,5 +123,51 @@ namespace OpenSim.Region.Communications.Local
122 } 123 }
123 124
124 } 125 }
126
127 protected override InventoryData CreateInventoryData(LLUUID userID)
128 {
129 List<InventoryFolderBase> folders = m_Parent.InventoryService.RequestFirstLevelFolders(userID);
130 if (folders.Count > 0)
131 {
132 LLUUID rootID = LLUUID.Zero;
133 ArrayList AgentInventoryArray = new ArrayList();
134 Hashtable TempHash;
135 foreach (InventoryFolderBase InvFolder in folders)
136 {
137 if (InvFolder.parentID == LLUUID.Zero)
138 {
139 rootID = InvFolder.folderID;
140 }
141 TempHash = new Hashtable();
142 TempHash["name"] = InvFolder.name;
143 TempHash["parent_id"] = InvFolder.parentID.ToStringHyphenated();
144 TempHash["version"] = (Int32)InvFolder.version;
145 TempHash["type_default"] = (Int32)InvFolder.type;
146 TempHash["folder_id"] = InvFolder.folderID.ToStringHyphenated();
147 AgentInventoryArray.Add(TempHash);
148 }
149 return new InventoryData(AgentInventoryArray, rootID);
150 }
151 else
152 {
153 AgentInventory userInventory = new AgentInventory();
154 userInventory.CreateRootFolder(userID, false);
155
156 ArrayList AgentInventoryArray = new ArrayList();
157 Hashtable TempHash;
158 foreach (OpenSim.Framework.Inventory.InventoryFolder InvFolder in userInventory.InventoryFolders.Values)
159 {
160 TempHash = new Hashtable();
161 TempHash["name"] = InvFolder.FolderName;
162 TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated();
163 TempHash["version"] = (Int32)InvFolder.Version;
164 TempHash["type_default"] = (Int32)InvFolder.DefaultType;
165 TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated();
166 AgentInventoryArray.Add(TempHash);
167 }
168
169 return new InventoryData(AgentInventoryArray, userInventory.InventoryRoot.FolderID);
170 }
171 }
125 } 172 }
126} 173}
diff --git a/OpenSim/Region/Communications/Local/LocalUserServices.cs b/OpenSim/Region/Communications/Local/LocalUserServices.cs
index 61b8633..3bc4301 100644
--- a/OpenSim/Region/Communications/Local/LocalUserServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalUserServices.cs
@@ -1,5 +1,4 @@
1using System; 1using System;
2using libsecondlife;
3using OpenSim.Framework.Communications; 2using OpenSim.Framework.Communications;
4using OpenSim.Framework.Data; 3using OpenSim.Framework.Data;
5using OpenSim.Framework.Types; 4using OpenSim.Framework.Types;
@@ -49,10 +48,10 @@ namespace OpenSim.Region.Communications.Local
49 } 48 }
50 else 49 else
51 { 50 {
52 m_parent.InventoryService.CreateNewUserInventory(LLUUID.Zero, profile.UUID); 51 m_parent.InventoryService.CreateNewUserInventory(profile.UUID);
53 } 52 }
54 53
55 return profile; 54 return profile;
56 } 55 }
57 } 56 }
58} 57} \ No newline at end of file
diff --git a/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs b/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs
index 1aa6498..96f1933 100644
--- a/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs
+++ b/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs
@@ -14,8 +14,8 @@ namespace OpenSim.Region.Communications.OGS1
14 m_gridService = gridInterComms; 14 m_gridService = gridInterComms;
15 m_interRegion = gridInterComms; 15 m_interRegion = gridInterComms;
16 16
17 m_inventoryService = new OGS1InventoryService();
17 m_userService = new OGS1UserServices(this); 18 m_userService = new OGS1UserServices(this);
18 m_inventoryService = new OGS1InventoryService(serversInfo, m_userService);
19 } 19 }
20 } 20 }
21} 21}
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
index 0b78c83..1b4b54c 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
@@ -5,7 +5,6 @@ using System.Net;
5using System.Runtime.Remoting; 5using System.Runtime.Remoting;
6using System.Runtime.Remoting.Channels; 6using System.Runtime.Remoting.Channels;
7using System.Runtime.Remoting.Channels.Tcp; 7using System.Runtime.Remoting.Channels.Tcp;
8using System.Runtime.Serialization.Formatters;
9using libsecondlife; 8using libsecondlife;
10using Nwc.XmlRpc; 9using Nwc.XmlRpc;
11using OpenSim.Framework; 10using OpenSim.Framework;
@@ -303,23 +302,8 @@ namespace OpenSim.Region.Communications.OGS1
303 /// </summary> 302 /// </summary>
304 private void StartRemoting() 303 private void StartRemoting()
305 { 304 {
306 // we only need to register the tcp channel once, and we don't know which other modules use remoting 305 TcpChannel ch = new TcpChannel(this.serversInfo.RemotingListenerPort);
307 if (ChannelServices.GetChannel("tcp") == null) 306 ChannelServices.RegisterChannel(ch, true);
308 {
309 // Creating a custom formatter for a TcpChannel sink chain.
310 BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
311 serverProvider.TypeFilterLevel = TypeFilterLevel.Full;
312
313 BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
314
315 IDictionary props = new Hashtable();
316 props["port"] = this.serversInfo.RemotingListenerPort;
317 props["typeFilterLevel"] = TypeFilterLevel.Full;
318
319 TcpChannel ch = new TcpChannel(props, clientProvider, serverProvider);
320
321 ChannelServices.RegisterChannel(ch, true);
322 }
323 307
324 WellKnownServiceTypeEntry wellType = new WellKnownServiceTypeEntry(typeof(OGS1InterRegionRemoting), "InterRegions", WellKnownObjectMode.Singleton); 308 WellKnownServiceTypeEntry wellType = new WellKnownServiceTypeEntry(typeof(OGS1InterRegionRemoting), "InterRegions", WellKnownObjectMode.Singleton);
325 RemotingConfiguration.RegisterWellKnownServiceType(wellType); 309 RemotingConfiguration.RegisterWellKnownServiceType(wellType);
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
index 2ec4d10..45188c1 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
@@ -1,15 +1,8 @@
1using System;
2using System.Runtime.Remoting;
3using System.Runtime.Remoting.Channels;
4using System.Runtime.Remoting.Channels.Tcp;
5using System.Runtime.Serialization.Formatters;
6using System.Collections;
7using System.Collections.Generic; 1using System.Collections.Generic;
8
9using libsecondlife; 2using libsecondlife;
10using OpenSim.Framework.Communications; 3using OpenSim.Framework.Communications;
11using OpenSim.Framework.Data; 4using OpenSim.Framework.Data;
12using OpenSim.Framework.Types; 5using InventoryFolder = OpenSim.Framework.Communications.Caches.InventoryFolder;
13 6
14 7
15namespace OpenSim.Region.Communications.OGS1 8namespace OpenSim.Region.Communications.OGS1
@@ -17,83 +10,43 @@ namespace OpenSim.Region.Communications.OGS1
17 public class OGS1InventoryService : IInventoryServices 10 public class OGS1InventoryService : IInventoryServices
18 { 11 {
19 12
20 IUserServices _userServices; 13 public OGS1InventoryService()
21 IInventoryServices _inventoryServices;
22
23 public OGS1InventoryService(NetworkServersInfo networkConfig, IUserServices userServices) :
24 this(networkConfig.InventoryServerName, networkConfig.InventoryServerPort, userServices)
25 {
26 }
27
28 public OGS1InventoryService(string serverName, int serverPort, IUserServices userServices)
29 { 14 {
30 _userServices = userServices;
31
32 // we only need to register the tcp channel once, and we don't know which other modules use remoting
33 if (ChannelServices.GetChannel("tcp") == null)
34 {
35 // Creating a custom formatter for a TcpChannel sink chain.
36 BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
37 serverProvider.TypeFilterLevel = TypeFilterLevel.Full;
38
39 BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
40
41 IDictionary props = new Hashtable();
42 props["typeFilterLevel"] = TypeFilterLevel.Full;
43
44 // Pass the properties for the port setting and the server provider in the server chain argument. (Client remains null here.)
45 TcpChannel chan = new TcpChannel(props, clientProvider, serverProvider);
46
47 ChannelServices.RegisterChannel(chan, true);
48 }
49
50 15
51
52 string remotingUrl = string.Format("tcp://{0}:{1}/Inventory", serverName, serverPort);
53 _inventoryServices = (IInventoryServices)Activator.GetObject(typeof(IInventoryServices), remotingUrl);
54 } 16 }
55 17
56 #region IInventoryServices Members 18 #region IInventoryServices Members
57 19
58 public void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack) 20 public void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack)
59 { 21 {
60 _inventoryServices.RequestInventoryForUser(userID, folderCallBack, itemCallBack); 22
61 } 23 }
62 24
63 public void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder) 25 public void AddNewInventoryFolder(LLUUID userID, InventoryFolder folder)
64 { 26 {
65 _inventoryServices.AddNewInventoryFolder(userID, folder); 27
66 } 28 }
67 29
68 public void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) 30 public void AddNewInventoryItem(LLUUID userID, InventoryItemBase item)
69 { 31 {
70 _inventoryServices.AddNewInventoryItem(userID, item); 32
71 } 33 }
72 34
73 public void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) 35 public void DeleteInventoryItem(LLUUID userID, InventoryItemBase item)
74 { 36 {
75 _inventoryServices.DeleteInventoryItem(userID, item); 37
76 }
77
78 public List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID folderID)
79 {
80 return _inventoryServices.RequestFirstLevelFolders(folderID);
81 } 38 }
82 39
83 public List<InventoryItemBase> RequestFolderItems(LLUUID folderID) 40 public void CreateNewUserInventory(LLUUID user)
84 { 41 {
85 return _inventoryServices.RequestFolderItems(folderID); 42
86 } 43 }
87 44
88 public void GetRootFoldersForUser(LLUUID user, out LLUUID libraryFolder, out LLUUID personalFolder) 45 public List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID)
89 { 46 {
90 _inventoryServices.GetRootFoldersForUser(user, out libraryFolder, out personalFolder); 47 return new List<InventoryFolderBase>();
91 } 48 }
92 49
93 public void CreateNewUserInventory(LLUUID libraryRootId, LLUUID user)
94 {
95 throw new Exception("method not implemented");
96 }
97 #endregion 50 #endregion
98 } 51 }
99} 52}