aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorDiva Canto2010-01-28 19:19:42 -0800
committerDiva Canto2010-01-28 19:19:42 -0800
commit00f7d622cbc2c2e61d2efaacd8275da3f9821d8b (patch)
tree1bfc6dd3ac2a93443bc75baa03ceefba4cfacc1e /OpenSim/Region/Framework
parentAdded ExternalName config on Gatekeeper. (diff)
downloadopensim-SC_OLD-00f7d622cbc2c2e61d2efaacd8275da3f9821d8b.zip
opensim-SC_OLD-00f7d622cbc2c2e61d2efaacd8275da3f9821d8b.tar.gz
opensim-SC_OLD-00f7d622cbc2c2e61d2efaacd8275da3f9821d8b.tar.bz2
opensim-SC_OLD-00f7d622cbc2c2e61d2efaacd8275da3f9821d8b.tar.xz
HG 1.5 is in place. Tested in standalone only.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs33
2 files changed, 37 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs
index 73c68f1..e8738c4 100644
--- a/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs
@@ -52,4 +52,9 @@ namespace OpenSim.Region.Framework.Interfaces
52 52
53 void Cross(SceneObjectGroup sog, Vector3 position, bool silent); 53 void Cross(SceneObjectGroup sog, Vector3 position, bool silent);
54 } 54 }
55
56 public interface IUserAgentVerificationModule
57 {
58 bool VerifyClient(AgentCircuitData aCircuit, string token);
59 }
55} 60}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 3cfb236..f800d5f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2416,6 +2416,37 @@ namespace OpenSim.Region.Framework.Scenes
2416 { 2416 {
2417 AgentCircuitData aCircuit = m_authenticateHandler.GetAgentCircuitData(client.CircuitCode); 2417 AgentCircuitData aCircuit = m_authenticateHandler.GetAgentCircuitData(client.CircuitCode);
2418 2418
2419 // Do the verification here
2420 System.Net.EndPoint ep = client.GetClientEP();
2421 if (aCircuit != null)
2422 {
2423 if ((aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0)
2424 {
2425 m_log.DebugFormat("[Scene]: Incoming client {0} {1} in region {2} via Login", aCircuit.firstname, aCircuit.lastname, RegionInfo.RegionName);
2426 IUserAgentVerificationModule userVerification = RequestModuleInterface<IUserAgentVerificationModule>();
2427 if (userVerification != null)
2428 {
2429 if (!userVerification.VerifyClient(aCircuit, ep.ToString()))
2430 {
2431 // uh-oh, this is fishy
2432 m_log.WarnFormat("[Scene]: Agent {0} with session {1} connecting with unidentified end point {2}. Refusing service.",
2433 client.AgentId, client.SessionId, ep.ToString());
2434 try
2435 {
2436 client.Close();
2437 }
2438 catch (Exception e)
2439 {
2440 m_log.DebugFormat("[Scene]: Exception while closing aborted client: {0}", e.StackTrace);
2441 }
2442 return;
2443 }
2444 else
2445 m_log.DebugFormat("[Scene]: User Client Verification for {0} {1} returned true", aCircuit.firstname, aCircuit.lastname);
2446 }
2447 }
2448 }
2449
2419 m_log.Debug("[Scene] Adding new agent " + client.Name + " to scene " + RegionInfo.RegionName); 2450 m_log.Debug("[Scene] Adding new agent " + client.Name + " to scene " + RegionInfo.RegionName);
2420 /* 2451 /*
2421 string logMsg = string.Format("[SCENE]: Adding new {0} agent for {1} in {2}", 2452 string logMsg = string.Format("[SCENE]: Adding new {0} agent for {1} in {2}",
@@ -2426,7 +2457,6 @@ namespace OpenSim.Region.Framework.Scenes
2426 */ 2457 */
2427 2458
2428 //CommsManager.UserProfileCacheService.AddNewUser(client.AgentId); 2459 //CommsManager.UserProfileCacheService.AddNewUser(client.AgentId);
2429
2430 ScenePresence sp = CreateAndAddScenePresence(client); 2460 ScenePresence sp = CreateAndAddScenePresence(client);
2431 sp.Appearance = aCircuit.Appearance; 2461 sp.Appearance = aCircuit.Appearance;
2432 2462
@@ -3243,6 +3273,7 @@ namespace OpenSim.Region.Framework.Scenes
3243 } 3273 }
3244 } 3274 }
3245 3275
3276 agent.teleportFlags = teleportFlags;
3246 m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); 3277 m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent);
3247 3278
3248 return true; 3279 return true;