diff options
author | Melanie | 2013-03-18 23:31:27 +0000 |
---|---|---|
committer | Melanie | 2013-03-18 23:31:27 +0000 |
commit | 5e1f651e21ba81d8be9693d7e8a47d49daa9fce5 (patch) | |
tree | 4856d3aa25fcd942a26af39e1510f58fef3c934d /OpenSim/Framework | |
parent | Merge commit 'ccd6f443e1092cb410f565e921f7cf4dd8cd2dac' into newmultiattach (diff) | |
parent | Improve rejection of any attempt to reattach an object that is already attached. (diff) | |
download | opensim-SC-5e1f651e21ba81d8be9693d7e8a47d49daa9fce5.zip opensim-SC-5e1f651e21ba81d8be9693d7e8a47d49daa9fce5.tar.gz opensim-SC-5e1f651e21ba81d8be9693d7e8a47d49daa9fce5.tar.bz2 opensim-SC-5e1f651e21ba81d8be9693d7e8a47d49daa9fce5.tar.xz |
Merge branch 'master' into newmultiattach
Conflicts:
OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/DAMap.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/DOMap.cs | 98 | ||||
-rw-r--r-- | OpenSim/Framework/ILandChannel.cs | 7 | ||||
-rw-r--r-- | OpenSim/Framework/PluginManager.cs | 4 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/BaseOpenSimServer.cs | 12 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 23 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/ServerBase.cs | 20 | ||||
-rw-r--r-- | OpenSim/Framework/Util.cs | 2 |
9 files changed, 152 insertions, 18 deletions
diff --git a/OpenSim/Framework/DAMap.cs b/OpenSim/Framework/DAMap.cs index 64cea77..df4a6bc 100644 --- a/OpenSim/Framework/DAMap.cs +++ b/OpenSim/Framework/DAMap.cs | |||
@@ -180,7 +180,7 @@ namespace OpenSim.Framework | |||
180 | /// Validate the key used for storing separate data stores. | 180 | /// Validate the key used for storing separate data stores. |
181 | /// </summary> | 181 | /// </summary> |
182 | /// <param name='key'></param> | 182 | /// <param name='key'></param> |
183 | private static void ValidateKey(string key) | 183 | public static void ValidateKey(string key) |
184 | { | 184 | { |
185 | if (key.Length < MIN_STORE_NAME_LENGTH) | 185 | if (key.Length < MIN_STORE_NAME_LENGTH) |
186 | throw new Exception("Minimum store name length is " + MIN_STORE_NAME_LENGTH); | 186 | throw new Exception("Minimum store name length is " + MIN_STORE_NAME_LENGTH); |
diff --git a/OpenSim/Framework/DOMap.cs b/OpenSim/Framework/DOMap.cs new file mode 100644 index 0000000..755e129 --- /dev/null +++ b/OpenSim/Framework/DOMap.cs | |||
@@ -0,0 +1,98 @@ | |||
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; | ||
30 | using System.Collections.Generic; | ||
31 | using System.IO; | ||
32 | using System.Text; | ||
33 | using System.Xml; | ||
34 | using System.Xml.Schema; | ||
35 | using System.Xml.Serialization; | ||
36 | using OpenMetaverse; | ||
37 | using OpenMetaverse.StructuredData; | ||
38 | |||
39 | namespace OpenSim.Framework | ||
40 | { | ||
41 | /// <summary> | ||
42 | /// This class stores and retrieves dynamic objects. | ||
43 | /// </summary> | ||
44 | /// <remarks> | ||
45 | /// Experimental - DO NOT USE. | ||
46 | /// </remarks> | ||
47 | public class DOMap | ||
48 | { | ||
49 | private IDictionary<string, object> m_map; | ||
50 | |||
51 | public void Add(string key, object dynObj) | ||
52 | { | ||
53 | DAMap.ValidateKey(key); | ||
54 | |||
55 | lock (this) | ||
56 | { | ||
57 | if (m_map == null) | ||
58 | m_map = new Dictionary<string, object>(); | ||
59 | |||
60 | m_map.Add(key, dynObj); | ||
61 | } | ||
62 | } | ||
63 | |||
64 | public bool ContainsKey(string key) | ||
65 | { | ||
66 | return Get(key) != null; | ||
67 | } | ||
68 | |||
69 | /// <summary> | ||
70 | /// Get a dynamic object | ||
71 | /// </summary> | ||
72 | /// <remarks> | ||
73 | /// Not providing an index method so that users can't casually overwrite each other's objects. | ||
74 | /// </remarks> | ||
75 | /// <param name='key'></param> | ||
76 | public object Get(string key) | ||
77 | { | ||
78 | lock (this) | ||
79 | { | ||
80 | if (m_map == null) | ||
81 | return null; | ||
82 | else | ||
83 | return m_map[key]; | ||
84 | } | ||
85 | } | ||
86 | |||
87 | public bool Remove(string key) | ||
88 | { | ||
89 | lock (this) | ||
90 | { | ||
91 | if (m_map == null) | ||
92 | return false; | ||
93 | else | ||
94 | return m_map.Remove(key); | ||
95 | } | ||
96 | } | ||
97 | } | ||
98 | } \ No newline at end of file | ||
diff --git a/OpenSim/Framework/ILandChannel.cs b/OpenSim/Framework/ILandChannel.cs index 869d4c8..c46c03c 100644 --- a/OpenSim/Framework/ILandChannel.cs +++ b/OpenSim/Framework/ILandChannel.cs | |||
@@ -56,6 +56,13 @@ namespace OpenSim.Region.Framework.Interfaces | |||
56 | ILandObject GetLandObject(float x, float y); | 56 | ILandObject GetLandObject(float x, float y); |
57 | 57 | ||
58 | /// <summary> | 58 | /// <summary> |
59 | /// Get the parcel at the specified point | ||
60 | /// </summary> | ||
61 | /// <param name="position">Vector where x and y components are between 0 and 256. z component is ignored.</param> | ||
62 | /// <returns>Land object at the point supplied</returns> | ||
63 | ILandObject GetLandObject(Vector3 position); | ||
64 | |||
65 | /// <summary> | ||
59 | /// Get the parcels near the specified point | 66 | /// Get the parcels near the specified point |
60 | /// </summary> | 67 | /// </summary> |
61 | /// <param name="position"></param> | 68 | /// <param name="position"></param> |
diff --git a/OpenSim/Framework/PluginManager.cs b/OpenSim/Framework/PluginManager.cs index 00263f5..0117096 100644 --- a/OpenSim/Framework/PluginManager.cs +++ b/OpenSim/Framework/PluginManager.cs | |||
@@ -218,7 +218,7 @@ namespace OpenSim.Framework | |||
218 | Console.WriteLine ("Looking for updates..."); | 218 | Console.WriteLine ("Looking for updates..."); |
219 | Repositories.UpdateAllRepositories (ps); | 219 | Repositories.UpdateAllRepositories (ps); |
220 | Console.WriteLine ("Available add-in updates:"); | 220 | Console.WriteLine ("Available add-in updates:"); |
221 | bool found = false; | 221 | |
222 | AddinRepositoryEntry[] entries = Repositories.GetAvailableUpdates(); | 222 | AddinRepositoryEntry[] entries = Repositories.GetAvailableUpdates(); |
223 | 223 | ||
224 | foreach (AddinRepositoryEntry entry in entries) | 224 | foreach (AddinRepositoryEntry entry in entries) |
@@ -541,7 +541,7 @@ namespace OpenSim.Framework | |||
541 | { | 541 | { |
542 | list.AddRange(PluginRegistry.GetAddins()); | 542 | list.AddRange(PluginRegistry.GetAddins()); |
543 | } | 543 | } |
544 | catch(Exception e) | 544 | catch (Exception) |
545 | { | 545 | { |
546 | Addin[] x = xlist.ToArray(typeof(Addin)) as Addin[]; | 546 | Addin[] x = xlist.ToArray(typeof(Addin)) as Addin[]; |
547 | return x; | 547 | return x; |
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index c0dc907..035b3ad 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs | |||
@@ -133,17 +133,7 @@ namespace OpenSim.Framework.Servers | |||
133 | /// Performs initialisation of the scene, such as loading configuration from disk. | 133 | /// Performs initialisation of the scene, such as loading configuration from disk. |
134 | /// </summary> | 134 | /// </summary> |
135 | public virtual void Startup() | 135 | public virtual void Startup() |
136 | { | 136 | { |
137 | m_log.Info("[STARTUP]: Beginning startup processing"); | ||
138 | |||
139 | m_log.Info("[STARTUP]: OpenSimulator version: " + m_version + Environment.NewLine); | ||
140 | // clr version potentially is more confusing than helpful, since it doesn't tell us if we're running under Mono/MS .NET and | ||
141 | // the clr version number doesn't match the project version number under Mono. | ||
142 | //m_log.Info("[STARTUP]: Virtual machine runtime version: " + Environment.Version + Environment.NewLine); | ||
143 | m_log.InfoFormat( | ||
144 | "[STARTUP]: Operating system version: {0}, .NET platform {1}, {2}-bit\n", | ||
145 | Environment.OSVersion, Environment.OSVersion.Platform, Util.Is64BitProcess() ? "64" : "32"); | ||
146 | |||
147 | StartupSpecific(); | 137 | StartupSpecific(); |
148 | 138 | ||
149 | TimeSpan timeTaken = DateTime.Now - m_startuptime; | 139 | TimeSpan timeTaken = DateTime.Now - m_startuptime; |
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 70c531c..dfdd566 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -486,7 +486,9 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
486 | { | 486 | { |
487 | try | 487 | try |
488 | { | 488 | { |
489 | SendHTML500(response); | 489 | byte[] buffer500 = SendHTML500(response); |
490 | response.Body.Write(buffer500,0,buffer500.Length); | ||
491 | response.Body.Close(); | ||
490 | } | 492 | } |
491 | catch | 493 | catch |
492 | { | 494 | { |
@@ -719,7 +721,15 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
719 | catch (Exception e) | 721 | catch (Exception e) |
720 | { | 722 | { |
721 | m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.StackTrace), e); | 723 | m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.StackTrace), e); |
722 | SendHTML500(response); | 724 | try |
725 | { | ||
726 | byte[] buffer500 = SendHTML500(response); | ||
727 | response.Body.Write(buffer500, 0, buffer500.Length); | ||
728 | response.Body.Close(); | ||
729 | } | ||
730 | catch | ||
731 | { | ||
732 | } | ||
723 | } | 733 | } |
724 | finally | 734 | finally |
725 | { | 735 | { |
@@ -1746,7 +1756,8 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1746 | response.SendChunked = false; | 1756 | response.SendChunked = false; |
1747 | response.ContentLength64 = buffer.Length; | 1757 | response.ContentLength64 = buffer.Length; |
1748 | response.ContentEncoding = Encoding.UTF8; | 1758 | response.ContentEncoding = Encoding.UTF8; |
1749 | 1759 | ||
1760 | |||
1750 | return buffer; | 1761 | return buffer; |
1751 | } | 1762 | } |
1752 | 1763 | ||
@@ -1912,6 +1923,12 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1912 | m_rpcHandlers.Remove(method); | 1923 | m_rpcHandlers.Remove(method); |
1913 | } | 1924 | } |
1914 | 1925 | ||
1926 | public void RemoveJsonRPCHandler(string method) | ||
1927 | { | ||
1928 | lock(jsonRpcHandlers) | ||
1929 | jsonRpcHandlers.Remove(method); | ||
1930 | } | ||
1931 | |||
1915 | public bool RemoveLLSDHandler(string path, LLSDMethod handler) | 1932 | public bool RemoveLLSDHandler(string path, LLSDMethod handler) |
1916 | { | 1933 | { |
1917 | lock (m_llsdHandlers) | 1934 | lock (m_llsdHandlers) |
diff --git a/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs index 71ca3ff..d162bc1 100644 --- a/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs | |||
@@ -140,6 +140,8 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
140 | void RemoveStreamHandler(string httpMethod, string path); | 140 | void RemoveStreamHandler(string httpMethod, string path); |
141 | 141 | ||
142 | void RemoveXmlRPCHandler(string method); | 142 | void RemoveXmlRPCHandler(string method); |
143 | |||
144 | void RemoveJsonRPCHandler(string method); | ||
143 | 145 | ||
144 | string GetHTTP404(string host); | 146 | string GetHTTP404(string host); |
145 | 147 | ||
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs index 47baac8..657444c 100644 --- a/OpenSim/Framework/Servers/ServerBase.cs +++ b/OpenSim/Framework/Servers/ServerBase.cs | |||
@@ -113,6 +113,26 @@ namespace OpenSim.Framework.Servers | |||
113 | } | 113 | } |
114 | } | 114 | } |
115 | 115 | ||
116 | /// <summary> | ||
117 | /// Log information about the circumstances in which we're running (OpenSimulator version number, CLR details, | ||
118 | /// etc.). | ||
119 | /// </summary> | ||
120 | public void LogEnvironmentInformation() | ||
121 | { | ||
122 | // FIXME: This should be done down in ServerBase but we need to sort out and refactor the log4net | ||
123 | // XmlConfigurator calls first accross servers. | ||
124 | m_log.InfoFormat("[SERVER BASE]: Starting in {0}", m_startupDirectory); | ||
125 | |||
126 | m_log.InfoFormat("[SERVER BASE]: OpenSimulator version: {0}", m_version); | ||
127 | |||
128 | // clr version potentially is more confusing than helpful, since it doesn't tell us if we're running under Mono/MS .NET and | ||
129 | // the clr version number doesn't match the project version number under Mono. | ||
130 | //m_log.Info("[STARTUP]: Virtual machine runtime version: " + Environment.Version + Environment.NewLine); | ||
131 | m_log.InfoFormat( | ||
132 | "[SERVER BASE]: Operating system version: {0}, .NET platform {1}, {2}-bit", | ||
133 | Environment.OSVersion, Environment.OSVersion.Platform, Util.Is64BitProcess() ? "64" : "32"); | ||
134 | } | ||
135 | |||
116 | public void RegisterCommonAppenders(IConfig startupConfig) | 136 | public void RegisterCommonAppenders(IConfig startupConfig) |
117 | { | 137 | { |
118 | ILoggerRepository repository = LogManager.GetRepository(); | 138 | ILoggerRepository repository = LogManager.GetRepository(); |
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 0fa54b2..94a172c 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -303,12 +303,12 @@ namespace OpenSim.Framework | |||
303 | // Clamp the maximum magnitude of a vector | 303 | // Clamp the maximum magnitude of a vector |
304 | public static Vector3 ClampV(Vector3 x, float max) | 304 | public static Vector3 ClampV(Vector3 x, float max) |
305 | { | 305 | { |
306 | Vector3 ret = x; | ||
307 | float lenSq = x.LengthSquared(); | 306 | float lenSq = x.LengthSquared(); |
308 | if (lenSq > (max * max)) | 307 | if (lenSq > (max * max)) |
309 | { | 308 | { |
310 | x = x / x.Length() * max; | 309 | x = x / x.Length() * max; |
311 | } | 310 | } |
311 | |||
312 | return x; | 312 | return x; |
313 | } | 313 | } |
314 | 314 | ||