diff options
Moved prim crossing out of OGS1 and into RESTComms and LocalInterregionComms. This breaks interregion comms with older versions in what concerns prim crossing. In the process of moving the comms, a few things seem to be working better, namely this may address mantis #3011, mantis #1698. Hopefully, this doesn't break anything else. But I'm still seeing weirdnesses with attchments jumping out of place after a cross/TP.
The two most notable changes in the crossing process were:
* Object gets passed in only one message, not two as done before.
* Local object crossings do not get serialized, as done before.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/Communications/Local')
-rw-r--r-- | OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs b/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs index cb60d3f..33ccbf4 100644 --- a/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs +++ b/OpenSim/Region/Environment/Modules/Communications/Local/LocalInterregionComms.cs | |||
@@ -116,6 +116,10 @@ namespace OpenSim.Region.Environment.Modules.Communications.Local | |||
116 | 116 | ||
117 | #region IInterregionComms | 117 | #region IInterregionComms |
118 | 118 | ||
119 | /** | ||
120 | * Agent-related communications | ||
121 | */ | ||
122 | |||
119 | public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit) | 123 | public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit) |
120 | { | 124 | { |
121 | foreach (Scene s in m_sceneList) | 125 | foreach (Scene s in m_sceneList) |
@@ -204,6 +208,37 @@ namespace OpenSim.Region.Environment.Modules.Communications.Local | |||
204 | return false; | 208 | return false; |
205 | } | 209 | } |
206 | 210 | ||
211 | /** | ||
212 | * Object-related communications | ||
213 | */ | ||
214 | |||
215 | public bool SendCreateObject(ulong regionHandle, ISceneObject sog) | ||
216 | { | ||
217 | foreach (Scene s in m_sceneList) | ||
218 | { | ||
219 | if (s.RegionInfo.RegionHandle == regionHandle) | ||
220 | { | ||
221 | //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject"); | ||
222 | return s.IncomingCreateObject(sog); | ||
223 | } | ||
224 | } | ||
225 | return false; | ||
226 | } | ||
227 | |||
207 | #endregion /* IInterregionComms */ | 228 | #endregion /* IInterregionComms */ |
229 | |||
230 | #region Misc | ||
231 | |||
232 | public UUID GetRegionID(ulong regionhandle) | ||
233 | { | ||
234 | foreach (Scene s in m_sceneList) | ||
235 | { | ||
236 | if (s.RegionInfo.RegionHandle == regionhandle) | ||
237 | return s.RegionInfo.RegionID; | ||
238 | } | ||
239 | // ? weird. should not happen | ||
240 | return m_sceneList[0].RegionInfo.RegionID; | ||
241 | } | ||
242 | #endregion | ||
208 | } | 243 | } |
209 | } | 244 | } |