diff options
author | Melanie | 2013-02-23 20:37:09 +0000 |
---|---|---|
committer | Melanie | 2013-02-23 20:37:09 +0000 |
commit | e3ea2c4beefb65ba997beab1509aa996a46f7864 (patch) | |
tree | 778cba450e788b13f4d000c6e49f3d94bd25f65c | |
parent | Merge branch 'master' into careminster (diff) | |
parent | More clarification on the [Groups] section (diff) | |
download | opensim-SC-e3ea2c4beefb65ba997beab1509aa996a46f7864.zip opensim-SC-e3ea2c4beefb65ba997beab1509aa996a46f7864.tar.gz opensim-SC-e3ea2c4beefb65ba997beab1509aa996a46f7864.tar.bz2 opensim-SC-e3ea2c4beefb65ba997beab1509aa996a46f7864.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
Diffstat (limited to '')
18 files changed, 140 insertions, 63 deletions
diff --git a/OpenSim/Addons/Groups/Hypergrid/HGGroupsServiceRobustConnector.cs b/OpenSim/Addons/Groups/Hypergrid/HGGroupsServiceRobustConnector.cs index 0e71c72..7cc9ff4 100644 --- a/OpenSim/Addons/Groups/Hypergrid/HGGroupsServiceRobustConnector.cs +++ b/OpenSim/Addons/Groups/Hypergrid/HGGroupsServiceRobustConnector.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Groups | |||
65 | 65 | ||
66 | m_log.DebugFormat("[Groups.RobustHGConnector]: Starting with config name {0}", m_ConfigName); | 66 | m_log.DebugFormat("[Groups.RobustHGConnector]: Starting with config name {0}", m_ConfigName); |
67 | 67 | ||
68 | string homeURI = Util.GetConfigVarWithDefaultSection(config, "HomeURI", m_ConfigName); //cnf.GetString("HomeURI", string.Empty); | 68 | string homeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI", new string[] { "Startup", m_ConfigName} ); //cnf.GetString("HomeURI", string.Empty); |
69 | if (homeURI == string.Empty) | 69 | if (homeURI == string.Empty) |
70 | throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide the HomeURI [Startup] or in section {0}", m_ConfigName)); | 70 | throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide the HomeURI [Startup] or in section {0}", m_ConfigName)); |
71 | 71 | ||
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 724e38b..aadcdc8 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -916,6 +916,44 @@ namespace OpenSim.Framework | |||
916 | 916 | ||
917 | return val; | 917 | return val; |
918 | } | 918 | } |
919 | |||
920 | /// <summary> | ||
921 | /// Gets the value of a configuration variable by looking into | ||
922 | /// multiple sections in order. The latter sections overwrite | ||
923 | /// any values previously found. | ||
924 | /// </summary> | ||
925 | /// <typeparam name="T">Type of the variable</typeparam> | ||
926 | /// <param name="config">The configuration object</param> | ||
927 | /// <param name="varname">The configuration variable</param> | ||
928 | /// <param name="sections">Ordered sequence of sections to look at</param> | ||
929 | /// <returns></returns> | ||
930 | public static T GetConfigVarFromSections<T>(IConfigSource config, string varname, string[] sections) | ||
931 | { | ||
932 | object val = default(T); | ||
933 | foreach (string section in sections) | ||
934 | { | ||
935 | IConfig cnf = config.Configs[section]; | ||
936 | if (cnf == null) | ||
937 | continue; | ||
938 | |||
939 | if (typeof(T) == typeof(String)) | ||
940 | { | ||
941 | if (val == null) // no null strings, please | ||
942 | val = string.Empty; | ||
943 | val = cnf.GetString(varname, (string)val); | ||
944 | } | ||
945 | else if (typeof(T) == typeof(Boolean)) | ||
946 | val = cnf.GetBoolean(varname, (bool)val); | ||
947 | else if (typeof(T) == typeof(Int32)) | ||
948 | val = cnf.GetInt(varname, (int)val); | ||
949 | else if (typeof(T) == typeof(float)) | ||
950 | val = cnf.GetFloat(varname, (int)val); | ||
951 | else | ||
952 | m_log.WarnFormat("[UTIL]: Unhandled type {0}", typeof(T)); | ||
953 | } | ||
954 | return (T)val; | ||
955 | } | ||
956 | |||
919 | #endregion | 957 | #endregion |
920 | 958 | ||
921 | public static float Clip(float x, float min, float max) | 959 | public static float Clip(float x, float min, float max) |
diff --git a/OpenSim/Region/CoreModules/Avatar/Lure/HGLureModule.cs b/OpenSim/Region/CoreModules/Avatar/Lure/HGLureModule.cs index 784a788..22cdc80 100644 --- a/OpenSim/Region/CoreModules/Avatar/Lure/HGLureModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Lure/HGLureModule.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Lure | |||
65 | { | 65 | { |
66 | m_Enabled = true; | 66 | m_Enabled = true; |
67 | 67 | ||
68 | m_ThisGridURL = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", "Messaging"); | 68 | m_ThisGridURL = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup", "Messaging"}); |
69 | // Legacy. Remove soon! | 69 | // Legacy. Remove soon! |
70 | m_ThisGridURL = config.Configs["Messaging"].GetString("Gatekeeper", m_ThisGridURL); | 70 | m_ThisGridURL = config.Configs["Messaging"].GetString("Gatekeeper", m_ThisGridURL); |
71 | m_log.DebugFormat("[LURE MODULE]: {0} enabled", Name); | 71 | m_log.DebugFormat("[LURE MODULE]: {0} enabled", Name); |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index cb09047..6f18e1c 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -180,13 +180,24 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
180 | if (!sp.Scene.Permissions.CanTeleport(sp.UUID)) | 180 | if (!sp.Scene.Permissions.CanTeleport(sp.UUID)) |
181 | return; | 181 | return; |
182 | 182 | ||
183 | // Reset animations; the viewer does that in teleports. | ||
184 | sp.Animator.ResetAnimations(); | ||
185 | |||
186 | string destinationRegionName = "(not found)"; | 183 | string destinationRegionName = "(not found)"; |
187 | 184 | ||
185 | // Record that this agent is in transit so that we can prevent simultaneous requests and do later detection | ||
186 | // of whether the destination region completes the teleport. | ||
187 | if (!m_entityTransferStateMachine.SetInTransit(sp.UUID)) | ||
188 | { | ||
189 | m_log.DebugFormat( | ||
190 | "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2}@{3} - agent is already in transit.", | ||
191 | sp.Name, sp.UUID, position, regionHandle); | ||
192 | |||
193 | return; | ||
194 | } | ||
195 | |||
188 | try | 196 | try |
189 | { | 197 | { |
198 | // Reset animations; the viewer does that in teleports. | ||
199 | sp.Animator.ResetAnimations(); | ||
200 | |||
190 | if (regionHandle == sp.Scene.RegionInfo.RegionHandle) | 201 | if (regionHandle == sp.Scene.RegionInfo.RegionHandle) |
191 | { | 202 | { |
192 | destinationRegionName = sp.Scene.RegionInfo.RegionName; | 203 | destinationRegionName = sp.Scene.RegionInfo.RegionName; |
@@ -195,12 +206,17 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
195 | } | 206 | } |
196 | else // Another region possibly in another simulator | 207 | else // Another region possibly in another simulator |
197 | { | 208 | { |
198 | GridRegion finalDestination; | 209 | GridRegion finalDestination = null; |
199 | TeleportAgentToDifferentRegion( | 210 | try |
200 | sp, regionHandle, position, lookAt, teleportFlags, out finalDestination); | 211 | { |
201 | 212 | TeleportAgentToDifferentRegion( | |
202 | if (finalDestination != null) | 213 | sp, regionHandle, position, lookAt, teleportFlags, out finalDestination); |
203 | destinationRegionName = finalDestination.RegionName; | 214 | } |
215 | finally | ||
216 | { | ||
217 | if (finalDestination != null) | ||
218 | destinationRegionName = finalDestination.RegionName; | ||
219 | } | ||
204 | } | 220 | } |
205 | } | 221 | } |
206 | catch (Exception e) | 222 | catch (Exception e) |
@@ -210,11 +226,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
210 | sp.Name, sp.AbsolutePosition, sp.Scene.RegionInfo.RegionName, position, destinationRegionName, | 226 | sp.Name, sp.AbsolutePosition, sp.Scene.RegionInfo.RegionName, position, destinationRegionName, |
211 | e.Message, e.StackTrace); | 227 | e.Message, e.StackTrace); |
212 | 228 | ||
213 | // Make sure that we clear the in-transit flag so that future teleport attempts don't always fail. | ||
214 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
215 | |||
216 | sp.ControllingClient.SendTeleportFailed("Internal error"); | 229 | sp.ControllingClient.SendTeleportFailed("Internal error"); |
217 | } | 230 | } |
231 | finally | ||
232 | { | ||
233 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
234 | } | ||
218 | } | 235 | } |
219 | 236 | ||
220 | /// <summary> | 237 | /// <summary> |
@@ -230,15 +247,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
230 | "[ENTITY TRANSFER MODULE]: Teleport for {0} to {1} within {2}", | 247 | "[ENTITY TRANSFER MODULE]: Teleport for {0} to {1} within {2}", |
231 | sp.Name, position, sp.Scene.RegionInfo.RegionName); | 248 | sp.Name, position, sp.Scene.RegionInfo.RegionName); |
232 | 249 | ||
233 | if (!m_entityTransferStateMachine.SetInTransit(sp.UUID)) | ||
234 | { | ||
235 | m_log.DebugFormat( | ||
236 | "[ENTITY TRANSFER MODULE]: Ignoring within region teleport request of {0} {1} to {2} - agent is already in transit.", | ||
237 | sp.Name, sp.UUID, position); | ||
238 | |||
239 | return; | ||
240 | } | ||
241 | |||
242 | // Teleport within the same region | 250 | // Teleport within the same region |
243 | if (IsOutsideRegion(sp.Scene, position) || position.Z < 0) | 251 | if (IsOutsideRegion(sp.Scene, position) || position.Z < 0) |
244 | { | 252 | { |
@@ -287,7 +295,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
287 | } | 295 | } |
288 | 296 | ||
289 | m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.CleaningUp); | 297 | m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.CleaningUp); |
290 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
291 | } | 298 | } |
292 | 299 | ||
293 | /// <summary> | 300 | /// <summary> |
@@ -341,7 +348,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
341 | // | 348 | // |
342 | // This is it | 349 | // This is it |
343 | // | 350 | // |
344 | DoTeleport(sp, reg, finalDestination, position, lookAt, teleportFlags); | 351 | DoTeleportInternal(sp, reg, finalDestination, position, lookAt, teleportFlags); |
345 | // | 352 | // |
346 | // | 353 | // |
347 | // | 354 | // |
@@ -396,27 +403,54 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
396 | && Math.Abs(sourceRegion.RegionLocY - destRegion.RegionCoordY) <= MaxTransferDistance; | 403 | && Math.Abs(sourceRegion.RegionLocY - destRegion.RegionCoordY) <= MaxTransferDistance; |
397 | } | 404 | } |
398 | 405 | ||
406 | /// <summary> | ||
407 | /// Wraps DoTeleportInternal() and manages the transfer state. | ||
408 | /// </summary> | ||
399 | public void DoTeleport( | 409 | public void DoTeleport( |
400 | ScenePresence sp, GridRegion reg, GridRegion finalDestination, | 410 | ScenePresence sp, GridRegion reg, GridRegion finalDestination, |
401 | Vector3 position, Vector3 lookAt, uint teleportFlags) | 411 | Vector3 position, Vector3 lookAt, uint teleportFlags) |
402 | { | 412 | { |
403 | // Record that this agent is in transit so that we can prevent simultaneous requests and do later detection | 413 | // Record that this agent is in transit so that we can prevent simultaneous requests and do later detection |
404 | // of whether the destination region completes the teleport. | 414 | // of whether the destination region completes the teleport. |
405 | m_entityTransferStateMachine.SetInTransit(sp.UUID); | 415 | if (!m_entityTransferStateMachine.SetInTransit(sp.UUID)) |
406 | // if (!m_entityTransferStateMachine.SetInTransit(sp.UUID)) | 416 | { |
407 | // { | 417 | m_log.DebugFormat( |
408 | // m_log.DebugFormat( | 418 | "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.", |
409 | // "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.", | 419 | sp.Name, sp.UUID, reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); |
410 | // sp.Name, sp.UUID, reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); | ||
411 | // | ||
412 | // return; | ||
413 | // } | ||
414 | 420 | ||
415 | if (reg == null || finalDestination == null) | 421 | return; |
422 | } | ||
423 | |||
424 | try | ||
425 | { | ||
426 | DoTeleportInternal(sp, reg, finalDestination, position, lookAt, teleportFlags); | ||
427 | } | ||
428 | catch (Exception e) | ||
429 | { | ||
430 | m_log.ErrorFormat( | ||
431 | "[ENTITY TRANSFER MODULE]: Exception on teleport of {0} from {1}@{2} to {3}@{4}: {5}{6}", | ||
432 | sp.Name, sp.AbsolutePosition, sp.Scene.RegionInfo.RegionName, position, finalDestination.RegionName, | ||
433 | e.Message, e.StackTrace); | ||
434 | |||
435 | sp.ControllingClient.SendTeleportFailed("Internal error"); | ||
436 | } | ||
437 | finally | ||
416 | { | 438 | { |
417 | sp.ControllingClient.SendTeleportFailed("Unable to locate destination"); | ||
418 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | 439 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); |
440 | } | ||
441 | } | ||
419 | 442 | ||
443 | /// <summary> | ||
444 | /// Teleports the agent to another region. | ||
445 | /// This method doesn't manage the transfer state; the caller must do that. | ||
446 | /// </summary> | ||
447 | private void DoTeleportInternal( | ||
448 | ScenePresence sp, GridRegion reg, GridRegion finalDestination, | ||
449 | Vector3 position, Vector3 lookAt, uint teleportFlags) | ||
450 | { | ||
451 | if (reg == null || finalDestination == null) | ||
452 | { | ||
453 | sp.ControllingClient.SendTeleportFailed("Unable to locate destination"); | ||
420 | return; | 454 | return; |
421 | } | 455 | } |
422 | 456 | ||
@@ -436,8 +470,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
436 | sourceRegion.RegionName, sourceRegion.RegionLocX, sourceRegion.RegionLocY, | 470 | sourceRegion.RegionName, sourceRegion.RegionLocX, sourceRegion.RegionLocY, |
437 | MaxTransferDistance)); | 471 | MaxTransferDistance)); |
438 | 472 | ||
439 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
440 | |||
441 | return; | 473 | return; |
442 | } | 474 | } |
443 | 475 | ||
@@ -455,7 +487,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
455 | if (endPoint == null || endPoint.Address == null) | 487 | if (endPoint == null || endPoint.Address == null) |
456 | { | 488 | { |
457 | sp.ControllingClient.SendTeleportFailed("Remote Region appears to be down"); | 489 | sp.ControllingClient.SendTeleportFailed("Remote Region appears to be down"); |
458 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
459 | 490 | ||
460 | return; | 491 | return; |
461 | } | 492 | } |
@@ -477,7 +508,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
477 | finalDestination, sp.ControllingClient.AgentId, Vector3.Zero, out version, out reason)) | 508 | finalDestination, sp.ControllingClient.AgentId, Vector3.Zero, out version, out reason)) |
478 | { | 509 | { |
479 | sp.ControllingClient.SendTeleportFailed(reason); | 510 | sp.ControllingClient.SendTeleportFailed(reason); |
480 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
481 | 511 | ||
482 | m_log.DebugFormat( | 512 | m_log.DebugFormat( |
483 | "[ENTITY TRANSFER MODULE]: {0} was stopped from teleporting from {1} to {2} because {3}", | 513 | "[ENTITY TRANSFER MODULE]: {0} was stopped from teleporting from {1} to {2} because {3}", |
@@ -535,7 +565,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
535 | if (!CreateAgent(sp, reg, finalDestination, agentCircuit, teleportFlags, out reason, out logout)) | 565 | if (!CreateAgent(sp, reg, finalDestination, agentCircuit, teleportFlags, out reason, out logout)) |
536 | { | 566 | { |
537 | sp.ControllingClient.SendTeleportFailed(String.Format("Teleport refused: {0}", reason)); | 567 | sp.ControllingClient.SendTeleportFailed(String.Format("Teleport refused: {0}", reason)); |
538 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
539 | 568 | ||
540 | m_log.DebugFormat( | 569 | m_log.DebugFormat( |
541 | "[ENTITY TRANSFER MODULE]: Teleport of {0} from {1} to {2} was refused because {3}", | 570 | "[ENTITY TRANSFER MODULE]: Teleport of {0} from {1} to {2} was refused because {3}", |
@@ -636,7 +665,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
636 | "[ENTITY TRANSFER MODULE]: Teleport of {0} to {1} from {2} failed due to no callback from destination region. Returning avatar to source region.", | 665 | "[ENTITY TRANSFER MODULE]: Teleport of {0} to {1} from {2} failed due to no callback from destination region. Returning avatar to source region.", |
637 | sp.Name, finalDestination.RegionName, sp.Scene.RegionInfo.RegionName); | 666 | sp.Name, finalDestination.RegionName, sp.Scene.RegionInfo.RegionName); |
638 | 667 | ||
639 | Fail(sp, finalDestination, logout); | 668 | Fail(sp, finalDestination, logout); |
640 | return; | 669 | return; |
641 | } | 670 | } |
642 | 671 | ||
@@ -689,8 +718,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
689 | // "[ENTITY TRANSFER MODULE]: User {0} is going to another region, profile cache removed", | 718 | // "[ENTITY TRANSFER MODULE]: User {0} is going to another region, profile cache removed", |
690 | // sp.UUID); | 719 | // sp.UUID); |
691 | // } | 720 | // } |
692 | |||
693 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
694 | } | 721 | } |
695 | 722 | ||
696 | protected virtual void Fail(ScenePresence sp, GridRegion finalDestination, bool logout) | 723 | protected virtual void Fail(ScenePresence sp, GridRegion finalDestination, bool logout) |
@@ -710,8 +737,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
710 | Scene.SimulationService.CloseAgent(finalDestination, sp.UUID); | 737 | Scene.SimulationService.CloseAgent(finalDestination, sp.UUID); |
711 | 738 | ||
712 | sp.Scene.EventManager.TriggerTeleportFail(sp.ControllingClient, logout); | 739 | sp.Scene.EventManager.TriggerTeleportFail(sp.ControllingClient, logout); |
713 | |||
714 | m_entityTransferStateMachine.ResetFromTransit(sp.UUID); | ||
715 | } | 740 | } |
716 | 741 | ||
717 | protected virtual bool CreateAgent(ScenePresence sp, GridRegion reg, GridRegion finalDestination, AgentCircuitData agentCircuit, uint teleportFlags, out string reason, out bool logout) | 742 | protected virtual bool CreateAgent(ScenePresence sp, GridRegion reg, GridRegion finalDestination, AgentCircuitData agentCircuit, uint teleportFlags, out string reason, out bool logout) |
@@ -1139,7 +1164,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1139 | 1164 | ||
1140 | ReInstantiateScripts(agent); | 1165 | ReInstantiateScripts(agent); |
1141 | agent.AddToPhysicalScene(isFlying); | 1166 | agent.AddToPhysicalScene(isFlying); |
1142 | m_entityTransferStateMachine.ResetFromTransit(agent.UUID); | ||
1143 | 1167 | ||
1144 | return false; | 1168 | return false; |
1145 | } | 1169 | } |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs index c439ea8..4f6b92e 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs | |||
@@ -88,11 +88,12 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
88 | IConfig thisModuleConfig = source.Configs["HGInventoryAccessModule"]; | 88 | IConfig thisModuleConfig = source.Configs["HGInventoryAccessModule"]; |
89 | if (thisModuleConfig != null) | 89 | if (thisModuleConfig != null) |
90 | { | 90 | { |
91 | m_HomeURI = Util.GetConfigVarWithDefaultSection(source, "HomeURI", "HGInventoryAccessModule"); | 91 | m_HomeURI = Util.GetConfigVarFromSections<string>(source, "HomeURI", new string[] {"Startup", "HGInventoryAccessModule"}); |
92 | m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true); | 92 | m_ThisGatekeeper = Util.GetConfigVarFromSections<string>(source, "GatekeeperURI", new string[] {"Startup", "HGInventoryAccessModule"}); |
93 | m_ThisGatekeeper = Util.GetConfigVarWithDefaultSection(source, "GatekeeperURI", "HGInventoryAccessModule"); | ||
94 | // Legacy. Renove soon! | 93 | // Legacy. Renove soon! |
95 | m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", m_ThisGatekeeper); | 94 | m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", m_ThisGatekeeper); |
95 | |||
96 | m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true); | ||
96 | m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", true); | 97 | m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", true); |
97 | } | 98 | } |
98 | else | 99 | else |
diff --git a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs index 13d9d31..e8bf194 100644 --- a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs +++ b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs | |||
@@ -113,7 +113,7 @@ namespace OpenSim.Region.DataSnapshot | |||
113 | try | 113 | try |
114 | { | 114 | { |
115 | m_enabled = config.Configs["DataSnapshot"].GetBoolean("index_sims", m_enabled); | 115 | m_enabled = config.Configs["DataSnapshot"].GetBoolean("index_sims", m_enabled); |
116 | string gatekeeper = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", "GridService"); | 116 | string gatekeeper = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup", "GridService"}); |
117 | // Legacy. Remove soon! | 117 | // Legacy. Remove soon! |
118 | if (string.IsNullOrEmpty(gatekeeper)) | 118 | if (string.IsNullOrEmpty(gatekeeper)) |
119 | { | 119 | { |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 9bc9c2d..f2aa0c5 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -703,6 +703,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
703 | 703 | ||
704 | private bool m_inTransit; | 704 | private bool m_inTransit; |
705 | 705 | ||
706 | /// <summary> | ||
707 | /// This signals whether the presence is in transit between neighbouring regions. | ||
708 | /// </summary> | ||
709 | /// <remarks> | ||
710 | /// It is not set when the presence is teleporting or logging in/out directly to a region. | ||
711 | /// </remarks> | ||
706 | public bool IsInTransit | 712 | public bool IsInTransit |
707 | { | 713 | { |
708 | get { return m_inTransit; } | 714 | get { return m_inTransit; } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index d64e6d7..4c018d4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2173,7 +2173,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2173 | m_host.AddScriptLPS(1); | 2173 | m_host.AddScriptLPS(1); |
2174 | 2174 | ||
2175 | IConfigSource config = m_ScriptEngine.ConfigSource; | 2175 | IConfigSource config = m_ScriptEngine.ConfigSource; |
2176 | string HomeURI = Util.GetConfigVarWithDefaultSection(config, "HomeURI", string.Empty); | 2176 | string HomeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI", new string[]{"Startup"}); |
2177 | 2177 | ||
2178 | if (!string.IsNullOrEmpty(HomeURI)) | 2178 | if (!string.IsNullOrEmpty(HomeURI)) |
2179 | return HomeURI; | 2179 | return HomeURI; |
@@ -2194,7 +2194,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2194 | m_host.AddScriptLPS(1); | 2194 | m_host.AddScriptLPS(1); |
2195 | 2195 | ||
2196 | IConfigSource config = m_ScriptEngine.ConfigSource; | 2196 | IConfigSource config = m_ScriptEngine.ConfigSource; |
2197 | string gatekeeperURI = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", string.Empty); | 2197 | string gatekeeperURI = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup"}); |
2198 | 2198 | ||
2199 | if (!string.IsNullOrEmpty(gatekeeperURI)) | 2199 | if (!string.IsNullOrEmpty(gatekeeperURI)) |
2200 | return gatekeeperURI; | 2200 | return gatekeeperURI; |
diff --git a/OpenSim/Server/Handlers/Grid/GridInfoHandlers.cs b/OpenSim/Server/Handlers/Grid/GridInfoHandlers.cs index 35f86c5..d85aab0 100644 --- a/OpenSim/Server/Handlers/Grid/GridInfoHandlers.cs +++ b/OpenSim/Server/Handlers/Grid/GridInfoHandlers.cs | |||
@@ -177,7 +177,7 @@ namespace OpenSim.Server.Handlers.Grid | |||
177 | map[k] = OSD.FromString(_info[k].ToString()); | 177 | map[k] = OSD.FromString(_info[k].ToString()); |
178 | } | 178 | } |
179 | 179 | ||
180 | string HomeURI = Util.GetConfigVarWithDefaultSection(m_Config, "HomeURI", string.Empty); | 180 | string HomeURI = Util.GetConfigVarFromSections<string>(m_Config, "HomeURI", new string[] {"Startup"}); |
181 | 181 | ||
182 | if (!String.IsNullOrEmpty(HomeURI)) | 182 | if (!String.IsNullOrEmpty(HomeURI)) |
183 | map["home"] = OSD.FromString(HomeURI); | 183 | map["home"] = OSD.FromString(HomeURI); |
diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs index 3e7c556..80575ee 100644 --- a/OpenSim/Services/GridService/HypergridLinker.cs +++ b/OpenSim/Services/GridService/HypergridLinker.cs | |||
@@ -128,7 +128,7 @@ namespace OpenSim.Services.GridService | |||
128 | 128 | ||
129 | m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles"); | 129 | m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles"); |
130 | 130 | ||
131 | m_ThisGatekeeper = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", "GridService"); | 131 | m_ThisGatekeeper = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup", "GridService"}); |
132 | // Legacy. Remove soon! | 132 | // Legacy. Remove soon! |
133 | m_ThisGatekeeper = gridConfig.GetString("Gatekeeper", m_ThisGatekeeper); | 133 | m_ThisGatekeeper = gridConfig.GetString("Gatekeeper", m_ThisGatekeeper); |
134 | try | 134 | try |
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs index 21f363c..c41d952 100644 --- a/OpenSim/Services/HypergridService/GatekeeperService.cs +++ b/OpenSim/Services/HypergridService/GatekeeperService.cs | |||
@@ -96,7 +96,7 @@ namespace OpenSim.Services.HypergridService | |||
96 | UUID.TryParse(scope, out m_ScopeID); | 96 | UUID.TryParse(scope, out m_ScopeID); |
97 | //m_WelcomeMessage = serverConfig.GetString("WelcomeMessage", "Welcome to OpenSim!"); | 97 | //m_WelcomeMessage = serverConfig.GetString("WelcomeMessage", "Welcome to OpenSim!"); |
98 | m_AllowTeleportsToAnyRegion = serverConfig.GetBoolean("AllowTeleportsToAnyRegion", true); | 98 | m_AllowTeleportsToAnyRegion = serverConfig.GetBoolean("AllowTeleportsToAnyRegion", true); |
99 | m_ExternalName = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", "GatekeeperService"); | 99 | m_ExternalName = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup", "GatekeeperService"}); |
100 | m_ExternalName = serverConfig.GetString("ExternalName", m_ExternalName); | 100 | m_ExternalName = serverConfig.GetString("ExternalName", m_ExternalName); |
101 | if (m_ExternalName != string.Empty && !m_ExternalName.EndsWith("/")) | 101 | if (m_ExternalName != string.Empty && !m_ExternalName.EndsWith("/")) |
102 | m_ExternalName = m_ExternalName + "/"; | 102 | m_ExternalName = m_ExternalName + "/"; |
diff --git a/OpenSim/Services/HypergridService/HGInventoryService.cs b/OpenSim/Services/HypergridService/HGInventoryService.cs index a9661f4..17e83cc 100644 --- a/OpenSim/Services/HypergridService/HGInventoryService.cs +++ b/OpenSim/Services/HypergridService/HGInventoryService.cs | |||
@@ -81,7 +81,7 @@ namespace OpenSim.Services.HypergridService | |||
81 | if (m_UserAccountService == null) | 81 | if (m_UserAccountService == null) |
82 | throw new Exception(String.Format("Unable to create UserAccountService from {0}", userAccountsDll)); | 82 | throw new Exception(String.Format("Unable to create UserAccountService from {0}", userAccountsDll)); |
83 | 83 | ||
84 | m_HomeURL = Util.GetConfigVarWithDefaultSection(config, "HomeURI", m_ConfigName); | 84 | m_HomeURL = Util.GetConfigVarFromSections<string>(config, "HomeURI", new string[] {"Startup", m_ConfigName}); |
85 | 85 | ||
86 | m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService); | 86 | m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService); |
87 | } | 87 | } |
diff --git a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs index dd546b8..776bf0c 100644 --- a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs +++ b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs | |||
@@ -96,7 +96,7 @@ namespace OpenSim.Services.HypergridService | |||
96 | if (m_AvatarService == null) | 96 | if (m_AvatarService == null) |
97 | throw new Exception(String.Format("Unable to create m_AvatarService from {0}", avatarDll)); | 97 | throw new Exception(String.Format("Unable to create m_AvatarService from {0}", avatarDll)); |
98 | 98 | ||
99 | m_HomeURL = Util.GetConfigVarWithDefaultSection(config, "HomeURI", m_ConfigName); | 99 | m_HomeURL = Util.GetConfigVarFromSections<string>(config, "HomeURI", new string[] {"Startup", m_ConfigName}); |
100 | 100 | ||
101 | // m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService); | 101 | // m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService); |
102 | } | 102 | } |
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs index c810b35..95876b8 100644 --- a/OpenSim/Services/HypergridService/UserAgentService.cs +++ b/OpenSim/Services/HypergridService/UserAgentService.cs | |||
@@ -131,7 +131,7 @@ namespace OpenSim.Services.HypergridService | |||
131 | LoadDomainExceptionsFromConfig(serverConfig, "AllowExcept", m_TripsAllowedExceptions); | 131 | LoadDomainExceptionsFromConfig(serverConfig, "AllowExcept", m_TripsAllowedExceptions); |
132 | LoadDomainExceptionsFromConfig(serverConfig, "DisallowExcept", m_TripsDisallowedExceptions); | 132 | LoadDomainExceptionsFromConfig(serverConfig, "DisallowExcept", m_TripsDisallowedExceptions); |
133 | 133 | ||
134 | m_GridName = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", "UserAgentService"); | 134 | m_GridName = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup", "UserAgentService"}); |
135 | if (string.IsNullOrEmpty(m_GridName)) // Legacy. Remove soon. | 135 | if (string.IsNullOrEmpty(m_GridName)) // Legacy. Remove soon. |
136 | { | 136 | { |
137 | m_GridName = serverConfig.GetString("ExternalName", string.Empty); | 137 | m_GridName = serverConfig.GetString("ExternalName", string.Empty); |
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 88e9eef..67f26c8 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -110,7 +110,7 @@ namespace OpenSim.Services.LLLoginService | |||
110 | m_RequireInventory = m_LoginServerConfig.GetBoolean("RequireInventory", true); | 110 | m_RequireInventory = m_LoginServerConfig.GetBoolean("RequireInventory", true); |
111 | m_AllowRemoteSetLoginLevel = m_LoginServerConfig.GetBoolean("AllowRemoteSetLoginLevel", false); | 111 | m_AllowRemoteSetLoginLevel = m_LoginServerConfig.GetBoolean("AllowRemoteSetLoginLevel", false); |
112 | m_MinLoginLevel = m_LoginServerConfig.GetInt("MinLoginLevel", 0); | 112 | m_MinLoginLevel = m_LoginServerConfig.GetInt("MinLoginLevel", 0); |
113 | m_GatekeeperURL = Util.GetConfigVarWithDefaultSection(config, "GatekeeperURI", "LoginService"); | 113 | m_GatekeeperURL = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI", new string[] {"Startup", "LoginService"}); |
114 | m_MapTileURL = m_LoginServerConfig.GetString("MapTileURL", string.Empty); | 114 | m_MapTileURL = m_LoginServerConfig.GetString("MapTileURL", string.Empty); |
115 | m_ProfileURL = m_LoginServerConfig.GetString("ProfileServerURL", string.Empty); | 115 | m_ProfileURL = m_LoginServerConfig.GetString("ProfileServerURL", string.Empty); |
116 | m_OpenIDURL = m_LoginServerConfig.GetString("OpenIDServerURL", String.Empty); | 116 | m_OpenIDURL = m_LoginServerConfig.GetString("OpenIDServerURL", String.Empty); |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index c8c5ed3..b55ba0d 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -954,8 +954,13 @@ | |||
954 | ; StorageProvider = OpenSim.Data.MySQL.dll | 954 | ; StorageProvider = OpenSim.Data.MySQL.dll |
955 | 955 | ||
956 | ;# {ServicesConnectorModule} {Module:GroupsModule Module:Groups Module V2} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector "Groups Local Service Connector" "Groups Remote Service Connector" "Groups HG Service Connector"} XmlRpcGroupsServicesConnector | 956 | ;# {ServicesConnectorModule} {Module:GroupsModule Module:Groups Module V2} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector "Groups Local Service Connector" "Groups Remote Service Connector" "Groups HG Service Connector"} XmlRpcGroupsServicesConnector |
957 | ;; Service connectors to the Groups Service as used in the GroupsModule. Select one depending on | 957 | ;; Service connectors to the Groups Service as used in the GroupsModule. Select one as follows: |
958 | ;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend or several flavours of V2, Hypergrided or not, standalone or grided. | 958 | ;; -- for Flotsam Groups use XmlRpcGroupsServicesConnector |
959 | ;; -- for Simian Groups use SimianGroupsServicesConnector | ||
960 | ;; -- for V2 Groups, standalone, non-HG use "Groups Local Service Connector" | ||
961 | ;; -- for V2 Groups, grided sim, non-HG use "Groups Remote Service Connector" | ||
962 | ;; -- for V2 Groups, HG, both standalone and grided sim, use "Groups HG Service Connector" | ||
963 | ;; Note that the quotes "" around the words are important! | ||
959 | ; ServicesConnectorModule = XmlRpcGroupsServicesConnector | 964 | ; ServicesConnectorModule = XmlRpcGroupsServicesConnector |
960 | 965 | ||
961 | ;# {LocalService} {ServicesConnectorModule:Groups HG Service Connector} {Is the group service in this process or elsewhere?} {local remote} local | 966 | ;# {LocalService} {ServicesConnectorModule:Groups HG Service Connector} {Is the group service in this process or elsewhere?} {local remote} local |
@@ -967,6 +972,7 @@ | |||
967 | ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc | 972 | ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc |
968 | ;; or http://mygridserver.com:82/Grid/ for SimianGrid | 973 | ;; or http://mygridserver.com:82/Grid/ for SimianGrid |
969 | ;; or http:://mygridserver.com:8003 for robust, V2 | 974 | ;; or http:://mygridserver.com:8003 for robust, V2 |
975 | ;; Leave it commented for standalones, V2 | ||
970 | ; GroupsServerURI = "" | 976 | ; GroupsServerURI = "" |
971 | 977 | ||
972 | ;# {HomeURI} {ServicesConnectorModule:Groups HG Service Connector} {What's the home address of this world?} {} | 978 | ;# {HomeURI} {ServicesConnectorModule:Groups HG Service Connector} {What's the home address of this world?} {} |
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example index 274132e..445020f 100644 --- a/bin/Robust.HG.ini.example +++ b/bin/Robust.HG.ini.example | |||
@@ -80,7 +80,7 @@ InstantMessageServerConnector = "8002/OpenSim.Server.Handlers.dll:InstantMessage | |||
80 | HGInventoryServiceConnector = "HGInventoryService@8002/OpenSim.Server.Handlers.dll:XInventoryInConnector" | 80 | HGInventoryServiceConnector = "HGInventoryService@8002/OpenSim.Server.Handlers.dll:XInventoryInConnector" |
81 | HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:AssetServiceConnector" | 81 | HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:AssetServiceConnector" |
82 | ;; Uncomment this if you want Groups V2, HG to work | 82 | ;; Uncomment this if you want Groups V2, HG to work |
83 | ; HGGroupsServiceConnector = "8002/Diva.Groups.dll:HGGroupsServiceRobustConnector" | 83 | ; HGGroupsServiceConnector = "8002/OpenSim.Addons.Groups.dll:HGGroupsServiceRobustConnector" |
84 | 84 | ||
85 | ;; Additions for other add-on modules. For example: | 85 | ;; Additions for other add-on modules. For example: |
86 | ;; WifiServerConnector = "8002/Diva.Wifi.dll:WifiServerConnector" | 86 | ;; WifiServerConnector = "8002/Diva.Wifi.dll:WifiServerConnector" |
diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example index ecbed1f..bb98bbf 100644 --- a/bin/Robust.ini.example +++ b/bin/Robust.ini.example | |||
@@ -381,3 +381,5 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto | |||
381 | 381 | ||
382 | ; password help: optional: page providing password assistance for users of your grid | 382 | ; password help: optional: page providing password assistance for users of your grid |
383 | ;password = http://127.0.0.1/password | 383 | ;password = http://127.0.0.1/password |
384 | |||
385 | |||