diff options
author | Teravus Ovares (Dan Olivares) | 2009-11-27 19:17:54 -0500 |
---|---|---|
committer | Teravus Ovares (Dan Olivares) | 2009-11-27 19:17:54 -0500 |
commit | e7333515d95f063ce5dfe714b4cf34db85549a90 (patch) | |
tree | cf320591d49e96c67baffdb1f96c4165eafc2741 /OpenSim/Region | |
parent | * Re-enable lightweight packet tracking stats on a 3000 ms interval. (diff) | |
parent | Rename TestAssetDataPlugin to MockAssetDataPlugin (diff) | |
download | opensim-SC_OLD-e7333515d95f063ce5dfe714b4cf34db85549a90.zip opensim-SC_OLD-e7333515d95f063ce5dfe714b4cf34db85549a90.tar.gz opensim-SC_OLD-e7333515d95f063ce5dfe714b4cf34db85549a90.tar.bz2 opensim-SC_OLD-e7333515d95f063ce5dfe714b4cf34db85549a90.tar.xz |
Merge branch 'master' of ssh://MyConnection/var/git/opensim
Diffstat (limited to 'OpenSim/Region')
13 files changed, 77 insertions, 177 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 4221212..c2aa8e2 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -13610,7 +13610,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
13610 | if (handlerGodKickUser != null) | 13610 | if (handlerGodKickUser != null) |
13611 | { | 13611 | { |
13612 | handlerGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID, | 13612 | handlerGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID, |
13613 | gkupack.UserInfo.AgentID, (uint)0, gkupack.UserInfo.Reason); | 13613 | gkupack.UserInfo.AgentID, gkupack.UserInfo.KickFlags, gkupack.UserInfo.Reason,gkupack.UserInfo); |
13614 | } | 13614 | } |
13615 | } | 13615 | } |
13616 | else | 13616 | else |
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs index 273c128..7e1bed5 100644 --- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs | |||
@@ -98,7 +98,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods | |||
98 | /// <param name="godID">The person doing the kicking</param> | 98 | /// <param name="godID">The person doing the kicking</param> |
99 | /// <param name="sessionID">The session of the person doing the kicking</param> | 99 | /// <param name="sessionID">The session of the person doing the kicking</param> |
100 | /// <param name="agentID">the person that is being kicked</param> | 100 | /// <param name="agentID">the person that is being kicked</param> |
101 | /// <param name="kickflags">This isn't used apparently</param> | 101 | /// <param name="kickflags">Tells what to do to the user</param> |
102 | /// <param name="reason">The message to send to the user after it's been turned into a field</param> | 102 | /// <param name="reason">The message to send to the user after it's been turned into a field</param> |
103 | public void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason) | 103 | public void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason) |
104 | { | 104 | { |
@@ -110,39 +110,56 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods | |||
110 | { | 110 | { |
111 | if (m_scene.Permissions.IsGod(godID)) | 111 | if (m_scene.Permissions.IsGod(godID)) |
112 | { | 112 | { |
113 | if (agentID == kickUserID) | 113 | if (kickflags == 0) |
114 | { | 114 | { |
115 | string reasonStr = Utils.BytesToString(reason); | 115 | if (agentID == kickUserID) |
116 | { | ||
117 | string reasonStr = Utils.BytesToString(reason); | ||
116 | 118 | ||
117 | m_scene.ForEachClient( | 119 | m_scene.ForEachClient( |
118 | delegate(IClientAPI controller) | 120 | delegate(IClientAPI controller) |
119 | { | 121 | { |
120 | if (controller.AgentId != godID) | 122 | if (controller.AgentId != godID) |
121 | controller.Kick(reasonStr); | 123 | controller.Kick(reasonStr); |
122 | } | 124 | } |
123 | ); | 125 | ); |
124 | 126 | ||
125 | // This is a bit crude. It seems the client will be null before it actually stops the thread | 127 | // This is a bit crude. It seems the client will be null before it actually stops the thread |
126 | // The thread will kill itself eventually :/ | 128 | // The thread will kill itself eventually :/ |
127 | // Is there another way to make sure *all* clients get this 'inter region' message? | 129 | // Is there another way to make sure *all* clients get this 'inter region' message? |
128 | m_scene.ForEachScenePresence( | 130 | m_scene.ForEachScenePresence( |
129 | delegate(ScenePresence p) | 131 | delegate(ScenePresence p) |
130 | { | ||
131 | if (p.UUID != godID && !p.IsChildAgent) | ||
132 | { | 132 | { |
133 | // Possibly this should really be p.Close() though that method doesn't send a close | 133 | if (p.UUID != godID && !p.IsChildAgent) |
134 | // to the client | 134 | { |
135 | p.ControllingClient.Close(); | 135 | // Possibly this should really be p.Close() though that method doesn't send a close |
136 | // to the client | ||
137 | p.ControllingClient.Close(); | ||
138 | } | ||
136 | } | 139 | } |
137 | } | 140 | ); |
138 | ); | 141 | } |
142 | else | ||
143 | { | ||
144 | m_scene.SceneGraph.removeUserCount(!sp.IsChildAgent); | ||
145 | |||
146 | sp.ControllingClient.Kick(Utils.BytesToString(reason)); | ||
147 | sp.ControllingClient.Close(); | ||
148 | } | ||
139 | } | 149 | } |
140 | else | 150 | |
151 | if (kickflags == 1) | ||
141 | { | 152 | { |
142 | m_scene.SceneGraph.removeUserCount(!sp.IsChildAgent); | 153 | sp.AllowMovement = false; |
143 | 154 | m_dialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason)); | |
144 | sp.ControllingClient.Kick(Utils.BytesToString(reason)); | 155 | m_dialogModule.SendAlertToUser(godID, "User Frozen"); |
145 | sp.ControllingClient.Close(); | 156 | } |
157 | |||
158 | if (kickflags == 2) | ||
159 | { | ||
160 | sp.AllowMovement = true; | ||
161 | m_dialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason)); | ||
162 | m_dialogModule.SendAlertToUser(godID, "User Unfrozen"); | ||
146 | } | 163 | } |
147 | } | 164 | } |
148 | else | 165 | else |
diff --git a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs index d4a28e2..60df2e7 100644 --- a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs | |||
@@ -602,9 +602,12 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm | |||
602 | ListenerInfo info = | 602 | ListenerInfo info = |
603 | ListenerInfo.FromData(localID, itemID, hostID, item); | 603 | ListenerInfo.FromData(localID, itemID, hostID, item); |
604 | 604 | ||
605 | if (!m_listeners.ContainsKey((int)item[2])) | 605 | lock (m_listeners) |
606 | m_listeners.Add((int)item[2], new List<ListenerInfo>()); | 606 | { |
607 | m_listeners[(int)item[2]].Add(info); | 607 | if (!m_listeners.ContainsKey((int)item[2])) |
608 | m_listeners.Add((int)item[2], new List<ListenerInfo>()); | ||
609 | m_listeners[(int)item[2]].Add(info); | ||
610 | } | ||
608 | 611 | ||
609 | idx+=6; | 612 | idx+=6; |
610 | } | 613 | } |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 34b81d8..af72968 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -454,6 +454,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
454 | /// <summary> | 454 | /// <summary> |
455 | /// Resolve path to a working FileStream | 455 | /// Resolve path to a working FileStream |
456 | /// </summary> | 456 | /// </summary> |
457 | /// <param name="path"></param> | ||
458 | /// <returns></returns> | ||
457 | private Stream GetStream(string path) | 459 | private Stream GetStream(string path) |
458 | { | 460 | { |
459 | if (File.Exists(path)) | 461 | if (File.Exists(path)) |
@@ -500,8 +502,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
500 | WebResponse response = request.GetResponse(); | 502 | WebResponse response = request.GetResponse(); |
501 | Stream file = response.GetResponseStream(); | 503 | Stream file = response.GetResponseStream(); |
502 | 504 | ||
503 | if (response.ContentType != "application/x-oar") | 505 | // justincc: gonna ignore the content type for now and just try anything |
504 | throw new Exception(String.Format("{0} does not identify an OAR file", uri.ToString())); | 506 | //if (response.ContentType != "application/x-oar") |
507 | // throw new Exception(String.Format("{0} does not identify an OAR file", uri.ToString())); | ||
505 | 508 | ||
506 | if (response.ContentLength == 0) | 509 | if (response.ContentLength == 0) |
507 | throw new Exception(String.Format("{0} returned an empty file", uri.ToString())); | 510 | throw new Exception(String.Format("{0} returned an empty file", uri.ToString())); |
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 013a0ef..c9b3071 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -800,30 +800,31 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
800 | } | 800 | } |
801 | 801 | ||
802 | protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers) | 802 | protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers) |
803 | { | 803 | { |
804 | bool permission = false; | ||
805 | |||
806 | if (parcel.LandData.OwnerID == user) | 804 | if (parcel.LandData.OwnerID == user) |
807 | { | 805 | { |
808 | permission = true; | 806 | // Returning immediately so that group deeded objects on group deeded land don't trigger a NRE on |
807 | // the subsequent redundant checks when using lParcelMediaCommandList() | ||
808 | // See http://opensimulator.org/mantis/view.php?id=3999 for more details | ||
809 | return true; | ||
809 | } | 810 | } |
810 | 811 | ||
811 | if (parcel.LandData.IsGroupOwned && IsGroupMember(parcel.LandData.GroupID, user, groupPowers)) | 812 | if (parcel.LandData.IsGroupOwned && IsGroupMember(parcel.LandData.GroupID, user, groupPowers)) |
812 | { | 813 | { |
813 | permission = true; | 814 | return true; |
814 | } | 815 | } |
815 | 816 | ||
816 | if (IsEstateManager(user)) | 817 | if (IsEstateManager(user)) |
817 | { | 818 | { |
818 | permission = true; | 819 | return true; |
819 | } | 820 | } |
820 | 821 | ||
821 | if (IsAdministrator(user)) | 822 | if (IsAdministrator(user)) |
822 | { | 823 | { |
823 | permission = true; | 824 | return true; |
824 | } | 825 | } |
825 | 826 | ||
826 | return permission; | 827 | return false; |
827 | } | 828 | } |
828 | 829 | ||
829 | protected bool GenericParcelPermission(UUID user, Vector3 pos, ulong groupPowers) | 830 | protected bool GenericParcelPermission(UUID user, Vector3 pos, ulong groupPowers) |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 2558757..fbabb5c 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4398,16 +4398,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4398 | 4398 | ||
4399 | #endregion | 4399 | #endregion |
4400 | 4400 | ||
4401 | #region Avatar Appearance Default | ||
4402 | |||
4403 | public static void GetDefaultAvatarAppearance(out AvatarWearable[] wearables, out byte[] visualParams) | ||
4404 | { | ||
4405 | visualParams = AvatarAppearance.GetDefaultVisualParams(); | ||
4406 | wearables = AvatarWearable.DefaultWearables; | ||
4407 | } | ||
4408 | |||
4409 | #endregion | ||
4410 | |||
4411 | public void RegionHandleRequest(IClientAPI client, UUID regionID) | 4401 | public void RegionHandleRequest(IClientAPI client, UUID regionID) |
4412 | { | 4402 | { |
4413 | ulong handle = 0; | 4403 | ulong handle = 0; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 6ec2a01..7359011 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1199,6 +1199,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1199 | 1199 | ||
1200 | if (!silent) | 1200 | if (!silent) |
1201 | { | 1201 | { |
1202 | part.UpdateFlag = 0; | ||
1202 | if (part == m_rootPart) | 1203 | if (part == m_rootPart) |
1203 | avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId); | 1204 | avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId); |
1204 | } | 1205 | } |
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs index 70e80bc..e664b44 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs | |||
@@ -69,13 +69,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
69 | m_config = config.Configs["IRC"]; | 69 | m_config = config.Configs["IRC"]; |
70 | if (m_config == null) | 70 | if (m_config == null) |
71 | { | 71 | { |
72 | m_log.InfoFormat("[IRC-Bridge] module not configured"); | 72 | // m_log.InfoFormat("[IRC-Bridge] module not configured"); |
73 | return; | 73 | return; |
74 | } | 74 | } |
75 | 75 | ||
76 | if (!m_config.GetBoolean("enabled", false)) | 76 | if (!m_config.GetBoolean("enabled", false)) |
77 | { | 77 | { |
78 | m_log.InfoFormat("[IRC-Bridge] module disabled in configuration"); | 78 | // m_log.InfoFormat("[IRC-Bridge] module disabled in configuration"); |
79 | return; | 79 | return; |
80 | } | 80 | } |
81 | 81 | ||
@@ -85,6 +85,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
85 | } | 85 | } |
86 | 86 | ||
87 | m_pluginEnabled = true; | 87 | m_pluginEnabled = true; |
88 | m_log.InfoFormat("[IRC-Bridge]: Module enabled"); | ||
88 | } | 89 | } |
89 | 90 | ||
90 | public void AddRegion(Scene scene) | 91 | public void AddRegion(Scene scene) |
@@ -143,7 +144,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
143 | 144 | ||
144 | public static XmlRpcResponse XmlRpcAdminMethod(XmlRpcRequest request, IPEndPoint remoteClient) | 145 | public static XmlRpcResponse XmlRpcAdminMethod(XmlRpcRequest request, IPEndPoint remoteClient) |
145 | { | 146 | { |
146 | m_log.Info("[IRC-Bridge]: XML RPC Admin Entry"); | 147 | m_log.Debug("[IRC-Bridge]: XML RPC Admin Entry"); |
147 | 148 | ||
148 | XmlRpcResponse response = new XmlRpcResponse(); | 149 | XmlRpcResponse response = new XmlRpcResponse(); |
149 | Hashtable responseData = new Hashtable(); | 150 | Hashtable responseData = new Hashtable(); |
@@ -188,7 +189,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
188 | } | 189 | } |
189 | catch (Exception e) | 190 | catch (Exception e) |
190 | { | 191 | { |
191 | m_log.InfoFormat("[IRC-Bridge] XML RPC Admin request failed : {0}", e.Message); | 192 | m_log.ErrorFormat("[IRC-Bridge] XML RPC Admin request failed : {0}", e.Message); |
192 | 193 | ||
193 | responseData["success"] = "false"; | 194 | responseData["success"] = "false"; |
194 | responseData["error"] = e.Message; | 195 | responseData["error"] = e.Message; |
diff --git a/OpenSim/Region/OptionalModules/Python/PythonAPI/Console.cs b/OpenSim/Region/OptionalModules/Python/PythonAPI/Console.cs deleted file mode 100644 index a823ff9..0000000 --- a/OpenSim/Region/OptionalModules/Python/PythonAPI/Console.cs +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Reflection; | ||
30 | using log4net; | ||
31 | |||
32 | namespace OpenSim.Region.Modules.Python.PythonAPI | ||
33 | { | ||
34 | class Console | ||
35 | { | ||
36 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
37 | |||
38 | public void WriteLine(string txt) | ||
39 | { | ||
40 | m_log.Info(txt); | ||
41 | } | ||
42 | |||
43 | public void WriteLine(string txt, params Object[] e) | ||
44 | { | ||
45 | m_log.Info(String.Format(txt, e)); | ||
46 | } | ||
47 | } | ||
48 | } | ||
diff --git a/OpenSim/Region/OptionalModules/Python/PythonModule.cs b/OpenSim/Region/OptionalModules/Python/PythonModule.cs deleted file mode 100644 index ce35363..0000000 --- a/OpenSim/Region/OptionalModules/Python/PythonModule.cs +++ /dev/null | |||
@@ -1,71 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Reflection; | ||
31 | using System.Security.Policy; | ||
32 | using System.Text; | ||
33 | using IronPython.Hosting; | ||
34 | using log4net; | ||
35 | using Nini.Config; | ||
36 | using OpenSim.Region.Framework.Interfaces; | ||
37 | using OpenSim.Region.Framework.Scenes; | ||
38 | |||
39 | namespace OpenSim.Region.Modules.Python | ||
40 | { | ||
41 | class PythonModule : IRegionModule | ||
42 | { | ||
43 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
44 | private PythonEngine m_python; | ||
45 | |||
46 | public void Initialise(Scene scene, IConfigSource source) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public void PostInitialise() | ||
51 | { | ||
52 | m_log.Info("[PYTHON] Initialising IronPython engine."); | ||
53 | m_python = new PythonEngine(); | ||
54 | m_python.AddToPath(System.Environment.CurrentDirectory + System.IO.Path.DirectorySeparatorChar + "Python"); | ||
55 | } | ||
56 | |||
57 | public void Close() | ||
58 | { | ||
59 | } | ||
60 | |||
61 | public string Name | ||
62 | { | ||
63 | get { return "PythonModule"; } | ||
64 | } | ||
65 | |||
66 | public bool IsSharedModule | ||
67 | { | ||
68 | get { return true; } | ||
69 | } | ||
70 | } | ||
71 | } | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 5de23ad..f5cda2c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -1037,7 +1037,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1037 | return detectedParams.TouchUV; | 1037 | return detectedParams.TouchUV; |
1038 | } | 1038 | } |
1039 | 1039 | ||
1040 | public void llDie() | 1040 | public virtual void llDie() |
1041 | { | 1041 | { |
1042 | m_host.AddScriptLPS(1); | 1042 | m_host.AddScriptLPS(1); |
1043 | throw new SelfDeleteException(); | 1043 | throw new SelfDeleteException(); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs index 0716d45..eeb59d9 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs | |||
@@ -166,7 +166,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
166 | ts.next = DateTime.Now.Ticks + (long)data[idx+1]; | 166 | ts.next = DateTime.Now.Ticks + (long)data[idx+1]; |
167 | idx += 2; | 167 | idx += 2; |
168 | 168 | ||
169 | Timers.Add(MakeTimerKey(localID,itemID), ts); | 169 | lock (TimerListLock) |
170 | { | ||
171 | Timers.Add(MakeTimerKey(localID, itemID), ts); | ||
172 | } | ||
170 | } | 173 | } |
171 | } | 174 | } |
172 | } | 175 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 5584f87..9030a5c 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -1391,7 +1391,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1391 | if (rootE.GetAttribute("UUID") != itemID.ToString()) | 1391 | if (rootE.GetAttribute("UUID") != itemID.ToString()) |
1392 | return; | 1392 | return; |
1393 | 1393 | ||
1394 | string assetID = rootE.GetAttribute("Asset"); | 1394 | // string assetID = rootE.GetAttribute("Asset"); |
1395 | 1395 | ||
1396 | XmlNodeList stateL = rootE.GetElementsByTagName("ScriptState"); | 1396 | XmlNodeList stateL = rootE.GetElementsByTagName("ScriptState"); |
1397 | 1397 | ||