diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs | 60 | ||||
-rw-r--r-- | OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs | 68 | ||||
-rw-r--r-- | OpenSim/Region/Communications/Hypergrid/HGUserServices.cs | 337 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs (renamed from OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs) | 53 |
4 files changed, 25 insertions, 493 deletions
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs deleted file mode 100644 index e80f6ab..0000000 --- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System.Reflection; | ||
29 | using log4net; | ||
30 | using OpenSim.Data; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Framework.Communications; | ||
33 | using OpenSim.Framework.Communications.Cache; | ||
34 | using OpenSim.Framework.Servers; | ||
35 | using OpenSim.Framework.Servers.HttpServer; | ||
36 | using OpenSim.Region.Communications.OGS1; | ||
37 | using OpenSim.Region.Framework.Scenes; | ||
38 | |||
39 | namespace OpenSim.Region.Communications.Hypergrid | ||
40 | { | ||
41 | public class HGCommunicationsGridMode : CommunicationsManager // CommunicationsOGS1 | ||
42 | { | ||
43 | |||
44 | public HGCommunicationsGridMode( | ||
45 | NetworkServersInfo serversInfo, | ||
46 | SceneManager sman, LibraryRootFolder libraryRootFolder) | ||
47 | : base(serversInfo, libraryRootFolder) | ||
48 | { | ||
49 | |||
50 | HGUserServices userServices = new HGUserServices(this); | ||
51 | // This plugin arrangement could eventually be configurable rather than hardcoded here. | ||
52 | userServices.AddPlugin(new TemporaryUserProfilePlugin()); | ||
53 | userServices.AddPlugin(new HGUserDataPlugin(this, userServices)); | ||
54 | |||
55 | m_userService = userServices; | ||
56 | m_messageService = userServices; | ||
57 | m_avatarService = userServices; | ||
58 | } | ||
59 | } | ||
60 | } | ||
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs deleted file mode 100644 index 4e3f5a1..0000000 --- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System.Collections.Generic; | ||
29 | using OpenSim.Data; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Framework.Communications; | ||
32 | using OpenSim.Framework.Communications.Cache; | ||
33 | using OpenSim.Framework.Communications.Osp; | ||
34 | using OpenSim.Framework.Servers; | ||
35 | using OpenSim.Framework.Servers.HttpServer; | ||
36 | using OpenSim.Region.Communications.Local; | ||
37 | using OpenSim.Region.Communications.OGS1; | ||
38 | |||
39 | namespace OpenSim.Region.Communications.Hypergrid | ||
40 | { | ||
41 | public class HGCommunicationsStandalone : CommunicationsManager | ||
42 | { | ||
43 | public HGCommunicationsStandalone( | ||
44 | ConfigSettings configSettings, | ||
45 | NetworkServersInfo serversInfo, | ||
46 | BaseHttpServer httpServer, | ||
47 | LibraryRootFolder libraryRootFolder, | ||
48 | bool dumpAssetsToFile) | ||
49 | : base(serversInfo, libraryRootFolder) | ||
50 | { | ||
51 | LocalUserServices localUserService = | ||
52 | new LocalUserServices( | ||
53 | serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this); | ||
54 | localUserService.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource); | ||
55 | |||
56 | HGUserServices hgUserService = new HGUserServices(this, localUserService); | ||
57 | // This plugin arrangement could eventually be configurable rather than hardcoded here. | ||
58 | hgUserService.AddPlugin(new TemporaryUserProfilePlugin()); | ||
59 | hgUserService.AddPlugin(new HGUserDataPlugin(this, hgUserService)); | ||
60 | |||
61 | m_userService = hgUserService; | ||
62 | m_userAdminService = hgUserService; | ||
63 | m_avatarService = hgUserService; | ||
64 | m_messageService = hgUserService; | ||
65 | |||
66 | } | ||
67 | } | ||
68 | } | ||
diff --git a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs deleted file mode 100644 index 09d8285..0000000 --- a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs +++ /dev/null | |||
@@ -1,337 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | ||
31 | using OpenMetaverse; | ||
32 | using OpenSim.Framework; | ||
33 | using OpenSim.Framework.Communications; | ||
34 | using OpenSim.Framework.Communications.Cache; | ||
35 | using OpenSim.Framework.Communications.Clients; | ||
36 | using OpenSim.Region.Communications.OGS1; | ||
37 | using OpenSim.Region.Communications.Local; | ||
38 | using OpenSim.Services.Interfaces; | ||
39 | |||
40 | namespace OpenSim.Region.Communications.Hypergrid | ||
41 | { | ||
42 | /// <summary> | ||
43 | /// For the time being, this class is just an identity wrapper around OGS1UserServices, | ||
44 | /// so it always fails for foreign users. | ||
45 | /// Later it needs to talk with the foreign users' user servers. | ||
46 | /// </summary> | ||
47 | public class HGUserServices : OGS1UserServices | ||
48 | { | ||
49 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
50 | |||
51 | //private OGS1UserServices m_remoteUserServices; | ||
52 | private LocalUserServices m_localUserServices; | ||
53 | |||
54 | // Constructor called when running in grid mode | ||
55 | public HGUserServices(CommunicationsManager commsManager) | ||
56 | : base(commsManager) | ||
57 | { | ||
58 | } | ||
59 | |||
60 | // Constructor called when running in standalone | ||
61 | public HGUserServices(CommunicationsManager commsManager, LocalUserServices local) | ||
62 | : base(commsManager) | ||
63 | { | ||
64 | m_localUserServices = local; | ||
65 | } | ||
66 | |||
67 | public override void SetInventoryService(IInventoryService invService) | ||
68 | { | ||
69 | base.SetInventoryService(invService); | ||
70 | if (m_localUserServices != null) | ||
71 | m_localUserServices.SetInventoryService(invService); | ||
72 | } | ||
73 | |||
74 | public override UUID AddUser( | ||
75 | string firstName, string lastName, string password, string email, uint regX, uint regY, UUID uuid) | ||
76 | { | ||
77 | // Only valid to create users locally | ||
78 | if (m_localUserServices != null) | ||
79 | return m_localUserServices.AddUser(firstName, lastName, password, email, regX, regY, uuid); | ||
80 | |||
81 | return UUID.Zero; | ||
82 | } | ||
83 | |||
84 | public override bool AddUserAgent(UserAgentData agentdata) | ||
85 | { | ||
86 | if (m_localUserServices != null) | ||
87 | return m_localUserServices.AddUserAgent(agentdata); | ||
88 | |||
89 | return base.AddUserAgent(agentdata); | ||
90 | } | ||
91 | |||
92 | public override UserAgentData GetAgentByUUID(UUID userId) | ||
93 | { | ||
94 | string url = string.Empty; | ||
95 | if ((m_localUserServices != null) && !IsForeignUser(userId, out url)) | ||
96 | return m_localUserServices.GetAgentByUUID(userId); | ||
97 | |||
98 | return base.GetAgentByUUID(userId); | ||
99 | } | ||
100 | |||
101 | public override void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat) | ||
102 | { | ||
103 | string url = string.Empty; | ||
104 | if ((m_localUserServices != null) && !IsForeignUser(userid, out url)) | ||
105 | m_localUserServices.LogOffUser(userid, regionid, regionhandle, position, lookat); | ||
106 | else | ||
107 | base.LogOffUser(userid, regionid, regionhandle, position, lookat); | ||
108 | } | ||
109 | |||
110 | public override UserProfileData GetUserProfile(string firstName, string lastName) | ||
111 | { | ||
112 | if (m_localUserServices != null) | ||
113 | return m_localUserServices.GetUserProfile(firstName, lastName); | ||
114 | |||
115 | return base.GetUserProfile(firstName, lastName); | ||
116 | } | ||
117 | |||
118 | public override List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(UUID queryID, string query) | ||
119 | { | ||
120 | if (m_localUserServices != null) | ||
121 | return m_localUserServices.GenerateAgentPickerRequestResponse(queryID, query); | ||
122 | |||
123 | return base.GenerateAgentPickerRequestResponse(queryID, query); | ||
124 | } | ||
125 | |||
126 | /// <summary> | ||
127 | /// Get a user profile from the user server | ||
128 | /// </summary> | ||
129 | /// <param name="avatarID"></param> | ||
130 | /// <returns>null if the request fails</returns> | ||
131 | public override UserProfileData GetUserProfile(UUID avatarID) | ||
132 | { | ||
133 | //string url = string.Empty; | ||
134 | // Unfortunately we can't query for foreigners here, | ||
135 | // because we'll end up in an infinite loop... | ||
136 | //if ((m_localUserServices != null) && (!IsForeignUser(avatarID, out url))) | ||
137 | if (m_localUserServices != null) | ||
138 | return m_localUserServices.GetUserProfile(avatarID); | ||
139 | |||
140 | return base.GetUserProfile(avatarID); | ||
141 | } | ||
142 | |||
143 | public override void ClearUserAgent(UUID avatarID) | ||
144 | { | ||
145 | if (m_localUserServices != null) | ||
146 | m_localUserServices.ClearUserAgent(avatarID); | ||
147 | else | ||
148 | base.ClearUserAgent(avatarID); | ||
149 | } | ||
150 | |||
151 | /// <summary> | ||
152 | /// Retrieve the user information for the given master uuid. | ||
153 | /// </summary> | ||
154 | /// <param name="uuid"></param> | ||
155 | /// <returns></returns> | ||
156 | public override UserProfileData SetupMasterUser(string firstName, string lastName) | ||
157 | { | ||
158 | if (m_localUserServices != null) | ||
159 | return m_localUserServices.SetupMasterUser(firstName, lastName); | ||
160 | |||
161 | return base.SetupMasterUser(firstName, lastName); | ||
162 | } | ||
163 | |||
164 | /// <summary> | ||
165 | /// Retrieve the user information for the given master uuid. | ||
166 | /// </summary> | ||
167 | /// <param name="uuid"></param> | ||
168 | /// <returns></returns> | ||
169 | public override UserProfileData SetupMasterUser(string firstName, string lastName, string password) | ||
170 | { | ||
171 | if (m_localUserServices != null) | ||
172 | return m_localUserServices.SetupMasterUser(firstName, lastName, password); | ||
173 | |||
174 | return base.SetupMasterUser(firstName, lastName, password); | ||
175 | } | ||
176 | |||
177 | /// <summary> | ||
178 | /// Retrieve the user information for the given master uuid. | ||
179 | /// </summary> | ||
180 | /// <param name="uuid"></param> | ||
181 | /// <returns></returns> | ||
182 | public override UserProfileData SetupMasterUser(UUID uuid) | ||
183 | { | ||
184 | if (m_localUserServices != null) | ||
185 | return m_localUserServices.SetupMasterUser(uuid); | ||
186 | |||
187 | return base.SetupMasterUser(uuid); | ||
188 | } | ||
189 | |||
190 | public override bool ResetUserPassword(string firstName, string lastName, string newPassword) | ||
191 | { | ||
192 | if (m_localUserServices != null) | ||
193 | return m_localUserServices.ResetUserPassword(firstName, lastName, newPassword); | ||
194 | else | ||
195 | return base.ResetUserPassword(firstName, lastName, newPassword); | ||
196 | } | ||
197 | |||
198 | public override bool UpdateUserProfile(UserProfileData userProfile) | ||
199 | { | ||
200 | string url = string.Empty; | ||
201 | if ((m_localUserServices != null) && (!IsForeignUser(userProfile.ID, out url))) | ||
202 | return m_localUserServices.UpdateUserProfile(userProfile); | ||
203 | |||
204 | return base.UpdateUserProfile(userProfile); | ||
205 | } | ||
206 | |||
207 | public override bool AuthenticateUserByPassword(UUID userID, string password) | ||
208 | { | ||
209 | if (m_localUserServices != null) | ||
210 | return m_localUserServices.AuthenticateUserByPassword(userID, password); | ||
211 | else | ||
212 | return base.AuthenticateUserByPassword(userID, password); | ||
213 | } | ||
214 | |||
215 | #region IUserServices Friend Methods | ||
216 | |||
217 | // NOTE: We're still not dealing with foreign user friends | ||
218 | |||
219 | /// <summary> | ||
220 | /// Adds a new friend to the database for XUser | ||
221 | /// </summary> | ||
222 | /// <param name="friendlistowner">The agent that who's friends list is being added to</param> | ||
223 | /// <param name="friend">The agent that being added to the friends list of the friends list owner</param> | ||
224 | /// <param name="perms">A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects </param> | ||
225 | public override void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms) | ||
226 | { | ||
227 | if (m_localUserServices != null) | ||
228 | m_localUserServices.AddNewUserFriend(friendlistowner, friend, perms); | ||
229 | else | ||
230 | base.AddNewUserFriend(friendlistowner, friend, perms); | ||
231 | } | ||
232 | |||
233 | /// <summary> | ||
234 | /// Delete friend on friendlistowner's friendlist. | ||
235 | /// </summary> | ||
236 | /// <param name="friendlistowner">The agent that who's friends list is being updated</param> | ||
237 | /// <param name="friend">The Ex-friend agent</param> | ||
238 | public override void RemoveUserFriend(UUID friendlistowner, UUID friend) | ||
239 | { | ||
240 | if (m_localUserServices != null) | ||
241 | m_localUserServices.RemoveUserFriend(friendlistowner, friend); | ||
242 | else | ||
243 | base.RemoveUserFriend(friend, friend); | ||
244 | } | ||
245 | |||
246 | /// <summary> | ||
247 | /// Update permissions for friend on friendlistowner's friendlist. | ||
248 | /// </summary> | ||
249 | /// <param name="friendlistowner">The agent that who's friends list is being updated</param> | ||
250 | /// <param name="friend">The agent that is getting or loosing permissions</param> | ||
251 | /// <param name="perms">A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects </param> | ||
252 | public override void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms) | ||
253 | { | ||
254 | if (m_localUserServices != null) | ||
255 | m_localUserServices.UpdateUserFriendPerms(friendlistowner, friend, perms); | ||
256 | else | ||
257 | base.UpdateUserFriendPerms(friendlistowner, friend, perms); | ||
258 | } | ||
259 | /// <summary> | ||
260 | /// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for UUID friendslistowner | ||
261 | /// </summary> | ||
262 | /// <param name="friendlistowner">The agent that we're retreiving the friends Data.</param> | ||
263 | public override List<FriendListItem> GetUserFriendList(UUID friendlistowner) | ||
264 | { | ||
265 | if (m_localUserServices != null) | ||
266 | return m_localUserServices.GetUserFriendList(friendlistowner); | ||
267 | |||
268 | return base.GetUserFriendList(friendlistowner); | ||
269 | } | ||
270 | |||
271 | #endregion | ||
272 | |||
273 | /// Appearance | ||
274 | public override AvatarAppearance GetUserAppearance(UUID user) | ||
275 | { | ||
276 | string url = string.Empty; | ||
277 | if ((m_localUserServices != null) && (!IsForeignUser(user, out url))) | ||
278 | return m_localUserServices.GetUserAppearance(user); | ||
279 | else | ||
280 | return base.GetUserAppearance(user); | ||
281 | } | ||
282 | |||
283 | public override void UpdateUserAppearance(UUID user, AvatarAppearance appearance) | ||
284 | { | ||
285 | string url = string.Empty; | ||
286 | if ((m_localUserServices != null) && (!IsForeignUser(user, out url))) | ||
287 | m_localUserServices.UpdateUserAppearance(user, appearance); | ||
288 | else | ||
289 | base.UpdateUserAppearance(user, appearance); | ||
290 | } | ||
291 | |||
292 | #region IMessagingService | ||
293 | |||
294 | public override Dictionary<UUID, FriendRegionInfo> GetFriendRegionInfos(List<UUID> uuids) | ||
295 | { | ||
296 | if (m_localUserServices != null) | ||
297 | return m_localUserServices.GetFriendRegionInfos(uuids); | ||
298 | |||
299 | return base.GetFriendRegionInfos(uuids); | ||
300 | } | ||
301 | #endregion | ||
302 | |||
303 | public override bool VerifySession(UUID userID, UUID sessionID) | ||
304 | { | ||
305 | string url = string.Empty; | ||
306 | if ((m_localUserServices != null) && (!IsForeignUser(userID, out url))) | ||
307 | return m_localUserServices.VerifySession(userID, sessionID); | ||
308 | else | ||
309 | return base.VerifySession(userID, sessionID); | ||
310 | } | ||
311 | |||
312 | |||
313 | protected override string GetUserServerURL(UUID userID) | ||
314 | { | ||
315 | string serverURL = string.Empty; | ||
316 | if (IsForeignUser(userID, out serverURL)) | ||
317 | return serverURL; | ||
318 | |||
319 | return m_commsManager.NetworkServersInfo.UserURL; | ||
320 | } | ||
321 | |||
322 | public bool IsForeignUser(UUID userID, out string userServerURL) | ||
323 | { | ||
324 | userServerURL = m_commsManager.NetworkServersInfo.UserURL; | ||
325 | CachedUserInfo uinfo = m_commsManager.UserProfileCacheService.GetUserDetails(userID); | ||
326 | if (uinfo != null) | ||
327 | { | ||
328 | if (!HGNetworkServersInfo.Singleton.IsLocalUser(uinfo.UserProfile)) | ||
329 | { | ||
330 | userServerURL = ((ForeignUserProfileData)(uinfo.UserProfile)).UserServerURI; | ||
331 | return true; | ||
332 | } | ||
333 | } | ||
334 | return false; | ||
335 | } | ||
336 | } | ||
337 | } | ||
diff --git a/OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs b/OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs index 4b8fc26..c951653 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs +++ b/OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs | |||
@@ -27,46 +27,43 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.Collections.Generic; | 30 | using System.IO; |
31 | using System.Net; | ||
32 | using System.Reflection; | 31 | using System.Reflection; |
33 | using System.Text.RegularExpressions; | 32 | using System.Net; |
34 | using System.Xml.Serialization; | 33 | using System.Text; |
35 | using log4net; | 34 | |
36 | using Nwc.XmlRpc; | 35 | using OpenSim.Server.Base; |
37 | using OpenMetaverse; | 36 | using OpenSim.Server.Handlers.Base; |
38 | using OpenSim.Data; | 37 | using OpenSim.Services.Interfaces; |
38 | using GridRegion = OpenSim.Services.Interfaces.GridRegion; | ||
39 | using OpenSim.Framework; | 39 | using OpenSim.Framework; |
40 | using OpenSim.Framework.Communications; | 40 | using OpenSim.Framework.Servers.HttpServer; |
41 | using OpenSim.Framework.Communications.Clients; | 41 | using OpenSim.Server.Handlers.Simulation; |
42 | using OpenSim.Region.Communications.OGS1; | 42 | using Utils = OpenSim.Server.Handlers.Simulation.Utils; |
43 | |||
44 | using OpenMetaverse; | ||
45 | using OpenMetaverse.StructuredData; | ||
46 | using Nini.Config; | ||
47 | using log4net; | ||
48 | |||
43 | 49 | ||
44 | namespace OpenSim.Region.Communications.Hypergrid | 50 | namespace OpenSim.Server.Handlers.Hypergrid |
45 | { | 51 | { |
46 | public class HGUserDataPlugin : OGS1UserDataPlugin | 52 | public class GatekeeperAgentHandler : OpenSim.Server.Handlers.Simulation.AgentHandler |
47 | { | 53 | { |
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
55 | private IGatekeeperService m_GatekeeperService; | ||
49 | 56 | ||
50 | HGUserServices m_UserServices; | 57 | public GatekeeperAgentHandler(IGatekeeperService gatekeeper) |
51 | |||
52 | public HGUserDataPlugin() | ||
53 | { | 58 | { |
59 | m_GatekeeperService = gatekeeper; | ||
54 | } | 60 | } |
55 | 61 | ||
56 | public HGUserDataPlugin(CommunicationsManager commsManager, HGUserServices userServices) | 62 | protected override bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason) |
57 | { | 63 | { |
58 | m_log.DebugFormat("[HG USER SERVICES]: {0} initialized", Name); | 64 | return m_GatekeeperService.LoginAgent(aCircuit, destination, out reason); |
59 | m_commsManager = commsManager; | ||
60 | m_UserServices = userServices; | ||
61 | } | ||
62 | |||
63 | protected override string GetUserServerURL(UUID userID) | ||
64 | { | ||
65 | string url = string.Empty; | ||
66 | if (m_UserServices.IsForeignUser(userID, out url)) | ||
67 | return url; | ||
68 | return m_commsManager.NetworkServersInfo.UserURL; | ||
69 | } | 65 | } |
70 | 66 | ||
71 | } | 67 | } |
68 | |||
72 | } | 69 | } |