diff options
-rw-r--r-- | OpenSim/Framework/Servers/BaseOpenSimServer.cs | 26 | ||||
-rw-r--r-- | OpenSim/Framework/Watchdog.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 30 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 | ||||
-rw-r--r-- | OpenSim/Tests/ConfigurationLoaderTest.cs | 2 | ||||
-rw-r--r-- | bin/OpenSimDefaults.ini | 1299 | ||||
-rw-r--r-- | bin/config-include/storage/SQLiteLegacyStandalone.ini | 17 | ||||
-rw-r--r-- | bin/config-include/storage/SQLiteStandalone.ini | 26 |
16 files changed, 1414 insertions, 68 deletions
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index f0f8d01..cbab2db 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs | |||
@@ -37,6 +37,7 @@ using log4net; | |||
37 | using log4net.Appender; | 37 | using log4net.Appender; |
38 | using log4net.Core; | 38 | using log4net.Core; |
39 | using log4net.Repository; | 39 | using log4net.Repository; |
40 | using OpenSim.Framework; | ||
40 | using OpenSim.Framework.Console; | 41 | using OpenSim.Framework.Console; |
41 | using OpenSim.Framework.Servers; | 42 | using OpenSim.Framework.Servers; |
42 | using OpenSim.Framework.Servers.HttpServer; | 43 | using OpenSim.Framework.Servers.HttpServer; |
@@ -234,26 +235,19 @@ namespace OpenSim.Framework.Servers | |||
234 | protected string GetThreadsReport() | 235 | protected string GetThreadsReport() |
235 | { | 236 | { |
236 | StringBuilder sb = new StringBuilder(); | 237 | StringBuilder sb = new StringBuilder(); |
238 | Watchdog.ThreadWatchdogInfo[] threads = Watchdog.GetThreads(); | ||
237 | 239 | ||
238 | ProcessThreadCollection threads = ThreadTracker.GetThreads(); | 240 | sb.Append(threads.Length + " threads are being tracked:" + Environment.NewLine); |
239 | if (threads == null) | 241 | foreach (Watchdog.ThreadWatchdogInfo twi in threads) |
240 | { | 242 | { |
241 | sb.Append("OpenSim thread tracking is only enabled in DEBUG mode."); | 243 | Thread t = twi.Thread; |
244 | |||
245 | sb.Append( | ||
246 | "ID: " + t.ManagedThreadId + ", Name: " + t.Name + ", TimeRunning: " | ||
247 | + "Pri: " + t.Priority + ", State: " + t.ThreadState); | ||
248 | sb.Append(Environment.NewLine); | ||
242 | } | 249 | } |
243 | else | ||
244 | { | ||
245 | sb.Append(threads.Count + " threads are being tracked:" + Environment.NewLine); | ||
246 | foreach (ProcessThread t in threads) | ||
247 | { | ||
248 | sb.Append("ID: " + t.Id + ", TotalProcessorTime: " + t.TotalProcessorTime + ", TimeRunning: " + | ||
249 | (DateTime.Now - t.StartTime) + ", Pri: " + t.CurrentPriority + ", State: " + t.ThreadState); | ||
250 | if (t.ThreadState == System.Diagnostics.ThreadState.Wait) | ||
251 | sb.Append(", Reason: " + t.WaitReason + Environment.NewLine); | ||
252 | else | ||
253 | sb.Append(Environment.NewLine); | ||
254 | 250 | ||
255 | } | ||
256 | } | ||
257 | int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0; | 251 | int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0; |
258 | ThreadPool.GetAvailableThreads(out workers, out ports); | 252 | ThreadPool.GetAvailableThreads(out workers, out ports); |
259 | ThreadPool.GetMaxThreads(out maxWorkers, out maxPorts); | 253 | ThreadPool.GetMaxThreads(out maxWorkers, out maxPorts); |
diff --git a/OpenSim/Framework/Watchdog.cs b/OpenSim/Framework/Watchdog.cs index bc19dd1..9baf3a0 100644 --- a/OpenSim/Framework/Watchdog.cs +++ b/OpenSim/Framework/Watchdog.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Linq; | ||
30 | using System.Threading; | 31 | using System.Threading; |
31 | using log4net; | 32 | using log4net; |
32 | 33 | ||
@@ -43,7 +44,7 @@ namespace OpenSim.Framework | |||
43 | const int WATCHDOG_TIMEOUT_MS = 5000; | 44 | const int WATCHDOG_TIMEOUT_MS = 5000; |
44 | 45 | ||
45 | [System.Diagnostics.DebuggerDisplay("{Thread.Name}")] | 46 | [System.Diagnostics.DebuggerDisplay("{Thread.Name}")] |
46 | private class ThreadWatchdogInfo | 47 | public class ThreadWatchdogInfo |
47 | { | 48 | { |
48 | public Thread Thread; | 49 | public Thread Thread; |
49 | public int LastTick; | 50 | public int LastTick; |
@@ -149,6 +150,15 @@ namespace OpenSim.Framework | |||
149 | } | 150 | } |
150 | catch { } | 151 | catch { } |
151 | } | 152 | } |
153 | |||
154 | /// <summary> | ||
155 | /// Get currently watched threads for diagnostic purposes | ||
156 | /// </summary> | ||
157 | /// <returns></returns> | ||
158 | public static ThreadWatchdogInfo[] GetThreads() | ||
159 | { | ||
160 | return m_threads.Values.ToArray(); | ||
161 | } | ||
152 | 162 | ||
153 | private static void WatchdogTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) | 163 | private static void WatchdogTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) |
154 | { | 164 | { |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 0e17496..393cd03 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -5222,11 +5222,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5222 | } | 5222 | } |
5223 | catch (Exception e) | 5223 | catch (Exception e) |
5224 | { | 5224 | { |
5225 | m_log.Error("[GENERICMESSAGE] " + e); | 5225 | m_log.ErrorFormat( |
5226 | "[LLCLIENTVIEW]: Exeception when handling generic message {0}{1}", e.Message, e.StackTrace); | ||
5226 | } | 5227 | } |
5227 | } | 5228 | } |
5228 | } | 5229 | } |
5229 | m_log.Error("[GENERICMESSAGE] Not handling GenericMessage with method-type of: " + method); | 5230 | |
5231 | //m_log.Debug("[LLCLIENTVIEW]: Not handling GenericMessage with method-type of: " + method); | ||
5230 | return false; | 5232 | return false; |
5231 | } | 5233 | } |
5232 | 5234 | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 209e35c..5aeca83 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -695,9 +695,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
695 | if (packet.Header.Reliable && !udpClient.PacketArchive.TryEnqueue(packet.Header.Sequence)) | 695 | if (packet.Header.Reliable && !udpClient.PacketArchive.TryEnqueue(packet.Header.Sequence)) |
696 | { | 696 | { |
697 | if (packet.Header.Resent) | 697 | if (packet.Header.Resent) |
698 | m_log.Debug("[LLUDPSERVER]: Received a resend of already processed packet #" + packet.Header.Sequence + ", type: " + packet.Type); | 698 | m_log.DebugFormat( |
699 | else | 699 | "[LLUDPSERVER]: Received a resend of already processed packet #{0}, type {1} from {2}", |
700 | m_log.Warn("[LLUDPSERVER]: Received a duplicate (not marked as resend) of packet #" + packet.Header.Sequence + ", type: " + packet.Type); | 700 | packet.Header.Sequence, packet.Type, client.Name); |
701 | else | ||
702 | m_log.WarnFormat( | ||
703 | "[LLUDPSERVER]: Received a duplicate (not marked as resend) of packet #{0}, type {1} from {2}", | ||
704 | packet.Header.Sequence, packet.Type, client.Name); | ||
701 | 705 | ||
702 | // Avoid firing a callback twice for the same packet | 706 | // Avoid firing a callback twice for the same packet |
703 | return; | 707 | return; |
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs index 8aa87fd..a3238df 100644 --- a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs | |||
@@ -187,18 +187,20 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps | |||
187 | int start, end; | 187 | int start, end; |
188 | if (TryParseRange(range, out start, out end)) | 188 | if (TryParseRange(range, out start, out end)) |
189 | { | 189 | { |
190 | end = Utils.Clamp(end, 1, texture.Data.Length); | 190 | end = Utils.Clamp(end, 1, texture.Data.Length - 1); |
191 | start = Utils.Clamp(start, 0, end - 1); | 191 | start = Utils.Clamp(start, 0, end - 1); |
192 | int len = end - start + 1; | ||
192 | 193 | ||
193 | //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); | 194 | //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); |
194 | 195 | ||
195 | if (end - start < texture.Data.Length) | 196 | if (len < texture.Data.Length) |
196 | response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent; | 197 | response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent; |
197 | 198 | ||
198 | response.ContentLength = end - start; | 199 | response.ContentLength = len; |
199 | response.ContentType = texture.Metadata.ContentType; | 200 | response.ContentType = texture.Metadata.ContentType; |
201 | response.AddHeader("Content-Range", String.Format("bytes {0}-{1}/{2}", start, end, texture.Data.Length)); | ||
200 | 202 | ||
201 | response.Body.Write(texture.Data, start, end - start); | 203 | response.Body.Write(texture.Data, start, len); |
202 | } | 204 | } |
203 | else | 205 | else |
204 | { | 206 | { |
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index e1c0949..5378930 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -191,7 +191,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
191 | itemID = group.GetFromItemID(); | 191 | itemID = group.GetFromItemID(); |
192 | } | 192 | } |
193 | 193 | ||
194 | SetAttachmentInventoryStatus(remoteClient, AttachmentPt, itemID, group); | 194 | ShowAttachInUserInventory(remoteClient, AttachmentPt, itemID, group); |
195 | 195 | ||
196 | AttachToAgent(sp, group, AttachmentPt, attachPos, silent); | 196 | AttachToAgent(sp, group, AttachmentPt, attachPos, silent); |
197 | } | 197 | } |
@@ -219,8 +219,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
219 | 219 | ||
220 | public UUID RezSingleAttachmentFromInventory(IClientAPI remoteClient, UUID itemID, uint AttachmentPt) | 220 | public UUID RezSingleAttachmentFromInventory(IClientAPI remoteClient, UUID itemID, uint AttachmentPt) |
221 | { | 221 | { |
222 | m_log.DebugFormat("[ATTACHMENTS MODULE]: Rezzing single attachment from item {0} for {1}", itemID, remoteClient.Name); | ||
223 | |||
224 | return RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt, true); | 222 | return RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt, true); |
225 | } | 223 | } |
226 | 224 | ||
@@ -238,11 +236,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
238 | if (updateInventoryStatus) | 236 | if (updateInventoryStatus) |
239 | { | 237 | { |
240 | if (att == null) | 238 | if (att == null) |
241 | { | ||
242 | ShowDetachInUserInventory(itemID, remoteClient); | 239 | ShowDetachInUserInventory(itemID, remoteClient); |
243 | } | 240 | else |
244 | 241 | ShowAttachInUserInventory(att, remoteClient, itemID, AttachmentPt); | |
245 | SetAttachmentInventoryStatus(att, remoteClient, itemID, AttachmentPt); | ||
246 | } | 242 | } |
247 | 243 | ||
248 | if (null == att) | 244 | if (null == att) |
@@ -313,12 +309,20 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
313 | return null; | 309 | return null; |
314 | } | 310 | } |
315 | 311 | ||
316 | public UUID SetAttachmentInventoryStatus( | 312 | /// <summary> |
313 | /// Update the user inventory to the attachment of an item | ||
314 | /// </summary> | ||
315 | /// <param name="att"></param> | ||
316 | /// <param name="remoteClient"></param> | ||
317 | /// <param name="itemID"></param> | ||
318 | /// <param name="AttachmentPt"></param> | ||
319 | /// <returns></returns> | ||
320 | protected UUID ShowAttachInUserInventory( | ||
317 | SceneObjectGroup att, IClientAPI remoteClient, UUID itemID, uint AttachmentPt) | 321 | SceneObjectGroup att, IClientAPI remoteClient, UUID itemID, uint AttachmentPt) |
318 | { | 322 | { |
319 | m_log.DebugFormat( | 323 | // m_log.DebugFormat( |
320 | "[ATTACHMENTS MODULE]: Updating inventory of {0} to show attachment of {1} (item ID {2})", | 324 | // "[ATTACHMENTS MODULE]: Updating inventory of {0} to show attachment of {1} (item ID {2})", |
321 | remoteClient.Name, att.Name, itemID); | 325 | // remoteClient.Name, att.Name, itemID); |
322 | 326 | ||
323 | if (!att.IsDeleted) | 327 | if (!att.IsDeleted) |
324 | AttachmentPt = att.RootPart.AttachmentPoint; | 328 | AttachmentPt = att.RootPart.AttachmentPoint; |
@@ -343,7 +347,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
343 | /// <param name="AttachmentPt"></param> | 347 | /// <param name="AttachmentPt"></param> |
344 | /// <param name="itemID"></param> | 348 | /// <param name="itemID"></param> |
345 | /// <param name="att"></param> | 349 | /// <param name="att"></param> |
346 | public void SetAttachmentInventoryStatus( | 350 | protected void ShowAttachInUserInventory( |
347 | IClientAPI remoteClient, uint AttachmentPt, UUID itemID, SceneObjectGroup att) | 351 | IClientAPI remoteClient, uint AttachmentPt, UUID itemID, SceneObjectGroup att) |
348 | { | 352 | { |
349 | // m_log.DebugFormat( | 353 | // m_log.DebugFormat( |
@@ -407,7 +411,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
407 | // Save avatar attachment information | 411 | // Save avatar attachment information |
408 | if (m_scene.AvatarFactory != null) | 412 | if (m_scene.AvatarFactory != null) |
409 | { | 413 | { |
410 | m_log.Debug("[ATTACHMENTS MODULE]: Dettaching from UserID: " + remoteClient.AgentId + ", ItemID: " + itemID); | 414 | m_log.Debug("[ATTACHMENTS MODULE]: Detaching from UserID: " + remoteClient.AgentId + ", ItemID: " + itemID); |
411 | m_scene.AvatarFactory.UpdateDatabase(remoteClient.AgentId, presence.Appearance); | 415 | m_scene.AvatarFactory.UpdateDatabase(remoteClient.AgentId, presence.Appearance); |
412 | } | 416 | } |
413 | } | 417 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index 7e5a8ec..22c8937 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -198,7 +198,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
198 | 198 | ||
199 | public void UpdateDatabase(UUID user, AvatarAppearance appearance) | 199 | public void UpdateDatabase(UUID user, AvatarAppearance appearance) |
200 | { | 200 | { |
201 | m_log.DebugFormat("[APPEARANCE]: UpdateDatabase"); | 201 | //m_log.DebugFormat("[APPEARANCE]: UpdateDatabase"); |
202 | AvatarData adata = new AvatarData(appearance); | 202 | AvatarData adata = new AvatarData(appearance); |
203 | m_scene.AvatarService.SetAvatar(user, adata); | 203 | m_scene.AvatarService.SetAvatar(user, adata); |
204 | } | 204 | } |
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs index 6a0fb63..a675928 100644 --- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | |||
@@ -114,17 +114,6 @@ namespace OpenSim.Region.Framework.Interfaces | |||
114 | /// <param name="itemID"></param> | 114 | /// <param name="itemID"></param> |
115 | /// <param name="remoteClient"></param> | 115 | /// <param name="remoteClient"></param> |
116 | void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient); | 116 | void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient); |
117 | |||
118 | /// <summary> | ||
119 | /// Update the user inventory to the attachment of an item | ||
120 | /// </summary> | ||
121 | /// <param name="att"></param> | ||
122 | /// <param name="remoteClient"></param> | ||
123 | /// <param name="itemID"></param> | ||
124 | /// <param name="AttachmentPt"></param> | ||
125 | /// <returns></returns> | ||
126 | UUID SetAttachmentInventoryStatus( | ||
127 | SceneObjectGroup att, IClientAPI remoteClient, UUID itemID, uint AttachmentPt); | ||
128 | 117 | ||
129 | /// <summary> | 118 | /// <summary> |
130 | /// Update the user inventory to show a detach. | 119 | /// Update the user inventory to show a detach. |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 0e1b4b1..abec699 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1348,11 +1348,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
1348 | if (m_frame % m_update_presences == 0) | 1348 | if (m_frame % m_update_presences == 0) |
1349 | m_sceneGraph.UpdatePresences(); | 1349 | m_sceneGraph.UpdatePresences(); |
1350 | 1350 | ||
1351 | <<<<<<< HEAD:OpenSim/Region/Framework/Scenes/Scene.cs | ||
1351 | // Update SceneObjectGroups that have scheduled themselves for updates | 1352 | // Update SceneObjectGroups that have scheduled themselves for updates |
1352 | // Objects queue their updates onto all scene presences | 1353 | // Objects queue their updates onto all scene presences |
1353 | if (m_frame % m_update_objects == 0) | 1354 | if (m_frame % m_update_objects == 0) |
1354 | m_sceneGraph.UpdateObjectGroups(); | 1355 | m_sceneGraph.UpdateObjectGroups(); |
1355 | 1356 | ||
1357 | ======= | ||
1358 | // Coarse locations relate to positions of green dots on the mini-map (on a SecondLife client) | ||
1359 | >>>>>>> master:OpenSim/Region/Framework/Scenes/Scene.cs | ||
1356 | if (m_frame % m_update_coarse_locations == 0) | 1360 | if (m_frame % m_update_coarse_locations == 0) |
1357 | { | 1361 | { |
1358 | List<Vector3> coarseLocations; | 1362 | List<Vector3> coarseLocations; |
@@ -1370,9 +1374,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1370 | m_sceneGraph.UpdatePreparePhysics(); | 1374 | m_sceneGraph.UpdatePreparePhysics(); |
1371 | physicsMS2 = Util.EnvironmentTickCountSubtract(tmpPhysicsMS2); | 1375 | physicsMS2 = Util.EnvironmentTickCountSubtract(tmpPhysicsMS2); |
1372 | 1376 | ||
1377 | // Apply any pending avatar force input to the avatar's velocity | ||
1373 | if (m_frame % m_update_entitymovement == 0) | 1378 | if (m_frame % m_update_entitymovement == 0) |
1374 | m_sceneGraph.UpdateScenePresenceMovement(); | 1379 | m_sceneGraph.UpdateScenePresenceMovement(); |
1375 | 1380 | ||
1381 | // Perform the main physics update. This will do the actual work of moving objects and avatars according to their | ||
1382 | // velocity | ||
1376 | int tmpPhysicsMS = Util.EnvironmentTickCount(); | 1383 | int tmpPhysicsMS = Util.EnvironmentTickCount(); |
1377 | if (m_frame % m_update_physics == 0) | 1384 | if (m_frame % m_update_physics == 0) |
1378 | { | 1385 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 6246400..9c3486e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -568,16 +568,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
568 | m_parentScene.AttachmentsModule.DetachSingleAttachmentToGround(group.UUID, remoteClient); | 568 | m_parentScene.AttachmentsModule.DetachSingleAttachmentToGround(group.UUID, remoteClient); |
569 | } | 569 | } |
570 | 570 | ||
571 | protected internal void DetachObject(uint objectLocalID, IClientAPI remoteClient) | ||
572 | { | ||
573 | SceneObjectGroup group = GetGroupByPrim(objectLocalID); | ||
574 | if (group != null) | ||
575 | { | ||
576 | //group.DetachToGround(); | ||
577 | m_parentScene.AttachmentsModule.ShowDetachInUserInventory(group.GetFromItemID(), remoteClient); | ||
578 | } | ||
579 | } | ||
580 | |||
581 | protected internal void HandleUndo(IClientAPI remoteClient, UUID primId) | 571 | protected internal void HandleUndo(IClientAPI remoteClient, UUID primId) |
582 | { | 572 | { |
583 | if (primId != UUID.Zero) | 573 | if (primId != UUID.Zero) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 37630e0..5b610d3 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1796,9 +1796,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1796 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | 1796 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); |
1797 | } | 1797 | } |
1798 | } | 1798 | } |
1799 | // m_log.DebugFormat( | 1799 | // m_log.DebugFormat( |
1800 | // "[SCENE]: Storing {0}, {1} in {2}", | 1800 | // "[SCENE]: Storing {0}, {1} in {2}", |
1801 | // Name, UUID, m_scene.RegionInfo.RegionName); | 1801 | // Name, UUID, m_scene.RegionInfo.RegionName); |
1802 | 1802 | ||
1803 | SceneObjectGroup backup_group = Copy(false); | 1803 | SceneObjectGroup backup_group = Copy(false); |
1804 | backup_group.RootPart.Velocity = RootPart.Velocity; | 1804 | backup_group.RootPart.Velocity = RootPart.Velocity; |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 6d0ecf0..caf376b 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1663,6 +1663,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1663 | } | 1663 | } |
1664 | } | 1664 | } |
1665 | 1665 | ||
1666 | // If the agent update does move the avatar, then calculate the force ready for the velocity update, | ||
1667 | // which occurs later in the main scene loop | ||
1666 | if (update_movementflag || (update_rotation && DCFlagKeyPressed)) | 1668 | if (update_movementflag || (update_rotation && DCFlagKeyPressed)) |
1667 | { | 1669 | { |
1668 | // m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed)); | 1670 | // m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed)); |
@@ -4294,8 +4296,8 @@ if (m_animator.m_jumping) force.Z = m_animator.m_jumpVelocity; // add for ju | |||
4294 | return; | 4296 | return; |
4295 | 4297 | ||
4296 | UUID itemID = m_appearance.GetAttachedItem(p); | 4298 | UUID itemID = m_appearance.GetAttachedItem(p); |
4297 | UUID assetID = m_appearance.GetAttachedAsset(p); | ||
4298 | 4299 | ||
4300 | //UUID assetID = m_appearance.GetAttachedAsset(p); | ||
4299 | // For some reason assetIDs are being written as Zero's in the DB -- need to track tat down | 4301 | // For some reason assetIDs are being written as Zero's in the DB -- need to track tat down |
4300 | // But they're not used anyway, the item is being looked up for now, so let's proceed. | 4302 | // But they're not used anyway, the item is being looked up for now, so let's proceed. |
4301 | //if (UUID.Zero == assetID) | 4303 | //if (UUID.Zero == assetID) |
@@ -4333,7 +4335,7 @@ if (m_animator.m_jumping) force.Z = m_animator.m_jumpVelocity; // add for ju | |||
4333 | } | 4335 | } |
4334 | catch (Exception e) | 4336 | catch (Exception e) |
4335 | { | 4337 | { |
4336 | m_log.ErrorFormat("[ATTACHMENT]: Unable to rez attachment: {0}", e.ToString()); | 4338 | m_log.ErrorFormat("[ATTACHMENT]: Unable to rez attachment: {0}{1}", e.Message, e.StackTrace); |
4337 | } | 4339 | } |
4338 | } | 4340 | } |
4339 | } | 4341 | } |
diff --git a/OpenSim/Tests/ConfigurationLoaderTest.cs b/OpenSim/Tests/ConfigurationLoaderTest.cs index 4262c95..c777acc 100644 --- a/OpenSim/Tests/ConfigurationLoaderTest.cs +++ b/OpenSim/Tests/ConfigurationLoaderTest.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Tests | |||
69 | [Test] | 69 | [Test] |
70 | public void IncludeTests() | 70 | public void IncludeTests() |
71 | { | 71 | { |
72 | const string mainIniFile = "OpenSim.ini"; | 72 | const string mainIniFile = "OpenSimDefaults.ini"; |
73 | m_config = new IniConfigSource(); | 73 | m_config = new IniConfigSource(); |
74 | 74 | ||
75 | // Create ini files in a directory structure | 75 | // Create ini files in a directory structure |
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini new file mode 100644 index 0000000..8d714ce --- /dev/null +++ b/bin/OpenSimDefaults.ini | |||
@@ -0,0 +1,1299 @@ | |||
1 | [Startup] | ||
2 | ; Set this to true if you want to log crashes to disk | ||
3 | ; this can be useful when submitting bug reports. | ||
4 | save_crashes = false | ||
5 | |||
6 | ; Directory to save crashes to if above is enabled | ||
7 | ; (default is /opensimdir/crashes/*.txt or C:\opensim\crashes\*.txt) | ||
8 | crash_dir = "crashes" | ||
9 | |||
10 | ; Place to create a PID file | ||
11 | ; PIDFile = "/tmp/my.pid" | ||
12 | |||
13 | ; Http proxy support for llHTTPRequest and dynamic texture loading | ||
14 | ; Set HttpProxy to the URL for your proxy server if you would like | ||
15 | ; to proxy llHTTPRequests through a firewall | ||
16 | ; HttpProxy = "http://proxy.com" | ||
17 | ; Set HttpProxyExceptions to a list of regular expressions for | ||
18 | ; URLs that you don't want going through the proxy such as servers | ||
19 | ; inside your firewall, separate patterns with a ';' | ||
20 | ; HttpProxyExceptions = ".mydomain.com;localhost" | ||
21 | |||
22 | startup_console_commands_file = "startup_commands.txt" | ||
23 | shutdown_console_commands_file = "shutdown_commands.txt" | ||
24 | |||
25 | ; To run a script every few minutes, set the script filename here | ||
26 | ; timer_Script = "filename" | ||
27 | |||
28 | ; ## | ||
29 | ; ## SYSTEM | ||
30 | ; ## | ||
31 | |||
32 | ; Sets the method that OpenSim will use to fire asynchronous | ||
33 | ; events. Valid values are UnsafeQueueUserWorkItem, | ||
34 | ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread. | ||
35 | ; SmartThreadPool is reported to work well on Mono/Linux, but | ||
36 | ; UnsafeQueueUserWorkItem has been benchmarked with better | ||
37 | ; performance on .NET/Windows | ||
38 | async_call_method = SmartThreadPool | ||
39 | |||
40 | ; Max threads to allocate on the FireAndForget thread pool | ||
41 | ; when running with the SmartThreadPool option above | ||
42 | MaxPoolThreads = 15 | ||
43 | |||
44 | ; ## | ||
45 | ; ## CLIENTS | ||
46 | ; ## | ||
47 | |||
48 | ; Enables EventQueueGet Service. | ||
49 | EventQueue = true | ||
50 | |||
51 | ; Set this to the DLL containing the client stack to use. | ||
52 | clientstack_plugin="OpenSim.Region.ClientStack.LindenUDP.dll" | ||
53 | |||
54 | ; ## | ||
55 | ; ## REGIONS | ||
56 | ; ## | ||
57 | |||
58 | ; Determine where OpenSimulator looks for the files which tell it which regions to server | ||
59 | ; Defaults to "filesystem" if this setting isn't present | ||
60 | region_info_source = "filesystem" | ||
61 | ; region_info_source = "web" | ||
62 | |||
63 | ; Determines where the region XML files are stored if you are loading these from the filesystem. | ||
64 | ; Defaults to bin/Regions in your OpenSimulator installation directory | ||
65 | ; regionload_regionsdir="C:\somewhere\xmlfiles\" | ||
66 | |||
67 | ; Determines the page from which regions xml is retrieved if you are loading these from the web | ||
68 | ; The XML here has the same format as it does on the filesystem (including the <Root> tag), | ||
69 | ; except that everything is also enclosed in a <Regions> tag. | ||
70 | ; regionload_webserver_url = "http://example.com/regions.xml"; | ||
71 | |||
72 | ; Draw objects on maptile. This step might take a long time if you've got a large number of | ||
73 | ; objects, so you can turn it off here if you'd like. | ||
74 | DrawPrimOnMapTile = true | ||
75 | ; Use terrain texture for maptiles if true, use shaded green if false | ||
76 | TextureOnMapTile = false | ||
77 | |||
78 | ; Maximum total size, and maximum size where a prim can be physical | ||
79 | NonPhysicalPrimMax = 256 | ||
80 | PhysicalPrimMax = 10 ; (I think this was moved to the Regions.ini!) | ||
81 | ClampPrimSize = false | ||
82 | |||
83 | ; Allow scripts to cross region boundaries. These are recompiled on the new region. | ||
84 | AllowScriptCrossing = false | ||
85 | |||
86 | ; Allow compiled script binary code to cross region boundaries. | ||
87 | ; If you set this to "true", any region that can teleport to you can | ||
88 | ; inject ARBITRARY BINARY CODE into your system. Use at your own risk. | ||
89 | ; YOU HAVE BEEN WARNED!!! | ||
90 | TrustBinaries = false | ||
91 | |||
92 | ; Combine all contiguous regions into one large megaregion | ||
93 | ; Order your regions from South to North, West to East in your regions.ini and then set this to true | ||
94 | ; Warning! Don't use this with regions that have existing content!, This will likely break them | ||
95 | CombineContiguousRegions = false | ||
96 | |||
97 | ; If you have only one region in an instance, or to avoid the many bugs | ||
98 | ; that you can trigger in modules by restarting a region, set this to | ||
99 | ; true to make the entire instance exit instead of restarting the region. | ||
100 | ; This is meant to be used on systems where some external system like | ||
101 | ; Monit will restart any instance that exits, thereby making the shutdown | ||
102 | ; into a restart. | ||
103 | ;InworldRestartShutsDown = false | ||
104 | |||
105 | ; ## | ||
106 | ; ## PRIM STORAGE | ||
107 | ; ## | ||
108 | |||
109 | ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to | ||
110 | ; prevent frequently changing objects from heavily loading the region data store. | ||
111 | ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep. | ||
112 | ; | ||
113 | ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds | ||
114 | MinimumTimeBeforePersistenceConsidered = 60 | ||
115 | ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago | ||
116 | MaximumTimeBeforePersistenceConsidered = 600 | ||
117 | |||
118 | ; Should avatars in neighbor sims see objects in this sim? | ||
119 | see_into_this_sim_from_neighbor = true | ||
120 | |||
121 | ; ## | ||
122 | ; ## PHYSICS | ||
123 | ; ## | ||
124 | |||
125 | ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true. | ||
126 | physical_prim = true | ||
127 | |||
128 | ; Select a mesher here. | ||
129 | ; | ||
130 | ; Meshmerizer properly handles complex prims by using triangle meshes. | ||
131 | ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way | ||
132 | ; | ||
133 | ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports | ||
134 | ; Usually this is only a box | ||
135 | |||
136 | meshing = Meshmerizer | ||
137 | ;meshing = ZeroMesher | ||
138 | |||
139 | ; Choose one of the physics engines below | ||
140 | ; OpenDynamicsEngine is by some distance the most developed physics engine | ||
141 | ; basicphysics effectively does not model physics at all, making all objects phantom | ||
142 | |||
143 | physics = OpenDynamicsEngine | ||
144 | ;physics = basicphysics | ||
145 | ;physics = POS | ||
146 | ;physics = modified_BulletX | ||
147 | |||
148 | ; ## | ||
149 | ; ## PERMISSIONS | ||
150 | ; ## | ||
151 | |||
152 | ;permissionmodules = "DefaultPermissionsModule" | ||
153 | |||
154 | ; If set to false, then, in theory, the server never carries out permission checks (allowing anybody to copy | ||
155 | ; any item, etc. This may not yet be implemented uniformally. | ||
156 | ; If set to true, then all permissions checks are carried out | ||
157 | ; Default is false | ||
158 | serverside_object_permissions = false | ||
159 | |||
160 | allow_grid_gods = false | ||
161 | |||
162 | ; This allows somne control over permissions | ||
163 | ; please note that this still doesn't duplicate SL, and is not intended to | ||
164 | ;region_owner_is_god = true | ||
165 | ;region_manager_is_god = false | ||
166 | ;parcel_owner_is_god = true | ||
167 | |||
168 | ; Control user types that are allowed to create new scripts | ||
169 | ; Only enforced if serviceside_object_permissions is true | ||
170 | ; | ||
171 | ; Current possible values are | ||
172 | ; all - anyone can create scripts (subject to normal permissions) | ||
173 | ; gods - only administrators can create scripts (as long as allow_grid_gods is true) | ||
174 | ; Default value is all | ||
175 | ; allowed_script_creators = all | ||
176 | |||
177 | ; Control user types that are allowed to edit (save) scripts | ||
178 | ; Only enforced if serviceside_object_permissions is true | ||
179 | ; | ||
180 | ; Current possible values are | ||
181 | ; all - anyone can edit scripts (subject to normal permissions) | ||
182 | ; gods - only administrators can edit scripts (as long as allow_grid_gods is true) | ||
183 | ; Default value is all | ||
184 | ; allowed_script_editors = all | ||
185 | |||
186 | ; ## | ||
187 | ; ## SCRIPT ENGINE | ||
188 | ; ## | ||
189 | |||
190 | DefaultScriptEngine = "XEngine" | ||
191 | |||
192 | ; ## | ||
193 | ; ## WORLD MAP | ||
194 | ; ## | ||
195 | |||
196 | ;WorldMapModule = "WorldMap" | ||
197 | ;MapImageModule = "MapImageModule" | ||
198 | ; Set to false to not generate any maptiles | ||
199 | ;GenerateMaptiles = "true" | ||
200 | ; Refresh (in seconds) the map tile periodically | ||
201 | ;MaptileRefresh = 0 | ||
202 | ; If not generating maptiles, use this static texture asset ID | ||
203 | ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" | ||
204 | |||
205 | ; ## | ||
206 | ; ## EMAIL MODULE | ||
207 | ; ## | ||
208 | |||
209 | ;emailmodule = DefaultEmailModule | ||
210 | |||
211 | ; ## | ||
212 | ; ## ANIMATIONS | ||
213 | ; ## | ||
214 | |||
215 | ; If enabled, enableFlySlow will change the primary fly state to | ||
216 | ; FLYSLOW, and the "always run" state will be the regular fly. | ||
217 | |||
218 | enableflyslow = false | ||
219 | |||
220 | ; PreJump is an additional animation state, but it probably | ||
221 | ; won't look right until the physics engine supports it | ||
222 | ; (i.e delays takeoff for a moment) | ||
223 | |||
224 | ; This is commented so it will come on automatically once it's | ||
225 | ; supported. | ||
226 | |||
227 | ; enableprejump = true | ||
228 | |||
229 | ; Simulator Stats URI | ||
230 | ; Enable JSON simulator data by setting a URI name (case sensitive) | ||
231 | ; Stats_URI = "jsonSimStats" | ||
232 | |||
233 | ; Make OpenSim start all regions woth logins disabled. They will need | ||
234 | ; to be enabled from the console if this is set | ||
235 | ; StartDisabled = false | ||
236 | |||
237 | ; Image decoding. Use CSJ2K for layer boundary decoding if true, | ||
238 | ; OpenJPEG if false | ||
239 | ; UseCSJ2K = true | ||
240 | |||
241 | [SMTP] | ||
242 | enabled=false | ||
243 | |||
244 | ;enabled=true | ||
245 | ;internal_object_host=lsl.opensim.local | ||
246 | ;host_domain_header_from=127.0.0.1 | ||
247 | ;SMTP_SERVER_HOSTNAME=127.0.0.1 | ||
248 | ;SMTP_SERVER_PORT=25 | ||
249 | ;SMTP_SERVER_LOGIN=foo | ||
250 | ;SMTP_SERVER_PASSWORD=bar | ||
251 | |||
252 | [Network] | ||
253 | ConsoleUser = "Test" | ||
254 | ConsolePass = "secret" | ||
255 | http_listener_port = 9000 | ||
256 | console_port = 0 | ||
257 | |||
258 | ; ssl config: Experimental! The auto https config only really works definately on windows XP now | ||
259 | ; you need a Cert Request/Signed pair installed in the MY store with the CN specified below | ||
260 | ; you can use https on other platforms, but you'll need to configure the httpapi yourself for now | ||
261 | http_listener_ssl = false ; Also create a SSL server | ||
262 | http_listener_cn = "localhost" ; Use the cert with the common name | ||
263 | http_listener_sslport = 9001 ; Use this port for SSL connections | ||
264 | http_listener_ssl_cert = "" ; Currently unused, but will be used for OSHttpServer | ||
265 | |||
266 | ; Hostname to use in llRequestURL/llRequestSecureURL | ||
267 | ; if not defined - default machine name is being used | ||
268 | ; (on Windows this mean NETBIOS name - useably only inside local network) | ||
269 | ; ExternalHostNameForLSL=127.0.0.1 | ||
270 | |||
271 | ; What is reported as the "X-Secondlife-Shard" | ||
272 | ; Defaults to the user server url if not set | ||
273 | ; The old default is "OpenSim", set here for compatibility | ||
274 | shard = "OpenSim" | ||
275 | |||
276 | ; What is reported as the "User-Agent" when using llHTTPRequest | ||
277 | ; Defaults to not sent if not set here. See the notes section in the wiki at | ||
278 | ; http://wiki.secondlife.com/wiki/LlHTTPRequest for comments on adding | ||
279 | ; " (Mozilla Compatible)" to the text where there are problems with a web server | ||
280 | ;user_agent = "OpenSim LSL (Mozilla Compatible)" | ||
281 | |||
282 | [XMLRPC] | ||
283 | ; ## | ||
284 | ; ## Scripting XMLRPC mapper | ||
285 | ; ## | ||
286 | |||
287 | ; If enabled, this will post an event, "xmlrpc_uri(string)" to the | ||
288 | ; script concurrently with the first remote_data event. | ||
289 | ; This will contain the fully qualified URI an external site needs | ||
290 | ; to use to send XMLRPC requests to that script | ||
291 | |||
292 | ;XmlRpcRouterModule = "XmlRpcRouterModule" | ||
293 | ;XmlRpcPort = 20800 | ||
294 | |||
295 | [ClientStack.LindenUDP] | ||
296 | ; Set this to true to process incoming packets asynchronously. Networking is | ||
297 | ; already separated from packet handling with a queue, so this will only | ||
298 | ; affect whether networking internals such as packet decoding and | ||
299 | ; acknowledgement accounting are done synchronously or asynchronously | ||
300 | ; | ||
301 | ;async_packet_handling = false | ||
302 | |||
303 | ; The client socket receive buffer size determines how many | ||
304 | ; incoming requests we can process; the default on .NET is 8192 | ||
305 | ; which is about 2 4k-sized UDP datagrams. On mono this is | ||
306 | ; whatever the underlying operating system has as default; for | ||
307 | ; example, ubuntu 8.04 or SLES11 have about 111k, which is about | ||
308 | ; 27 4k-sized UDP datagrams (on linux platforms you can [as root] | ||
309 | ; do "sysctl net.core.rmem_default" to find out what your system | ||
310 | ; uses a default socket receive buffer size. | ||
311 | ; | ||
312 | ; client_socket_rcvbuf_size allows you to specify the receive | ||
313 | ; buffer size LLUDPServer should use. NOTE: this will be limited | ||
314 | ; by the system's settings for the maximum client receive buffer | ||
315 | ; size (on linux systems you can set that with "sysctl -w | ||
316 | ; net.core.rmem_max=X") | ||
317 | ; | ||
318 | ;client_socket_rcvbuf_size = 8388608 | ||
319 | |||
320 | ; Maximum outbound bytes per second for a single scene. This can be used to | ||
321 | ; throttle total outbound UDP traffic for a simulator. The default value is | ||
322 | ; 0, meaning no throttling at the scene level. The example given here is | ||
323 | ; 20 megabits | ||
324 | ; | ||
325 | ;scene_throttle_max_bps = 2621440 | ||
326 | |||
327 | ; Maximum bits per second to send to any single client. This will override | ||
328 | ; the user's viewer preference settings. The default value is 0, meaning no | ||
329 | ; aggregate throttling on clients (only per-category throttling). The | ||
330 | ; example given here is 1.5 megabits | ||
331 | ; | ||
332 | ;client_throttle_max_bps = 196608 | ||
333 | |||
334 | ; Per-client bytes per second rates for the various throttle categories. | ||
335 | ; These are default values that will be overriden by clients | ||
336 | ; | ||
337 | ;resend_default = 12500 | ||
338 | ;land_default = 1000 | ||
339 | ;wind_default = 1000 | ||
340 | ;cloud_default = 1000 | ||
341 | ;task_default = 1000 | ||
342 | ;texture_default = 1000 | ||
343 | ;asset_default = 1000 | ||
344 | ;state_default = 1000 | ||
345 | |||
346 | ; Per-client maximum burst rates in bytes per second for the various | ||
347 | ; throttle categories. These are default values that will be overriden by | ||
348 | ; clients | ||
349 | ; | ||
350 | ;resend_limit = 18750 | ||
351 | ;land_limit = 29750 | ||
352 | ;wind_limit = 18750 | ||
353 | ;cloud_limit = 18750 | ||
354 | ;task_limit = 18750 | ||
355 | ;texture_limit = 55750 | ||
356 | ;asset_limit = 27500 | ||
357 | ;state_limit = 37000 | ||
358 | |||
359 | ; Configures how ObjectUpdates are aggregated. These numbers | ||
360 | ; do not literally mean how many updates will be put in each | ||
361 | ; packet that goes over the wire, as packets are | ||
362 | ; automatically split on a 1400 byte boundary. These control | ||
363 | ; the balance between responsiveness of interest list updates | ||
364 | ; and total throughput. Higher numbers will ensure more full- | ||
365 | ; sized packets and faster sending of data, but more delay in | ||
366 | ; updating interest lists | ||
367 | ; | ||
368 | ;PrimTerseUpdatesPerPacket = 25 | ||
369 | ;AvatarTerseUpdatesPerPacket = 10 | ||
370 | ;PrimFullUpdatesPerPacket = 100 | ||
371 | |||
372 | ; TextureSendLimit determines how many packets will be put on | ||
373 | ; the outgoing queue each cycle. Like the settings above, this | ||
374 | ; is a balance between responsiveness to priority updates and | ||
375 | ; total throughput. Higher numbers will give a better | ||
376 | ; throughput at the cost of reduced responsiveness to client | ||
377 | ; priority changes or transfer aborts | ||
378 | ; | ||
379 | ;TextureSendLimit = 20 | ||
380 | |||
381 | ; Quash and remove any light properties from attachments not on the | ||
382 | ; hands. This allows flashlights and lanterns to function, but kills | ||
383 | ; silly vanity "Facelights" dead. Sorry, head mounted miner's lamps | ||
384 | ; will also be affected. | ||
385 | ; | ||
386 | ;DisableFacelights = "false" | ||
387 | |||
388 | [Chat] | ||
389 | ; Controls whether the chat module is enabled. Default is true. | ||
390 | enabled = true; | ||
391 | |||
392 | ; Distance in meters that whispers should travel. Default is 10m | ||
393 | whisper_distance = 10 | ||
394 | |||
395 | ; Distance in meters that ordinary chat should travel. Default is 30m | ||
396 | say_distance = 30 | ||
397 | |||
398 | ; Distance in meters that shouts should travel. Default is 100m | ||
399 | shout_distance = 100 | ||
400 | |||
401 | |||
402 | [Messaging] | ||
403 | ; Control which region module is used for instant messaging. | ||
404 | ; Default is InstantMessageModule (this is the name of the core IM module as well as the setting) | ||
405 | InstantMessageModule = InstantMessageModule | ||
406 | ; MessageTransferModule = MessageTransferModule | ||
407 | ; OfflineMessageModule = OfflineMessageModule | ||
408 | ; OfflineMessageURL = http://yourserver/Offline.php | ||
409 | ; MuteListModule = MuteListModule | ||
410 | ; MuteListURL = http://yourserver/Mute.php | ||
411 | |||
412 | ; Control whether group messages are forwarded to offline users. Default is true. | ||
413 | ; ForwardOfflineGroupMessages = true | ||
414 | |||
415 | |||
416 | [ODEPhysicsSettings] | ||
417 | ;## | ||
418 | ;## World Settings | ||
419 | ;## | ||
420 | |||
421 | ;Gravity. Feel like falling up? change world_gravityz to 9.8 instead of -9.8. m/s | ||
422 | world_gravityx = 0 | ||
423 | world_gravityy = 0 | ||
424 | world_gravityz = -9.8 | ||
425 | |||
426 | ; World Step size. (warning these are dangerous. Changing these will probably cause your scene to explode dramatically) | ||
427 | ; reference: fps = (0.09375/ODE_STEPSIZE) * 1000; | ||
428 | world_stepsize = 0.020 | ||
429 | world_internal_steps_without_collisions = 10 | ||
430 | |||
431 | ;World Space settings. Affects memory consumption vs Collider CPU time for avatar and physical prim | ||
432 | world_hashspace_size_low = -4 | ||
433 | world_hashSpace_size_high = 128 | ||
434 | |||
435 | ;Dynamic space settings Affects memory consumption vs Collider CPU time for static prim | ||
436 | meters_in_small_space = 29.9 | ||
437 | small_hashspace_size_low = -4 | ||
438 | small_hashspace_size_high = 66 | ||
439 | |||
440 | ; ## | ||
441 | ; ## Contact properties. (the stuff that happens when things come in contact with each other) | ||
442 | ; ## | ||
443 | |||
444 | ; surface layer around geometries other geometries can sink into before generating a contact | ||
445 | world_contact_surface_layer = 0.001 | ||
446 | |||
447 | ; Filtering collisions helps keep things stable physics wise, but sometimes | ||
448 | ; it can be overzealous. If you notice bouncing, chances are it's that. | ||
449 | filter_collisions = false | ||
450 | |||
451 | ; Non Moving Terrain Contact (avatar isn't moving) | ||
452 | nm_terraincontact_friction = 255.0 | ||
453 | nm_terraincontact_bounce = 0.1 | ||
454 | nm_terraincontact_erp = 0.1025 | ||
455 | |||
456 | ; Moving Terrain Contact (avatar is moving) | ||
457 | m_terraincontact_friction = 75.0 | ||
458 | m_terraincontact_bounce = 0.05 | ||
459 | m_terrainContact_erp = 0.05025 | ||
460 | |||
461 | ; Moving Avatar to object Contact | ||
462 | m_avatarobjectcontact_friction = 75.0 | ||
463 | m_avatarobjectcontact_bounce = 0.1 | ||
464 | |||
465 | ; Object to Object Contact and Non-Moving Avatar to object | ||
466 | objectcontact_friction = 250.0 | ||
467 | objectcontact_bounce = 0.2 | ||
468 | |||
469 | ; ## | ||
470 | ; ## Avatar Control | ||
471 | ; ## | ||
472 | |||
473 | ; PID Controller Settings. These affect the math that causes the avatar to reach the | ||
474 | ; desired velocity | ||
475 | ; See http://en.wikipedia.org/wiki/PID_controller | ||
476 | |||
477 | av_pid_derivative_linux = 2200.0 | ||
478 | av_pid_proportional_linux = 900.0; | ||
479 | |||
480 | av_pid_derivative_win = 2200.0 | ||
481 | av_pid_proportional_win = 900.0; | ||
482 | |||
483 | ;girth of the avatar. Adds radius to the height also | ||
484 | av_capsule_radius = 0.37 | ||
485 | |||
486 | ; Max force permissible to use to keep the avatar standing up straight | ||
487 | av_capsule_standup_tensor_win = 550000 | ||
488 | av_capsule_standup_tensor_linux = 550000 | ||
489 | |||
490 | ; specifies if the capsule should be tilted (=true; old compatibility mode) | ||
491 | ; or straight up-and-down (=false; better and more consistent physics behavior) | ||
492 | av_capsule_tilted = false | ||
493 | |||
494 | ; used to calculate mass of avatar. | ||
495 | ; float AVvolume = (float) (Math.PI*Math.Pow(CAPSULE_RADIUS, 2)*CAPSULE_LENGTH); | ||
496 | ; av_density * AVvolume; | ||
497 | av_density = 80 | ||
498 | |||
499 | ; use this value to cut 52% of the height the sim gives us | ||
500 | av_height_fudge_factor = 0.52 | ||
501 | |||
502 | ; Movement. Smaller is faster. | ||
503 | |||
504 | ; speed of movement with Always Run off | ||
505 | av_movement_divisor_walk = 1.3 | ||
506 | |||
507 | ; speed of movement with Always Run on | ||
508 | av_movement_divisor_run = 0.8 | ||
509 | |||
510 | ; When the avatar flies, it will be moved up by this amount off the ground (in meters) | ||
511 | minimum_ground_flight_offset = 3.0 | ||
512 | |||
513 | ; ## | ||
514 | ; ## Object options | ||
515 | ; ## | ||
516 | |||
517 | ; used in the mass calculation. | ||
518 | geometry_default_density = 10.000006836 | ||
519 | |||
520 | ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep | ||
521 | body_frames_auto_disable = 20 | ||
522 | |||
523 | ; used to control llMove2Target | ||
524 | body_pid_derivative = 35 | ||
525 | body_pid_gain = 25 | ||
526 | |||
527 | ; maximum number of contact points to generate per collision | ||
528 | contacts_per_collision = 80 | ||
529 | |||
530 | ; amount of time a geom/body will try to cross a region border before it gets disabled | ||
531 | geom_crossing_failures_before_outofbounds = 5 | ||
532 | |||
533 | ; start throttling the object updates if object comes in contact with 3 or more other objects | ||
534 | geom_contactpoints_start_throttling = 3 | ||
535 | |||
536 | ; send 1 update for every x updates below when throttled | ||
537 | geom_updates_before_throttled_update = 15 | ||
538 | |||
539 | ; Used for llSetStatus. How rigid the object rotation is held on the axis specified | ||
540 | body_motor_joint_maxforce_tensor_linux = 5 | ||
541 | body_motor_joint_maxforce_tensor_win = 5 | ||
542 | |||
543 | ; Maximum mass an object can be before it is clamped | ||
544 | maximum_mass_object = 10000.01 | ||
545 | |||
546 | ; ## | ||
547 | ; ## Sculpted Prim settings | ||
548 | ; ## | ||
549 | |||
550 | ; Do we want to mesh sculpted prim to collide like they look? | ||
551 | mesh_sculpted_prim = true | ||
552 | |||
553 | ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies | ||
554 | mesh_lod = 32 | ||
555 | |||
556 | ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies | ||
557 | mesh_physical_lod = 16 | ||
558 | |||
559 | ; ## | ||
560 | ; ## Physics logging settings - logfiles are saved to *.DIF files | ||
561 | ; ## | ||
562 | |||
563 | ; default is false | ||
564 | ;physics_logging = true | ||
565 | ;; every n simulation iterations, the physics snapshot file is updated | ||
566 | ;physics_logging_interval = 50 | ||
567 | ;; append to existing physics logfile, or overwrite existing logfiles? | ||
568 | ;physics_logging_append_existing_logfile = true | ||
569 | |||
570 | ; ## | ||
571 | ; ## Joint support | ||
572 | ; ## | ||
573 | |||
574 | ; if you would like physics joints to be enabled through a special naming convention in the client, set this to true. | ||
575 | ; (see NINJA Physics documentation, http://opensimulator.org/wiki/NINJA_Physics) | ||
576 | ; default is false | ||
577 | ;use_NINJA_physics_joints = true | ||
578 | |||
579 | ; ## | ||
580 | ; ## additional meshing options | ||
581 | ; ## | ||
582 | |||
583 | ; physical collision mesh proxies are normally created for complex prim shapes, and collisions for simple boxes and | ||
584 | ; spheres are computed algorithmically. If you would rather have mesh proxies for simple prims, you can set this to | ||
585 | ; true. Note that this will increase memory usage and region startup time. Default is false. | ||
586 | ;force_simple_prim_meshing = true | ||
587 | |||
588 | |||
589 | [RemoteAdmin] | ||
590 | enabled = false | ||
591 | |||
592 | ; Set this to a nonzero value to have remote admin use a different port | ||
593 | port = 0 | ||
594 | |||
595 | ; This password is required to make any XMLRPC call (should be set as the "password" parameter) | ||
596 | access_password = unknown | ||
597 | |||
598 | ; set this variable to true if you want the create_region XmlRpc | ||
599 | ; call to unconditionally enable voice on all parcels for a newly | ||
600 | ; created region [default: false] | ||
601 | create_region_enable_voice = false | ||
602 | |||
603 | ; set this variable to false if you want the create_region XmlRpc | ||
604 | ; call to create all regions as private per default (can be | ||
605 | ; overridden in the XmlRpc call) [default: true] | ||
606 | create_region_public = false | ||
607 | |||
608 | ; the create_region XmlRpc call uses region_file_template to generate | ||
609 | ; the file name of newly create regions (if they are created | ||
610 | ; persistent). the parameter available are: | ||
611 | ; {0} - X location | ||
612 | ; {1} - Y location | ||
613 | ; {2} - region UUID | ||
614 | ; {3} - region port | ||
615 | ; {4} - region name with " ", ":", "/" mapped to "_" | ||
616 | region_file_template = "{0}x{1}-{2}.ini" | ||
617 | |||
618 | ; we can limit the number of regions that XmlRpcCreateRegion will | ||
619 | ; allow by setting this to a positive, non-0 number: as long as the | ||
620 | ; number of regions is below region_limits, XmlRpcCreateRegion will | ||
621 | ; succeed. setting region_limit to 0 disables the check. | ||
622 | ; default is 0 | ||
623 | ;region_limit = 0 | ||
624 | |||
625 | ; enable only those methods you deem to be appropriate using a | delimited whitelist | ||
626 | ; for example, enabled_methods = admin_broadcast|admin_region_query|admin_save_oar|admin_save_xml | ||
627 | ; if this parameter is not specified but enabled = true, all methods will be available | ||
628 | enabled_methods = all | ||
629 | |||
630 | ; specify the default appearance for an avatar created through the remote admin interface | ||
631 | ; This will only take effect is the file specified by the default_appearance setting below exists | ||
632 | ;default_male = Default Male | ||
633 | ;default_female = Default Female | ||
634 | |||
635 | ; update appearance copies inventory items and wearables of default avatars. if this value is false | ||
636 | ; (default), just worn assets are copied to the Clothes folder; if true, all Clothes and Bodyparts | ||
637 | ; subfolders are copied. the receiver will wear the same items the default avatar did wear. | ||
638 | ;copy_folders = false | ||
639 | |||
640 | ; path to default appearance XML file that specifies the look of the default avatars | ||
641 | ;default_appearance = default_appearance.xml | ||
642 | |||
643 | [RestPlugins] | ||
644 | ; Change this to true to enable REST Plugins. This must be true if you wish to use | ||
645 | ; REST Region or REST Asset and Inventory Plugins | ||
646 | enabled = false | ||
647 | god_key = SECRET | ||
648 | prefix = /admin | ||
649 | |||
650 | |||
651 | [RestRegionPlugin] | ||
652 | ; Change this to true to enable the REST Region Plugin | ||
653 | enabled = false | ||
654 | |||
655 | |||
656 | [RestHandler] | ||
657 | ; Change this to true to enable the REST Asset and Inventory Plugin | ||
658 | enabled = false | ||
659 | authenticate = true | ||
660 | secured = true | ||
661 | extended-escape = true | ||
662 | realm = OpenSim REST | ||
663 | dump-asset = false | ||
664 | path-fill = true | ||
665 | dump-line-size = 32 | ||
666 | flush-on-error = true | ||
667 | |||
668 | |||
669 | ; Uncomment the following for IRC bridge | ||
670 | ; experimental, so if it breaks... keep both parts... yada yada | ||
671 | ; also, not good error detection when it fails | ||
672 | ;[IRC] | ||
673 | ;enabled = true ; you need to set this otherwise it won't connect | ||
674 | ;server = name.of.irc.server.on.the.net | ||
675 | ;; user password - only use this if the server requires one | ||
676 | ;password = mypass | ||
677 | ;nick = OpenSimBotNameProbablyMakeThisShorter | ||
678 | ;channel = #the_irc_channel_you_want_to_connect_to | ||
679 | ;user = "USER OpenSimBot 8 * :I'm an OpenSim to IRC bot" | ||
680 | ;port = 6667 | ||
681 | ;; channel to listen for configuration commands | ||
682 | ;commands_enabled = false | ||
683 | ;command_channel = 2777 | ||
684 | ;report_clients = true | ||
685 | ;; relay private chat connections | ||
686 | ;; relay_private_channels = true: will relay IRC chat from/to private in-world channels | ||
687 | ;; relay_private_channel_out -- channel to send messages out to the IRC bridge | ||
688 | ;; relay_private_channel_in -- channel to receive message from the IRC bridge | ||
689 | ;; relay_chat = false: IRC bridge will not relay normal chat | ||
690 | ;; access_password -- simple security device | ||
691 | ;; | ||
692 | ;; so, to just relay chat from an IRC channel to in-world region and vice versa: | ||
693 | ;; | ||
694 | ;; relay_private_channels = false | ||
695 | ;; relay_chat = true | ||
696 | ;; | ||
697 | ;; to relay chat only to/from private in-world channels: | ||
698 | ;; | ||
699 | ;; relay_chat = false | ||
700 | ;; relay_private_channels = true | ||
701 | ;; relay_private_channel_in = 2226 | ||
702 | ;; relay_private_channel_out = 2225 | ||
703 | ;; | ||
704 | ;; in this example, all chat coming in from IRC will be send out via | ||
705 | ;; in-world channel 2226, and all chat from in-world channel 2225 will | ||
706 | ;; be relayed to the IRC channel. | ||
707 | ;; | ||
708 | ;relay_private_channels = false | ||
709 | ;relay_private_channel_in = 2226 | ||
710 | ;relay_private_channel_out = 2225 | ||
711 | ;relay_chat = true | ||
712 | ;access_password = foobar | ||
713 | |||
714 | ;;fallback_region = name of "default" region | ||
715 | ;;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message | ||
716 | ;; must start with "PRIVMSG {0} : " or irc server will get upset | ||
717 | ;;for <bot>:<user in region> :<message> | ||
718 | ;;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}" | ||
719 | ;;for <bot>:<message> - <user of region> : | ||
720 | ;msgformat = "PRIVMSG {0} : {3} - {1} of {2}" | ||
721 | ;;for <bot>:<message> - from <user> : | ||
722 | ;;msgformat = "PRIVMSG {0} : {3} - from {1}" | ||
723 | |||
724 | ;; exclude_list allows you to stop the IRC connector from announcing the | ||
725 | ;;arrival and departure of certain users. For example: admins, bots. | ||
726 | |||
727 | ;exclude_list=User 1,User 2,User 3 | ||
728 | |||
729 | |||
730 | ;[CMS] | ||
731 | ;enabled = true | ||
732 | ;channel = 345 | ||
733 | |||
734 | |||
735 | ; Uncomment the following to control the progression of daytime | ||
736 | ; in the Sim. The defaults are what is shown below | ||
737 | ;[Sun] | ||
738 | ; number of wall clock hours for an opensim day. 24.0 would mean realtime | ||
739 | ;day_length = 4 | ||
740 | ; Year length in days | ||
741 | ;year_length = 60 | ||
742 | ; Day to Night Ratio | ||
743 | ;day_night_offset = 0.45 | ||
744 | ; send a Sun update every update_interval # of frames. A lower number will | ||
745 | ; make for smoother sun transition at the cost of network | ||
746 | ;update_interval = 100 | ||
747 | |||
748 | |||
749 | [Wind] | ||
750 | ; Enables the wind module. Default is true | ||
751 | enabled = true | ||
752 | |||
753 | ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second | ||
754 | wind_update_rate = 150 | ||
755 | |||
756 | ; The Default Wind Plugin to load | ||
757 | wind_plugin = SimpleRandomWind | ||
758 | |||
759 | ; These settings are specific to the ConfigurableWind plugin | ||
760 | ; To use ConfigurableWind as the default, simply change wind_plugin to ConfigurableWind and uncomment the following. | ||
761 | ; avg_strength = 5.0 | ||
762 | ; avg_direction = 0.0 | ||
763 | ; var_strength = 0.0 | ||
764 | ; var_direction = 0.0 | ||
765 | ; rate_change = 1.0 | ||
766 | |||
767 | ; This setting is specific to the SimpleRandomWind plugin | ||
768 | ; Adjusts wind strength. 0.0 = no wind, 1.0 = normal wind. Default is 1.0 | ||
769 | strength = 1.0 | ||
770 | |||
771 | |||
772 | [Cloud] | ||
773 | ; Enable this to generate classic particle clouds above the sim. | ||
774 | ; default is disabled - turn it on here | ||
775 | enabled = false | ||
776 | |||
777 | ; Density of cloud cover 0.0 to 1.0 Defult 0.5 | ||
778 | density = 0.5 | ||
779 | |||
780 | ; update interval for the cloud cover data returned by llCloud(). | ||
781 | ; default is 1000 | ||
782 | cloud_update_rate = 1000 | ||
783 | |||
784 | [LightShare] | ||
785 | |||
786 | ; This enables the transmission of Windlight scenes to supporting clients, such as the Meta7 viewer. | ||
787 | ; It has no ill effect on viewers which do not support server-side windlight settings. | ||
788 | ; Currently we only have support for MySQL databases. | ||
789 | enable_windlight = false; | ||
790 | |||
791 | [Trees] | ||
792 | ; Enable this to allow the tree module to manage your sim trees, including growing, reproducing and dying | ||
793 | ; default is false | ||
794 | active_trees = false | ||
795 | |||
796 | ; Density of tree population | ||
797 | tree_density = 1000.0 | ||
798 | |||
799 | |||
800 | [VectorRender] | ||
801 | |||
802 | ; the font to use for rendering text (default: Arial) | ||
803 | ; font_name = "Arial" | ||
804 | |||
805 | |||
806 | [LL-Functions] | ||
807 | ; Set the following to true to allow administrator owned scripts to execute console commands | ||
808 | ; currently unused | ||
809 | ; AllowosConsoleCommand=false | ||
810 | |||
811 | AllowGodFunctions = false | ||
812 | |||
813 | ; Maximum number of llListen events we allow per script | ||
814 | ; Set this to 0 to have no limit imposed. | ||
815 | max_listens_per_script = 64 | ||
816 | |||
817 | |||
818 | [DataSnapshot] | ||
819 | ; The following set of configs pertains to search. | ||
820 | ; Set index_sims to true to enable search engines to index your searchable data | ||
821 | ; If false, no data will be exposed, DataSnapshot module will be off, and you can ignore the rest of these search-related configs | ||
822 | ; default is false | ||
823 | index_sims = false | ||
824 | |||
825 | ; The variable data_exposure controls what the regions expose: | ||
826 | ; minimum: exposes only things explicitly marked for search | ||
827 | ; all: exposes everything | ||
828 | data_exposure = minimum | ||
829 | |||
830 | ; If search is on, change this to your grid name; will be ignored for standalones | ||
831 | gridname = "OSGrid" | ||
832 | |||
833 | ; Period between data snapshots, in seconds. 20 minutes, for starters, so that you see the initial changes fast. | ||
834 | ; Later, you may want to increase this to 3600 (1 hour) or more | ||
835 | default_snapshot_period = 1200 | ||
836 | |||
837 | ; This will be created in bin, if it doesn't exist already. It will hold the data snapshots. | ||
838 | snapshot_cache_directory = "DataSnapshot" | ||
839 | |||
840 | ; This semicolon-separated string serves to notify specific data services about the existence | ||
841 | ; of this sim. Uncomment if you want to index your data with this and/or other search providers. | ||
842 | ;data_services="http://metaverseink.com/cgi-bin/register.py" | ||
843 | |||
844 | |||
845 | [Economy] | ||
846 | ; These economy values get used in the BetaGridLikeMoneyModule. - This module is for demonstration only - | ||
847 | |||
848 | ; Enables selling things for $0 | ||
849 | SellEnabled = "false" | ||
850 | |||
851 | ; 45000 is the highest value that the sim could possibly report because of protocol constraints | ||
852 | ObjectCapacity = 45000 | ||
853 | |||
854 | ; Money Unit fee to upload textures, animations etc | ||
855 | PriceUpload = 0 | ||
856 | |||
857 | ; Money Unit fee to create groups | ||
858 | PriceGroupCreate = 0 | ||
859 | |||
860 | ; We don't really know what the rest of these values do. These get sent to the client | ||
861 | ; These taken from Agni at a Public Telehub. Change at your own risk. | ||
862 | ObjectCount = 0 | ||
863 | PriceEnergyUnit = 100 | ||
864 | PriceObjectClaim = 10 | ||
865 | PricePublicObjectDecay = 4 | ||
866 | PricePublicObjectDelete = 4 | ||
867 | PriceParcelClaim = 1 | ||
868 | PriceParcelClaimFactor = 1 | ||
869 | |||
870 | PriceRentLight = 5 | ||
871 | TeleportMinPrice = 2 | ||
872 | TeleportPriceExponent = 2 | ||
873 | EnergyEfficiency = 1 | ||
874 | PriceObjectRent = 1 | ||
875 | PriceObjectScaleFactor = 10 | ||
876 | PriceParcelRent = 1 | ||
877 | |||
878 | |||
879 | [SVN] | ||
880 | Enabled = false | ||
881 | Directory = SVNmodule\repo | ||
882 | URL = "svn://your.repo.here/" | ||
883 | Username = "user" | ||
884 | Password = "password" | ||
885 | ImportOnStartup = false | ||
886 | Autosave = false | ||
887 | AutoSavePeriod = 15 ; Number of minutes between autosave backups | ||
888 | |||
889 | |||
890 | [XEngine] | ||
891 | ; Enable this engine in this OpenSim instance | ||
892 | Enabled = true | ||
893 | |||
894 | ; How many threads to keep alive even if nothing is happening | ||
895 | MinThreads = 2 | ||
896 | |||
897 | ; How many threads to start at maximum load | ||
898 | MaxThreads = 100 | ||
899 | |||
900 | ; Time a thread must be idle (in seconds) before it dies | ||
901 | IdleTimeout = 60 | ||
902 | |||
903 | ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest") | ||
904 | Priority = "BelowNormal" | ||
905 | |||
906 | ; Maximum number of events to queue for a script (excluding timers) | ||
907 | MaxScriptEventQueue = 300 | ||
908 | |||
909 | ; Stack size per thread created | ||
910 | ThreadStackSize = 262144 | ||
911 | |||
912 | ; Set this to true (the default) to load each script into a separate | ||
913 | ; AppDomain. Setting this to false will load all script assemblies into the | ||
914 | ; current AppDomain, which will reduce the per-script overhead at the | ||
915 | ; expense of reduced security and the inability to garbage collect the | ||
916 | ; script assemblies | ||
917 | AppDomainLoading = true | ||
918 | |||
919 | ; Rate to poll for asynchronous command replies (ms) | ||
920 | ; currently unused | ||
921 | ;AsyncLLCommandLoopms = 50 | ||
922 | |||
923 | ; Save the source of all compiled scripts | ||
924 | WriteScriptSourceToDebugFile = false | ||
925 | |||
926 | ; Default language for scripts | ||
927 | DefaultCompileLanguage = lsl | ||
928 | |||
929 | ; List of allowed languages (lsl,vb,js,cs) | ||
930 | ; AllowedCompilers=lsl,cs,js,vb. | ||
931 | ; *warning*, non lsl languages have access to static methods such as System.IO.File. Enable at your own risk. | ||
932 | AllowedCompilers=lsl | ||
933 | |||
934 | ; Compile debug info (line numbers) into the script assemblies | ||
935 | CompileWithDebugInformation = true | ||
936 | |||
937 | ; Allow the user of mod* functions. This allows a script to pass messages | ||
938 | ; to a region module via the modSendCommand() function | ||
939 | ; Default is false | ||
940 | AllowMODFunctions = false | ||
941 | |||
942 | ; Allow the use of os* functions (some are dangerous) | ||
943 | AllowOSFunctions = false | ||
944 | |||
945 | ; Allow the user of LightShare functions | ||
946 | AllowLightShareFunctions = false | ||
947 | |||
948 | ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe | ||
949 | OSFunctionThreatLevel = VeryLow | ||
950 | |||
951 | ; Interval (s) between background save of script states | ||
952 | SaveInterval = 120 | ||
953 | |||
954 | ; Interval (s) between maintenance runs (0 = disable) | ||
955 | MaintenanceInterval = 10 | ||
956 | |||
957 | ; Time a script can spend in an event handler before it is interrupted | ||
958 | EventLimit = 30 | ||
959 | |||
960 | ; If a script overruns it's event limit, kill the script? | ||
961 | KillTimedOutScripts = false | ||
962 | |||
963 | ; Sets the multiplier for the scripting delays | ||
964 | ScriptDelayFactor = 1.0 | ||
965 | |||
966 | ; The factor the 10 m distances llimits are multiplied by | ||
967 | ScriptDistanceLimitFactor = 1.0 | ||
968 | |||
969 | ; Maximum length of notecard line read | ||
970 | ; Increasing this to large values potentially opens | ||
971 | ; up the system to malicious scripters | ||
972 | ; NotecardLineReadCharsMax = 255 | ||
973 | |||
974 | ; Sensor settings | ||
975 | SensorMaxRange = 96.0 | ||
976 | SensorMaxResults = 16 | ||
977 | |||
978 | ; OS Functions enable/disable | ||
979 | ; For each function, you can add one line, as shown | ||
980 | ; The default for all functions allows them if below threat level | ||
981 | |||
982 | ; true allows the use of the function unconditionally | ||
983 | ; Allow_osSetRegionWaterHeight = true | ||
984 | |||
985 | ; false disables the function completely | ||
986 | ; Allow_osSetRegionWaterHeight = false | ||
987 | |||
988 | ; Comma separated list of UUIDS allows the function for that list of UUIDS | ||
989 | ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb | ||
990 | |||
991 | ; You can also use script creators as the uuid | ||
992 | ; Creators_osSetRegionWaterHeight = <uuid>, ... | ||
993 | |||
994 | ; If both Allow_ and Creators_ are given, effective permissions | ||
995 | ; are the union of the two. | ||
996 | |||
997 | ; Allow for llCreateLink and llBreakLink to work without asking for permission | ||
998 | ; only enable this in a trusted environment otherwise you may be subject to hijacking | ||
999 | ; AutomaticLinkPermission = false | ||
1000 | |||
1001 | ; Disable underground movement of prims (default true); set to | ||
1002 | ; false to allow script controlled underground positioning of | ||
1003 | ; prims | ||
1004 | ; DisableUndergroundMovement = true | ||
1005 | |||
1006 | |||
1007 | [OpenGridProtocol] | ||
1008 | ;These are the settings for the Open Grid Protocol.. the Agent Domain, Region Domain, you know.. | ||
1009 | ;On/true or Off/false | ||
1010 | ogp_enabled=false | ||
1011 | |||
1012 | ;Name Prefix/suffix when using OGP | ||
1013 | ogp_firstname_prefix="" | ||
1014 | ogp_lastname_suffix="_EXTERNAL" | ||
1015 | |||
1016 | |||
1017 | [Concierge] | ||
1018 | ; Enable concierge module | ||
1019 | ; Default is false | ||
1020 | enabled = false | ||
1021 | |||
1022 | ; name of the concierge | ||
1023 | whoami = "jeeves" | ||
1024 | |||
1025 | ; password for updating the welcome message templates via XmlRpc | ||
1026 | password = SECRET | ||
1027 | |||
1028 | ; regex specifying for which regions concierge service is desired; if | ||
1029 | ; empty, then for all | ||
1030 | regions = "^MeetingSpace-" | ||
1031 | |||
1032 | ; for each region that matches the regions regexp you can provide | ||
1033 | ; (optionally) a welcome template using format substitution: | ||
1034 | ; {0} is replaced with the name of the avatar entering the region | ||
1035 | ; {1} is replaced with the name of the region | ||
1036 | ; {2} is replaced with the name of the concierge (whoami variable above) | ||
1037 | |||
1038 | welcomes = /path/to/welcome/template/directory | ||
1039 | |||
1040 | ; Concierge can send attendee lists to an event broker whenever an | ||
1041 | ; avatar enters or leaves a concierged region. the URL is subject | ||
1042 | ; to format substitution: | ||
1043 | ; {0} is replaced with the region's name | ||
1044 | ; {1} is replaced with the region's UUID | ||
1045 | broker = "http://broker.place.com/{1}" | ||
1046 | |||
1047 | |||
1048 | [RegionReady] | ||
1049 | ; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled | ||
1050 | ; default is false | ||
1051 | enabled = false | ||
1052 | |||
1053 | ; Channel on which to signal region readiness through a message | ||
1054 | ; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]" | ||
1055 | ; - the first field indicating whether this is an initial server startup | ||
1056 | ; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error) | ||
1057 | ; - the third field is a number indicating how many scripts failed to compile | ||
1058 | ; - "oar error" if supplied, provides the error message from the OAR load | ||
1059 | channel_notify = -800 | ||
1060 | |||
1061 | |||
1062 | [MRM] | ||
1063 | ; Enables the Mini Region Modules Script Engine. | ||
1064 | ; default is false | ||
1065 | Enabled = false | ||
1066 | |||
1067 | ; Runs MRM in a Security Sandbox | ||
1068 | ; WARNING: DISABLING IS A SECURITY RISK. | ||
1069 | Sandboxed = true | ||
1070 | |||
1071 | ; The level sandbox to use, adjust at your OWN RISK. | ||
1072 | ; Valid values are: | ||
1073 | ; * FullTrust | ||
1074 | ; * SkipVerification | ||
1075 | ; * Execution | ||
1076 | ; * Nothing | ||
1077 | ; * LocalIntranet | ||
1078 | ; * Internet | ||
1079 | ; * Everything | ||
1080 | SandboxLevel = "Internet" | ||
1081 | |||
1082 | ; Only allow Region Owners to run MRMs | ||
1083 | ; May represent a security risk if you disable this. | ||
1084 | OwnerOnly = true | ||
1085 | |||
1086 | [Hypergrid] | ||
1087 | ; Keep it false for now. Making it true requires the use of a special client in order to access inventory | ||
1088 | safemode = false | ||
1089 | |||
1090 | [VivoxVoice] | ||
1091 | ; The VivoxVoice module will allow you to provide voice on your | ||
1092 | ; region(s). It uses the same voice technology as the LL grid and | ||
1093 | ; works with recent LL clients (we have tested 1.22.9.110075, so | ||
1094 | ; anything later ought to be fine as well). | ||
1095 | ; | ||
1096 | ; For this to work you need to obtain an admin account from Vivox | ||
1097 | ; that allows you to create voice accounts and region channels. | ||
1098 | |||
1099 | enabled = false | ||
1100 | |||
1101 | ; vivox voice server | ||
1102 | vivox_server = www.foobar.vivox.com | ||
1103 | |||
1104 | ; vivox SIP URI | ||
1105 | vivox_sip_uri = foobar.vivox.com | ||
1106 | |||
1107 | ; vivox admin user name | ||
1108 | vivox_admin_user = DeepThroat | ||
1109 | |||
1110 | ; vivox admin password | ||
1111 | vivox_admin_password = VoiceG4te | ||
1112 | |||
1113 | ; channel type: "channel" or "positional" | ||
1114 | ; - positional: spatial sound (default) | ||
1115 | ; - channel: normal "conference call", no spatial sound | ||
1116 | ;vivox_channel_type = positional | ||
1117 | |||
1118 | ; channel characteristics (unless you know what you are doing, i'd | ||
1119 | ; leave them as they are --- now you WILL muck around with them, | ||
1120 | ; huh? sigh) | ||
1121 | |||
1122 | ; channel distance model: | ||
1123 | ; 0 - no attenuation | ||
1124 | ; 1 - inverse distance attenuation | ||
1125 | ; 2 - linear attenuation (default) | ||
1126 | ; 3 - exponential attenuation | ||
1127 | ;vivox_channel_distance_model = 2 | ||
1128 | |||
1129 | ; channel mode: | ||
1130 | ; - "open" (default) | ||
1131 | ; - "lecture" | ||
1132 | ; - "presentation" | ||
1133 | ; - "auditorium" | ||
1134 | ;vivox_channel_mode = "open" | ||
1135 | |||
1136 | ; channel roll off: rate of attenuation | ||
1137 | ; - a value between 1.0 and 4.0, default is 2.0 | ||
1138 | ;vivox_channel_roll_off = 2.0 | ||
1139 | |||
1140 | ; channel max range: distance at which channel is silent | ||
1141 | ; - a value between 0 and 160, default is 80 | ||
1142 | ;vivox_channel_max_range = 80 | ||
1143 | |||
1144 | ; channel clamping distance: distance before attenuation applies | ||
1145 | ; - a value between 0 and 160, default is 10 | ||
1146 | ;vivox_channel_clamping_distance = 10 | ||
1147 | |||
1148 | [FreeSwitchVoice] | ||
1149 | ; In order for this to work you need a functioning FreeSWITCH PBX set up. | ||
1150 | ; Configuration details at http://opensimulator.org/wiki/Freeswitch_Module | ||
1151 | enabled = false | ||
1152 | ; FreeSWITCH server is going to contact us and ask us all sorts of things | ||
1153 | freeswitch_server_user = freeswitch | ||
1154 | freeswitch_server_pass = password | ||
1155 | freeswitch_api_prefix = /api | ||
1156 | ; external IP address of your OpenSim voice enabled region | ||
1157 | ; note: all regions running on same OpenSim.exe will be enabled | ||
1158 | freeswitch_service_server = ip.address.of.your.sim | ||
1159 | ; this should be the same port the region listens on | ||
1160 | freeswitch_service_port = 9000 | ||
1161 | freeswitch_realm = ip.address.of.freeswitch.server | ||
1162 | freeswitch_sip_proxy = ip.address.of.freeswitch.server:5060 | ||
1163 | ; STUN = Simple Traversal of UDP through NATs | ||
1164 | ; See http://wiki.freeswitch.org/wiki/NAT_Traversal | ||
1165 | ; stun.freeswitch.org is not guaranteed to be running so use it in production at your own risk | ||
1166 | freeswitch_attempt_stun = false | ||
1167 | freeswitch_stun_server = ip.address.of.stun.server | ||
1168 | freeswitch_echo_server = ip.address.of.freeswitch.server | ||
1169 | freeswitch_echo_port = 50505 | ||
1170 | freeswitch_well_known_ip = ip.address.of.freeswitch.server | ||
1171 | ; | ||
1172 | ; Type the address of your http server here, hostname is allowed. This is provided so you can specify a hostname | ||
1173 | ; This is used by client for account verification. By default, it's the same as the freeswitch service server. | ||
1174 | ; | ||
1175 | ; opensim_well_known_http_address = Address_Of_Your_SIM_HTTP_Server_Hostname_Allowed | ||
1176 | ; | ||
1177 | freeswitch_default_timeout = 5000 | ||
1178 | freeswitch_subscribe_retry = 120 | ||
1179 | ; freeswitch_password_reset_url = | ||
1180 | |||
1181 | [Groups] | ||
1182 | Enabled = false | ||
1183 | |||
1184 | ; This is the current groups stub in Region.CoreModules.Avatar.Groups. All the other settings below only really | ||
1185 | ; apply to the Flotsam/SimianGrid GroupsModule | ||
1186 | Module = Default | ||
1187 | |||
1188 | ; This module can use a PHP XmlRpc server from the Flotsam project at http://code.google.com/p/flotsam/ | ||
1189 | ; or from the SimianGrid project at http://code.google.com/p/openmetaverse | ||
1190 | ;Module = GroupsModule | ||
1191 | |||
1192 | ; Enable Group Notices | ||
1193 | ;NoticesEnabled = true | ||
1194 | |||
1195 | ; This makes the Groups modules very chatty on the console. | ||
1196 | DebugEnabled = false | ||
1197 | |||
1198 | ; Specify which messaging module to use for groups messaging and if it's enabled | ||
1199 | ;MessagingModule = GroupsMessagingModule | ||
1200 | ;MessagingEnabled = true | ||
1201 | |||
1202 | ; Service connectors to the Groups Service. Select one depending on whether you're using a Flotsam XmlRpc backend or a SimianGrid backend | ||
1203 | |||
1204 | ; SimianGrid Service for Groups | ||
1205 | ;ServicesConnectorModule = SimianGroupsServicesConnector | ||
1206 | ;GroupsServerURI = http://mygridserver.com:82/Grid/ | ||
1207 | |||
1208 | ; Flotsam XmlRpc Service for Groups | ||
1209 | ;ServicesConnectorModule = XmlRpcGroupsServicesConnector | ||
1210 | ;GroupsServerURI = http://yourxmlrpcserver.com/xmlrpc.php | ||
1211 | |||
1212 | ; XmlRpc Security settings. These must match those set on your backend groups service. | ||
1213 | ;XmlRpcServiceReadKey = 1234 | ||
1214 | ;XmlRpcServiceWriteKey = 1234 | ||
1215 | |||
1216 | ; Disables HTTP Keep-Alive for XmlRpcGroupsServicesConnector HTTP Requests, | ||
1217 | ; this is a work around fora problem discovered on some Windows based region servers. | ||
1218 | ; Only disable keep alive if you see a large number (dozens) of the following Exceptions: | ||
1219 | ; System.Net.WebException: The request was aborted: The request was canceled. | ||
1220 | ; XmlRpcDisableKeepAlive = false | ||
1221 | |||
1222 | |||
1223 | [PacketPool] | ||
1224 | ; Enables the experimental packet pool. Yes, we've been here before. | ||
1225 | ;RecyclePackets = true; | ||
1226 | ;RecycleDataBlocks = true; | ||
1227 | |||
1228 | |||
1229 | [InterestManagement] | ||
1230 | ; This section controls how state updates are prioritized for each client | ||
1231 | ; Valid values are Time, Distance, SimpleAngularDistance, and FrontBack | ||
1232 | UpdatePrioritizationScheme = FrontBack | ||
1233 | ReprioritizationEnabled = true | ||
1234 | ReprioritizationInterval = 2000.0 | ||
1235 | RootReprioritizationDistance = 10.0 | ||
1236 | ChildReprioritizationDistance = 20.0 | ||
1237 | |||
1238 | |||
1239 | [WebStats] | ||
1240 | ; View region statistics via a web page | ||
1241 | ; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page | ||
1242 | ; Use a web browser and type in the "Login URI" + "/SStats/" | ||
1243 | ; For example- http://127.0.0.1:9000/SStats/ | ||
1244 | ; enabled=false | ||
1245 | |||
1246 | |||
1247 | [MediaOnAPrim] | ||
1248 | ; Enable media on a prim facilities | ||
1249 | Enabled = true; | ||
1250 | |||
1251 | |||
1252 | ;; | ||
1253 | ;; These are defaults that are overwritten below in [Architecture]. | ||
1254 | ;; These defaults allow OpenSim to work out of the box with | ||
1255 | ;; zero configuration | ||
1256 | ;; | ||
1257 | [AssetService] | ||
1258 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
1259 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
1260 | |||
1261 | ; Disable this to prevent the default asset set from being inserted into the | ||
1262 | ; asset store each time the region starts | ||
1263 | AssetLoaderEnabled = true | ||
1264 | |||
1265 | [GridService] | ||
1266 | ;; default standalone, overridable in StandaloneCommon.ini | ||
1267 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
1268 | |||
1269 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1270 | ;; The following is the configuration section for the new style services | ||
1271 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1272 | [Architecture] | ||
1273 | ; Choose exactly one and only one of the architectures below. | ||
1274 | |||
1275 | Include-Standalone = "config-include/Standalone.ini" | ||
1276 | ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini" | ||
1277 | ;Include-Grid = "config-include/Grid.ini" | ||
1278 | ;Include-HGGrid = "config-include/GridHypergrid.ini" | ||
1279 | ;Include-SimianGrid = "config-include/SimianGrid.ini" | ||
1280 | ;Include-HyperSimianGrid = "config-include/HyperSimianGrid.ini" | ||
1281 | |||
1282 | ; Then choose | ||
1283 | ; config-include/StandaloneCommon.ini.example (if you're in standlone) OR | ||
1284 | ; config-include/GridCommon.ini.example (if you're connected to a grid) | ||
1285 | ; Copy to your own .ini there (without .example extension) and edit it | ||
1286 | ; to customize your data | ||
1287 | |||
1288 | |||
1289 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1290 | ;; The below pulls in optional module config files | ||
1291 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1292 | [Modules] | ||
1293 | Include-modules = "addon-modules/*/config/*.ini" | ||
1294 | |||
1295 | |||
1296 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1297 | ;; ENSURE [Architecture] and [Modules] Sections with their "includes" | ||
1298 | ;; are last to allow for overrides | ||
1299 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
diff --git a/bin/config-include/storage/SQLiteLegacyStandalone.ini b/bin/config-include/storage/SQLiteLegacyStandalone.ini new file mode 100644 index 0000000..facbbd6 --- /dev/null +++ b/bin/config-include/storage/SQLiteLegacyStandalone.ini | |||
@@ -0,0 +1,17 @@ | |||
1 | ; These are the initialization settings for running OpenSim Standalone with an SQLite database | ||
2 | |||
3 | [DatabaseService] | ||
4 | StorageProvider = "OpenSim.Data.SQLiteLegacy.dll" | ||
5 | ConnectionString = "URI=file:OpenSim.db,version=3,UseUTF16Encoding=True" | ||
6 | |||
7 | [AvatarService] | ||
8 | ConnectionString = "URI=file:avatars.db,version=3" | ||
9 | |||
10 | [AuthenticationService] | ||
11 | ConnectionString = "URI=file:auth.db,version=3" | ||
12 | |||
13 | [UserAccountService] | ||
14 | ConnectionString = "URI=file:userprofiles.db,version=3" | ||
15 | |||
16 | [FriendsService] | ||
17 | ConnectionString = "URI=file:friends.db,version=3" | ||
diff --git a/bin/config-include/storage/SQLiteStandalone.ini b/bin/config-include/storage/SQLiteStandalone.ini new file mode 100644 index 0000000..10e6991 --- /dev/null +++ b/bin/config-include/storage/SQLiteStandalone.ini | |||
@@ -0,0 +1,26 @@ | |||
1 | ; These are the initialization settings for running OpenSim Standalone with an SQLite database | ||
2 | |||
3 | [DatabaseService] | ||
4 | StorageProvider = "OpenSim.Data.SQLite.dll" | ||
5 | ConnectionString = "URI=file:OpenSim.db,version=3,UseUTF16Encoding=True" | ||
6 | |||
7 | [InventoryService] | ||
8 | ;ConnectionString = "URI=file:inventory.db,version=3" | ||
9 | ; if you have a legacy inventory store use the connection string below | ||
10 | ConnectionString = "URI=file:inventory.db,version=3,UseUTF16Encoding=True" | ||
11 | |||
12 | [AvatarService] | ||
13 | ConnectionString = "URI=file:avatars.db,version=3" | ||
14 | |||
15 | [AuthenticationService] | ||
16 | ConnectionString = "URI=file:auth.db,version=3" | ||
17 | |||
18 | [UserAccountService] | ||
19 | ConnectionString = "URI=file:userprofiles.db,version=3" | ||
20 | |||
21 | [GridUserService] | ||
22 | ConnectionString = "URI=file:griduser.db,version=3" | ||
23 | |||
24 | [FriendsService] | ||
25 | ConnectionString = "URI=file:friends.db,version=3" | ||
26 | |||