diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
3 files changed, 78 insertions, 30 deletions
diff --git a/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs b/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs index fb293e8..1e430e5 100644 --- a/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs +++ b/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs | |||
@@ -244,6 +244,19 @@ namespace OpenSim.Region.CoreModules.Communications.Local | |||
244 | return false; | 244 | return false; |
245 | } | 245 | } |
246 | 246 | ||
247 | public bool SendCreateObject(ulong regionHandle, UUID userID, UUID itemID) | ||
248 | { | ||
249 | foreach (Scene s in m_sceneList) | ||
250 | { | ||
251 | if (s.RegionInfo.RegionHandle == regionHandle) | ||
252 | { | ||
253 | return s.IncomingCreateObject(userID, itemID); | ||
254 | } | ||
255 | } | ||
256 | return false; | ||
257 | } | ||
258 | |||
259 | |||
247 | /** | 260 | /** |
248 | * Region-related communications | 261 | * Region-related communications |
249 | */ | 262 | */ |
diff --git a/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs b/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs index b507bdd..90104f2 100644 --- a/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs +++ b/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs | |||
@@ -276,6 +276,12 @@ namespace OpenSim.Region.CoreModules.Communications.REST | |||
276 | return false; | 276 | return false; |
277 | } | 277 | } |
278 | 278 | ||
279 | public bool SendCreateObject(ulong regionHandle, UUID userID, UUID itemID) | ||
280 | { | ||
281 | // Not Implemented | ||
282 | return false; | ||
283 | } | ||
284 | |||
279 | /** | 285 | /** |
280 | * Region-related communications | 286 | * Region-related communications |
281 | */ | 287 | */ |
@@ -527,13 +533,13 @@ namespace OpenSim.Region.CoreModules.Communications.REST | |||
527 | 533 | ||
528 | public Hashtable ObjectHandler(Hashtable request) | 534 | public Hashtable ObjectHandler(Hashtable request) |
529 | { | 535 | { |
530 | //m_log.Debug("[CONNECTION DEBUGGING]: ObjectHandler Called"); | 536 | m_log.Debug("[CONNECTION DEBUGGING]: ObjectHandler Called"); |
531 | 537 | ||
532 | //m_log.Debug("---------------------------"); | 538 | m_log.Debug("---------------------------"); |
533 | //m_log.Debug(" >> uri=" + request["uri"]); | 539 | m_log.Debug(" >> uri=" + request["uri"]); |
534 | //m_log.Debug(" >> content-type=" + request["content-type"]); | 540 | m_log.Debug(" >> content-type=" + request["content-type"]); |
535 | //m_log.Debug(" >> http-method=" + request["http-method"]); | 541 | m_log.Debug(" >> http-method=" + request["http-method"]); |
536 | //m_log.Debug("---------------------------\n"); | 542 | m_log.Debug("---------------------------\n"); |
537 | 543 | ||
538 | Hashtable responsedata = new Hashtable(); | 544 | Hashtable responsedata = new Hashtable(); |
539 | responsedata["content_type"] = "text/html"; | 545 | responsedata["content_type"] = "text/html"; |
@@ -557,11 +563,11 @@ namespace OpenSim.Region.CoreModules.Communications.REST | |||
557 | DoObjectPost(request, responsedata, regionHandle); | 563 | DoObjectPost(request, responsedata, regionHandle); |
558 | return responsedata; | 564 | return responsedata; |
559 | } | 565 | } |
560 | //else if (method.Equals("PUT")) | 566 | else if (method.Equals("PUT")) |
561 | //{ | 567 | { |
562 | // DoObjectPut(request, responsedata, agentID); | 568 | DoObjectPut(request, responsedata, regionHandle); |
563 | // return responsedata; | 569 | return responsedata; |
564 | //} | 570 | } |
565 | //else if (method.Equals("DELETE")) | 571 | //else if (method.Equals("DELETE")) |
566 | //{ | 572 | //{ |
567 | // DoObjectDelete(request, responsedata, agentID, action, regionHandle); | 573 | // DoObjectDelete(request, responsedata, agentID, action, regionHandle); |
@@ -632,6 +638,31 @@ namespace OpenSim.Region.CoreModules.Communications.REST | |||
632 | responsedata["str_response_string"] = result.ToString(); | 638 | responsedata["str_response_string"] = result.ToString(); |
633 | } | 639 | } |
634 | 640 | ||
641 | protected virtual void DoObjectPut(Hashtable request, Hashtable responsedata, ulong regionhandle) | ||
642 | { | ||
643 | OSDMap args = RegionClient.GetOSDMap((string)request["body"]); | ||
644 | if (args == null) | ||
645 | { | ||
646 | responsedata["int_response_code"] = 400; | ||
647 | responsedata["str_response_string"] = "false"; | ||
648 | return; | ||
649 | } | ||
650 | |||
651 | UUID userID = UUID.Zero, itemID = UUID.Zero; | ||
652 | if (args["userid"] != null) | ||
653 | userID = args["userid"].AsUUID(); | ||
654 | if (args["itemid"] != null) | ||
655 | itemID = args["itemid"].AsUUID(); | ||
656 | |||
657 | UUID regionID = m_localBackend.GetRegionID(regionhandle); | ||
658 | |||
659 | // This is the meaning of PUT object | ||
660 | bool result = m_localBackend.SendCreateObject(regionhandle, userID, itemID); | ||
661 | |||
662 | responsedata["int_response_code"] = 200; | ||
663 | responsedata["str_response_string"] = result.ToString(); | ||
664 | } | ||
665 | |||
635 | /* | 666 | /* |
636 | * Region-related incoming calls | 667 | * Region-related incoming calls |
637 | * | 668 | * |
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryModule.cs index 741075c..3675583 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneInventoryModule.cs | |||
@@ -54,6 +54,7 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
54 | 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 static bool initialized = false; | 55 | private static bool initialized = false; |
56 | private static bool enabled = false; | 56 | private static bool enabled = false; |
57 | private static bool safemode = false; | ||
57 | 58 | ||
58 | private bool m_doLookup = false; | 59 | private bool m_doLookup = false; |
59 | Scene m_scene; | 60 | Scene m_scene; |
@@ -77,6 +78,8 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
77 | 78 | ||
78 | // This module is only on for standalones | 79 | // This module is only on for standalones |
79 | enabled = !config.Configs["Startup"].GetBoolean("gridmode", true) && config.Configs["Startup"].GetBoolean("hypergrid", false); | 80 | enabled = !config.Configs["Startup"].GetBoolean("gridmode", true) && config.Configs["Startup"].GetBoolean("hypergrid", false); |
81 | if (config.Configs["Hypergrid"] != null) | ||
82 | safemode = config.Configs["Hypergrid"].GetBoolean("safemode", false); | ||
80 | } | 83 | } |
81 | } | 84 | } |
82 | 85 | ||
@@ -116,34 +119,35 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
116 | 119 | ||
117 | public virtual void AddHttpHandlers(IHttpServer httpServer) | 120 | public virtual void AddHttpHandlers(IHttpServer httpServer) |
118 | { | 121 | { |
119 | 122 | if (!safemode) | |
120 | httpServer.AddStreamHandler( | 123 | { |
121 | new RestDeserialiseSecureHandler<Guid, InventoryCollection>( | 124 | httpServer.AddStreamHandler( |
122 | "POST", "/GetInventory/", m_inventoryService.GetUserInventory, CheckAuthSession)); | 125 | new RestDeserialiseSecureHandler<Guid, InventoryCollection>( |
126 | "POST", "/GetInventory/", m_inventoryService.GetUserInventory, CheckAuthSession)); | ||
127 | httpServer.AddStreamHandler( | ||
128 | new RestDeserialiseSecureHandler<InventoryItemBase, bool>( | ||
129 | "POST", "/DeleteItem/", m_inventoryBase.DeleteItem, CheckAuthSession)); | ||
130 | httpServer.AddStreamHandler( | ||
131 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | ||
132 | "POST", "/UpdateFolder/", m_inventoryBase.UpdateFolder, CheckAuthSession)); | ||
133 | |||
134 | httpServer.AddStreamHandler( | ||
135 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | ||
136 | "POST", "/MoveFolder/", m_inventoryBase.MoveFolder, CheckAuthSession)); | ||
137 | |||
138 | httpServer.AddStreamHandler( | ||
139 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | ||
140 | "POST", "/PurgeFolder/", m_inventoryBase.PurgeFolder, CheckAuthSession)); | ||
141 | } | ||
123 | 142 | ||
124 | httpServer.AddStreamHandler( | 143 | httpServer.AddStreamHandler( |
125 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | 144 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( |
126 | "POST", "/NewFolder/", m_inventoryBase.AddFolder, CheckAuthSession)); | 145 | "POST", "/NewFolder/", m_inventoryBase.AddFolder, CheckAuthSession)); |
127 | 146 | ||
128 | httpServer.AddStreamHandler( | 147 | httpServer.AddStreamHandler( |
129 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | ||
130 | "POST", "/UpdateFolder/", m_inventoryBase.UpdateFolder, CheckAuthSession)); | ||
131 | |||
132 | httpServer.AddStreamHandler( | ||
133 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | ||
134 | "POST", "/MoveFolder/", m_inventoryBase.MoveFolder, CheckAuthSession)); | ||
135 | |||
136 | httpServer.AddStreamHandler( | ||
137 | new RestDeserialiseSecureHandler<InventoryFolderBase, bool>( | ||
138 | "POST", "/PurgeFolder/", m_inventoryBase.PurgeFolder, CheckAuthSession)); | ||
139 | |||
140 | httpServer.AddStreamHandler( | ||
141 | new RestDeserialiseSecureHandler<InventoryItemBase, bool>( | 148 | new RestDeserialiseSecureHandler<InventoryItemBase, bool>( |
142 | "POST", "/NewItem/", m_inventoryBase.AddItem, CheckAuthSession)); | 149 | "POST", "/NewItem/", m_inventoryBase.AddItem, CheckAuthSession)); |
143 | 150 | ||
144 | httpServer.AddStreamHandler( | ||
145 | new RestDeserialiseSecureHandler<InventoryItemBase, bool>( | ||
146 | "POST", "/DeleteItem/", m_inventoryBase.DeleteItem, CheckAuthSession)); | ||
147 | 151 | ||
148 | } | 152 | } |
149 | 153 | ||