aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Communications
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs15
-rw-r--r--OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs6
2 files changed, 15 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs b/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
index 48f737e..6e813f4 100644
--- a/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
+++ b/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
@@ -204,15 +204,24 @@ namespace OpenSim.Region.CoreModules.Communications.Local
204 * Object-related communications 204 * Object-related communications
205 */ 205 */
206 206
207 public bool SendCreateObject(ulong regionHandle, ISceneObject sog) 207 public bool SendCreateObject(ulong regionHandle, ISceneObject sog, bool isLocalCall)
208 { 208 {
209 foreach (Scene s in m_sceneList) 209 foreach (Scene s in m_sceneList)
210 { 210 {
211 if (s.RegionInfo.RegionHandle == regionHandle) 211 if (s.RegionInfo.RegionHandle == regionHandle)
212 { 212 {
213 //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject"); 213 //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject");
214 ISceneObject sogClone = sog.CloneForNewScene(); 214 if (isLocalCall)
215 return s.IncomingCreateObject(sogClone); 215 {
216 // We need to make a local copy of the object
217 ISceneObject sogClone = sog.CloneForNewScene();
218 return s.IncomingCreateObject(sogClone);
219 }
220 else
221 {
222 // Use the object as it came through the wire
223 return s.IncomingCreateObject(sog);
224 }
216 } 225 }
217 } 226 }
218 return false; 227 return false;
diff --git a/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs b/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs
index afc3441..f533553 100644
--- a/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs
+++ b/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs
@@ -214,10 +214,10 @@ namespace OpenSim.Region.CoreModules.Communications.REST
214 * Object-related communications 214 * Object-related communications
215 */ 215 */
216 216
217 public bool SendCreateObject(ulong regionHandle, ISceneObject sog) 217 public bool SendCreateObject(ulong regionHandle, ISceneObject sog, bool isLocalCall)
218 { 218 {
219 // Try local first 219 // Try local first
220 if (m_localBackend.SendCreateObject(regionHandle, sog)) 220 if (m_localBackend.SendCreateObject(regionHandle, sog, true))
221 { 221 {
222 //m_log.Debug("[REST COMMS]: LocalBackEnd SendCreateObject succeeded"); 222 //m_log.Debug("[REST COMMS]: LocalBackEnd SendCreateObject succeeded");
223 return true; 223 return true;
@@ -865,7 +865,7 @@ namespace OpenSim.Region.CoreModules.Communications.REST
865 } 865 }
866 } 866 }
867 // This is the meaning of POST object 867 // This is the meaning of POST object
868 bool result = m_localBackend.SendCreateObject(regionhandle, sog); 868 bool result = m_localBackend.SendCreateObject(regionhandle, sog, false);
869 869
870 responsedata["int_response_code"] = 200; 870 responsedata["int_response_code"] = 200;
871 responsedata["str_response_string"] = result.ToString(); 871 responsedata["str_response_string"] = result.ToString();