aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2010-12-07 01:07:13 +0100
committerMelanie2010-12-07 01:07:13 +0100
commitb960a05e67b4aed543e37f4e041f0d5e5cc2d7c0 (patch)
tree55378d0b16a268c79f1e8c531d9e0525efee1240
parentLock the attachments dict so it doesn't get out of sync when iterating (diff)
downloadopensim-SC_OLD-b960a05e67b4aed543e37f4e041f0d5e5cc2d7c0.zip
opensim-SC_OLD-b960a05e67b4aed543e37f4e041f0d5e5cc2d7c0.tar.gz
opensim-SC_OLD-b960a05e67b4aed543e37f4e041f0d5e5cc2d7c0.tar.bz2
opensim-SC_OLD-b960a05e67b4aed543e37f4e041f0d5e5cc2d7c0.tar.xz
Cowardly refuse to keep running when no application plugins are loaded.
Prevents empty instances from hanging around when Mono.Addins messes up
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs6
-rw-r--r--OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs6
-rw-r--r--OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs18
3 files changed, 27 insertions, 3 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 6a7272d..941472b 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -222,6 +222,12 @@ namespace OpenSim
222 m_moduleLoader = new ModuleLoader(m_config.Source); 222 m_moduleLoader = new ModuleLoader(m_config.Source);
223 223
224 LoadPlugins(); 224 LoadPlugins();
225
226 if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch!
227 {
228 Environment.Exit(1);
229 }
230
225 foreach (IApplicationPlugin plugin in m_plugins) 231 foreach (IApplicationPlugin plugin in m_plugins)
226 { 232 {
227 plugin.PostInitialise(); 233 plugin.PostInitialise();
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs
index 85e1c99..d7f3f2c 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs
@@ -167,6 +167,9 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
167 { 167 {
168 if (XferUploaders.ContainsKey(transactionID)) 168 if (XferUploaders.ContainsKey(transactionID))
169 { 169 {
170 m_log.DebugFormat("[XFER]: Asked to update item {0} ({1})",
171 item.Name, item.ID);
172
170 // Here we need to get the old asset to extract the 173 // Here we need to get the old asset to extract the
171 // texture UUIDs if it's a wearable. 174 // texture UUIDs if it's a wearable.
172 if (item.AssetType == (int)AssetType.Bodypart || 175 if (item.AssetType == (int)AssetType.Bodypart ||
@@ -191,6 +194,9 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
191 194
192 IInventoryService invService = m_Scene.InventoryService; 195 IInventoryService invService = m_Scene.InventoryService;
193 invService.UpdateItem(item); 196 invService.UpdateItem(item);
197
198 m_log.DebugFormat("[XFER]: Updated item {0} ({1}) with asset {2}",
199 item.Name, item.ID, asset.FullID);
194 } 200 }
195 } 201 }
196 } 202 }
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
index b8c8c85..a5dcdcc 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
@@ -40,7 +40,12 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
40 public class AssetXferUploader 40 public class AssetXferUploader
41 { 41 {
42 // Viewer's notion of the default texture 42 // Viewer's notion of the default texture
43 private UUID defaultID = new UUID("5748decc-f629-461c-9a36-a35a221fe21f"); 43 private List<UUID> defaultIDs = new List<UUID> {
44 new UUID("5748decc-f629-461c-9a36-a35a221fe21f"),
45 new UUID("7ca39b4c-bd19-4699-aff7-f93fd03d3e7b"),
46 new UUID("6522e74d-1660-4e7f-b601-6f48c1659a77"),
47 new UUID("c228d1cf-4b5d-4ba8-84f4-899a0796aa97")
48 };
44 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 49 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
45 50
46 private AssetBase m_asset; 51 private AssetBase m_asset;
@@ -244,6 +249,9 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
244 item.Flags = (uint) wearableType; 249 item.Flags = (uint) wearableType;
245 item.CreationDate = Util.UnixTimeSinceEpoch(); 250 item.CreationDate = Util.UnixTimeSinceEpoch();
246 251
252 m_log.DebugFormat("[XFER]: Created item {0} with asset {1}",
253 item.ID, item.AssetID);
254
247 if (m_Scene.AddInventoryItem(item)) 255 if (m_Scene.AddInventoryItem(item))
248 ourClient.SendInventoryItemCreateUpdate(item, callbackID); 256 ourClient.SendInventoryItemCreateUpdate(item, callbackID);
249 else 257 else
@@ -280,7 +288,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
280 UUID tx = new UUID(parts[1]); 288 UUID tx = new UUID(parts[1]);
281 int id = Convert.ToInt32(parts[0]); 289 int id = Convert.ToInt32(parts[0]);
282 290
283 if (tx == defaultID || tx == UUID.Zero || 291 if (defaultIDs.Contains(tx) || tx == UUID.Zero ||
284 (allowed.ContainsKey(id) && allowed[id] == tx)) 292 (allowed.ContainsKey(id) && allowed[id] == tx))
285 { 293 {
286 validated.Add(parts[0] + " " + tx.ToString()); 294 validated.Add(parts[0] + " " + tx.ToString());
@@ -293,7 +301,11 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
293 if ((perms & full) != full) 301 if ((perms & full) != full)
294 { 302 {
295 m_log.ErrorFormat("[ASSET UPLOADER]: REJECTED update with texture {0} from {1} because they do not own the texture", tx, ourClient.AgentId); 303 m_log.ErrorFormat("[ASSET UPLOADER]: REJECTED update with texture {0} from {1} because they do not own the texture", tx, ourClient.AgentId);
296 validated.Add(parts[0] + " " + defaultID.ToString()); 304 validated.Add(parts[0] + " " + UUID.Zero.ToString());
305 }
306 else
307 {
308 validated.Add(line);
297 } 309 }
298 } 310 }
299 textures--; 311 textures--;