diff options
Diffstat (limited to '')
21 files changed, 337 insertions, 84 deletions
diff --git a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs index 9f7abd0..6331519 100644 --- a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs +++ b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs | |||
@@ -149,21 +149,68 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController | |||
149 | 149 | ||
150 | public void AddRegionToModules (Scene scene) | 150 | public void AddRegionToModules (Scene scene) |
151 | { | 151 | { |
152 | Dictionary<Type, ISharedRegionModule> deferredSharedModules = | ||
153 | new Dictionary<Type, ISharedRegionModule>(); | ||
154 | Dictionary<Type, INonSharedRegionModule> deferredNonSharedModules = | ||
155 | new Dictionary<Type, INonSharedRegionModule>(); | ||
156 | |||
157 | Type s = scene.GetType(); | ||
158 | MethodInfo mi = s.GetMethod("RequestModuleInterface"); | ||
159 | |||
160 | List<ISharedRegionModule> sharedlist = new List<ISharedRegionModule>(); | ||
152 | foreach (ISharedRegionModule module in m_sharedInstances) | 161 | foreach (ISharedRegionModule module in m_sharedInstances) |
153 | { | 162 | { |
163 | Type replaceableInterface = module.ReplacableInterface; | ||
164 | if (replaceableInterface != null) | ||
165 | { | ||
166 | MethodInfo mii = mi.MakeGenericMethod(replaceableInterface); | ||
167 | |||
168 | if (mii.Invoke(scene, new object[0]) != null) | ||
169 | { | ||
170 | m_log.DebugFormat("[REGIONMODULE]: Not loading {0} because another module has registered {1}", module.Name, replaceableInterface.ToString()); | ||
171 | continue; | ||
172 | } | ||
173 | |||
174 | deferredSharedModules[replaceableInterface] = module; | ||
175 | m_log.DebugFormat("[REGIONMODULE]: Deferred load of {0}", module.Name); | ||
176 | continue; | ||
177 | } | ||
178 | |||
154 | m_log.DebugFormat("[REGIONMODULE]: Adding scene {0} to shared module {1}", | 179 | m_log.DebugFormat("[REGIONMODULE]: Adding scene {0} to shared module {1}", |
155 | scene.RegionInfo.RegionName, module.Name); | 180 | scene.RegionInfo.RegionName, module.Name); |
181 | |||
156 | module.AddRegion(scene); | 182 | module.AddRegion(scene); |
157 | scene.AddRegionModule(module.Name, module); | 183 | scene.AddRegionModule(module.Name, module); |
184 | |||
185 | sharedlist.Add(module); | ||
158 | } | 186 | } |
159 | 187 | ||
160 | List<INonSharedRegionModule> list = new List<INonSharedRegionModule>(); | 188 | List<INonSharedRegionModule> list = new List<INonSharedRegionModule>(); |
161 | foreach (Type type in m_nonSharedModules) | 189 | foreach (Type type in m_nonSharedModules) |
162 | { | 190 | { |
163 | INonSharedRegionModule module = (INonSharedRegionModule)Activator.CreateInstance(type); | 191 | INonSharedRegionModule module = (INonSharedRegionModule)Activator.CreateInstance(type); |
192 | |||
193 | Type replaceableInterface = module.ReplacableInterface; | ||
194 | if (replaceableInterface != null) | ||
195 | { | ||
196 | MethodInfo mii = mi.MakeGenericMethod(replaceableInterface); | ||
197 | |||
198 | if (mii.Invoke(scene, new object[0]) != null) | ||
199 | { | ||
200 | m_log.DebugFormat("[REGIONMODULE]: Not loading {0} because another module has registered {1}", module.Name, replaceableInterface.ToString()); | ||
201 | continue; | ||
202 | } | ||
203 | |||
204 | deferredNonSharedModules[replaceableInterface] = module; | ||
205 | m_log.DebugFormat("[REGIONMODULE]: Deferred load of {0}", module.Name); | ||
206 | continue; | ||
207 | } | ||
208 | |||
164 | m_log.DebugFormat("[REGIONMODULE]: Adding scene {0} to non-shared module {1}", | 209 | m_log.DebugFormat("[REGIONMODULE]: Adding scene {0} to non-shared module {1}", |
165 | scene.RegionInfo.RegionName, module.Name); | 210 | scene.RegionInfo.RegionName, module.Name); |
211 | |||
166 | module.Initialise(m_openSim.ConfigSource.Source); | 212 | module.Initialise(m_openSim.ConfigSource.Source); |
213 | |||
167 | list.Add(module); | 214 | list.Add(module); |
168 | } | 215 | } |
169 | 216 | ||
@@ -173,6 +220,60 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController | |||
173 | scene.AddRegionModule(module.Name, module); | 220 | scene.AddRegionModule(module.Name, module); |
174 | } | 221 | } |
175 | 222 | ||
223 | // Now all modules without a replaceable base interface are loaded | ||
224 | // Replaceable modules have either been skipped, or omitted. | ||
225 | // Now scan the deferred modules here | ||
226 | |||
227 | foreach (ISharedRegionModule module in deferredSharedModules.Values) | ||
228 | { | ||
229 | Type replaceableInterface = module.ReplacableInterface; | ||
230 | MethodInfo mii = mi.MakeGenericMethod(replaceableInterface); | ||
231 | |||
232 | if (mii.Invoke(scene, new object[0]) != null) | ||
233 | { | ||
234 | m_log.DebugFormat("[REGIONMODULE]: Not loading {0} because another module has registered {1}", module.Name, replaceableInterface.ToString()); | ||
235 | continue; | ||
236 | } | ||
237 | |||
238 | m_log.DebugFormat("[REGIONMODULE]: Adding scene {0} to shared module {1} (deferred)", | ||
239 | scene.RegionInfo.RegionName, module.Name); | ||
240 | |||
241 | module.AddRegion(scene); | ||
242 | scene.AddRegionModule(module.Name, module); | ||
243 | |||
244 | sharedlist.Add(module); | ||
245 | } | ||
246 | |||
247 | List<INonSharedRegionModule> deferredlist = new List<INonSharedRegionModule>(); | ||
248 | foreach (INonSharedRegionModule module in deferredNonSharedModules.Values) | ||
249 | { | ||
250 | Type replaceableInterface = module.ReplacableInterface; | ||
251 | if (replaceableInterface != null) | ||
252 | { | ||
253 | MethodInfo mii = mi.MakeGenericMethod(replaceableInterface); | ||
254 | |||
255 | if (mii.Invoke(scene, new object[0]) != null) | ||
256 | { | ||
257 | m_log.DebugFormat("[REGIONMODULE]: Not loading {0} because another module has registered {1}", module.Name, replaceableInterface.ToString()); | ||
258 | continue; | ||
259 | } | ||
260 | } | ||
261 | |||
262 | m_log.DebugFormat("[REGIONMODULE]: Adding scene {0} to non-shared module {1} (deferred)", | ||
263 | scene.RegionInfo.RegionName, module.Name); | ||
264 | |||
265 | module.Initialise(m_openSim.ConfigSource.Source); | ||
266 | |||
267 | list.Add(module); | ||
268 | deferredlist.Add(module); | ||
269 | } | ||
270 | |||
271 | foreach (INonSharedRegionModule module in deferredlist) | ||
272 | { | ||
273 | module.AddRegion(scene); | ||
274 | scene.AddRegionModule(module.Name, module); | ||
275 | } | ||
276 | |||
176 | // This is needed for all module types. Modules will register | 277 | // This is needed for all module types. Modules will register |
177 | // Interfaces with scene in AddScene, and will also need a means | 278 | // Interfaces with scene in AddScene, and will also need a means |
178 | // to access interfaces registered by other modules. Without | 279 | // to access interfaces registered by other modules. Without |
@@ -183,7 +284,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController | |||
183 | // and unneccessary caching logic repeated in all modules. | 284 | // and unneccessary caching logic repeated in all modules. |
184 | // The extra function stub is just that much cleaner | 285 | // The extra function stub is just that much cleaner |
185 | // | 286 | // |
186 | foreach (ISharedRegionModule module in m_sharedInstances) | 287 | foreach (ISharedRegionModule module in sharedlist) |
187 | { | 288 | { |
188 | module.RegionLoaded(scene); | 289 | module.RegionLoaded(scene); |
189 | } | 290 | } |
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index 0b9ea42..6a07bc9 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs | |||
@@ -38,8 +38,7 @@ namespace OpenSim.Framework | |||
38 | { | 38 | { |
39 | public class AvatarAppearance | 39 | public class AvatarAppearance |
40 | { | 40 | { |
41 | private static readonly ILog m_log | 41 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
42 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
43 | 42 | ||
44 | // these are guessed at by the list here - | 43 | // these are guessed at by the list here - |
45 | // http://wiki.secondlife.com/wiki/Avatar_Appearance. We'll | 44 | // http://wiki.secondlife.com/wiki/Avatar_Appearance. We'll |
diff --git a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs index 4070b49..47e0293 100644 --- a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs +++ b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs | |||
@@ -90,8 +90,8 @@ namespace OpenSim.Framework.Communications.Tests | |||
90 | TestHelper.InMethod(); | 90 | TestHelper.InMethod(); |
91 | // We want to use our own LoginService for this test, one that | 91 | // We want to use our own LoginService for this test, one that |
92 | // doesn't require authentication. | 92 | // doesn't require authentication. |
93 | LoginService loginService = new LLStandaloneLoginService((UserManagerBase)m_commsManager.UserService, "Hello folks", new TestInventoryService(), | 93 | new LLStandaloneLoginService((UserManagerBase)m_commsManager.UserService, "Hello folks", new TestInventoryService(), |
94 | m_commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty), m_regionConnector); | 94 | m_commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty), m_regionConnector); |
95 | 95 | ||
96 | Hashtable loginParams = new Hashtable(); | 96 | Hashtable loginParams = new Hashtable(); |
97 | loginParams["first"] = m_firstName; | 97 | loginParams["first"] = m_firstName; |
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 98e7f0e..878e2fd 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -457,6 +457,10 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
457 | // This has to be here to prevent a Linux/Mono crash | 457 | // This has to be here to prevent a Linux/Mono crash |
458 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); | 458 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); |
459 | } | 459 | } |
460 | catch (IOException e) | ||
461 | { | ||
462 | m_log.Warn("[BASE HTTP SERVER] XmlRpcRequest issue: " + e.Message); | ||
463 | } | ||
460 | return; | 464 | return; |
461 | } | 465 | } |
462 | 466 | ||
@@ -464,7 +468,8 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
464 | { | 468 | { |
465 | foreach (string strAccept in request.AcceptTypes) | 469 | foreach (string strAccept in request.AcceptTypes) |
466 | { | 470 | { |
467 | if (strAccept.Contains("application/llsd+xml")) | 471 | if (strAccept.Contains("application/llsd+xml") || |
472 | strAccept.Contains("application/llsd+json")) | ||
468 | { | 473 | { |
469 | //m_log.Info("[Debug BASE HTTP SERVER]: Found an application/llsd+xml accept header"); | 474 | //m_log.Info("[Debug BASE HTTP SERVER]: Found an application/llsd+xml accept header"); |
470 | HandleLLSDRequests(request, response); | 475 | HandleLLSDRequests(request, response); |
@@ -483,12 +488,14 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
483 | 488 | ||
484 | case "application/llsd+xml": | 489 | case "application/llsd+xml": |
485 | case "application/xml+llsd": | 490 | case "application/xml+llsd": |
491 | case "application/llsd+json": | ||
486 | //m_log.Info("[Debug BASE HTTP SERVER]: found a application/llsd+xml content type"); | 492 | //m_log.Info("[Debug BASE HTTP SERVER]: found a application/llsd+xml content type"); |
487 | HandleLLSDRequests(request, response); | 493 | HandleLLSDRequests(request, response); |
488 | return; | 494 | return; |
489 | 495 | ||
490 | case "text/xml": | 496 | case "text/xml": |
491 | case "application/xml": | 497 | case "application/xml": |
498 | case "application/json": | ||
492 | default: | 499 | default: |
493 | //m_log.Info("[Debug BASE HTTP SERVER]: in default handler"); | 500 | //m_log.Info("[Debug BASE HTTP SERVER]: in default handler"); |
494 | // Point of note.. the DoWeHaveA methods check for an EXACT path | 501 | // Point of note.. the DoWeHaveA methods check for an EXACT path |
@@ -529,9 +536,9 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
529 | // with the minimum first | 536 | // with the minimum first |
530 | m_log.WarnFormat("[BASE HTTP SERVER]: HandleRequest threw {0}.\nNOTE: this may be spurious on Linux", e); | 537 | m_log.WarnFormat("[BASE HTTP SERVER]: HandleRequest threw {0}.\nNOTE: this may be spurious on Linux", e); |
531 | } | 538 | } |
532 | catch (EndOfStreamException e) | 539 | catch (IOException e) |
533 | { | 540 | { |
534 | m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}", e); | 541 | m_log.ErrorFormat("[BASE HTTP SERVER] HandleRequest() threw ", e); |
535 | } | 542 | } |
536 | catch (InvalidOperationException e) | 543 | catch (InvalidOperationException e) |
537 | { | 544 | { |
@@ -760,6 +767,10 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
760 | // This has to be here to prevent a Linux/Mono crash | 767 | // This has to be here to prevent a Linux/Mono crash |
761 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); | 768 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); |
762 | } | 769 | } |
770 | catch (IOException e) | ||
771 | { | ||
772 | m_log.Warn("[BASE HTTP SERVER] XmlRpcRequest issue: " + e.Message); | ||
773 | } | ||
763 | } | 774 | } |
764 | return; | 775 | return; |
765 | //responseString = "Error"; | 776 | //responseString = "Error"; |
@@ -793,6 +804,10 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
793 | // This has to be here to prevent a Linux/Mono crash | 804 | // This has to be here to prevent a Linux/Mono crash |
794 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); | 805 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); |
795 | } | 806 | } |
807 | catch (IOException e) | ||
808 | { | ||
809 | m_log.Warn("[BASE HTTP SERVER] XmlRpcRequest issue: " + e.Message); | ||
810 | } | ||
796 | } | 811 | } |
797 | } | 812 | } |
798 | 813 | ||
@@ -823,7 +838,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
823 | } | 838 | } |
824 | try | 839 | try |
825 | { | 840 | { |
826 | llsdRequest = OSDParser.DeserializeLLSDXml(requestBody); | 841 | llsdRequest = OSDParser.Deserialize(requestBody); |
827 | } | 842 | } |
828 | catch (Exception ex) | 843 | catch (Exception ex) |
829 | { | 844 | { |
@@ -873,10 +888,10 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
873 | } | 888 | } |
874 | else | 889 | else |
875 | { | 890 | { |
876 | response.ContentType = "application/llsd+xml"; | 891 | // Select an appropriate response format |
877 | //m_log.Info("[Debug BASE HTTP SERVER]: Response: " + llsdResponse.ToString()); | 892 | buffer = BuildLLSDResponse(request, response, llsdResponse); |
878 | buffer = OSDParser.SerializeLLSDXmlBytes(llsdResponse); | ||
879 | } | 893 | } |
894 | |||
880 | response.SendChunked = false; | 895 | response.SendChunked = false; |
881 | response.ContentLength64 = buffer.Length; | 896 | response.ContentLength64 = buffer.Length; |
882 | response.ContentEncoding = Encoding.UTF8; | 897 | response.ContentEncoding = Encoding.UTF8; |
@@ -912,6 +927,47 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
912 | } | 927 | } |
913 | } | 928 | } |
914 | 929 | ||
930 | private byte[] BuildLLSDResponse(OSHttpRequest request, OSHttpResponse response, OSD llsdResponse) | ||
931 | { | ||
932 | if (request.AcceptTypes != null && request.AcceptTypes.Length > 0) | ||
933 | { | ||
934 | foreach (string strAccept in request.AcceptTypes) | ||
935 | { | ||
936 | switch (strAccept) | ||
937 | { | ||
938 | case "application/llsd+xml": | ||
939 | case "application/xml": | ||
940 | case "text/xml": | ||
941 | response.ContentType = strAccept; | ||
942 | return OSDParser.SerializeLLSDXmlBytes(llsdResponse); | ||
943 | case "application/llsd+json": | ||
944 | case "application/json": | ||
945 | response.ContentType = strAccept; | ||
946 | return Encoding.UTF8.GetBytes(OSDParser.SerializeJsonString(llsdResponse)); | ||
947 | } | ||
948 | } | ||
949 | } | ||
950 | |||
951 | if (!String.IsNullOrEmpty(request.ContentType)) | ||
952 | { | ||
953 | switch (request.ContentType) | ||
954 | { | ||
955 | case "application/llsd+xml": | ||
956 | case "application/xml": | ||
957 | case "text/xml": | ||
958 | response.ContentType = request.ContentType; | ||
959 | return OSDParser.SerializeLLSDXmlBytes(llsdResponse); | ||
960 | case "application/llsd+json": | ||
961 | case "application/json": | ||
962 | response.ContentType = request.ContentType; | ||
963 | return Encoding.UTF8.GetBytes(OSDParser.SerializeJsonString(llsdResponse)); | ||
964 | } | ||
965 | } | ||
966 | |||
967 | response.ContentType = "application/llsd+json"; | ||
968 | return Encoding.UTF8.GetBytes(OSDParser.SerializeJsonString(llsdResponse)); | ||
969 | } | ||
970 | |||
915 | /// <summary> | 971 | /// <summary> |
916 | /// Checks if we have an Exact path in the LLSD handlers for the path provided | 972 | /// Checks if we have an Exact path in the LLSD handlers for the path provided |
917 | /// </summary> | 973 | /// </summary> |
@@ -1404,6 +1460,10 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1404 | // This has to be here to prevent a Linux/Mono crash | 1460 | // This has to be here to prevent a Linux/Mono crash |
1405 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); | 1461 | m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); |
1406 | } | 1462 | } |
1463 | catch (IOException e) | ||
1464 | { | ||
1465 | m_log.Warn("[BASE HTTP SERVER] XmlRpcRequest issue: " + e.Message); | ||
1466 | } | ||
1407 | } | 1467 | } |
1408 | } | 1468 | } |
1409 | 1469 | ||
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 0a9b67d..65d4f4d 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -1111,5 +1111,56 @@ namespace OpenSim.Framework | |||
1111 | return null; | 1111 | return null; |
1112 | } | 1112 | } |
1113 | 1113 | ||
1114 | public static string[] Glob(string path) | ||
1115 | { | ||
1116 | string vol=String.Empty; | ||
1117 | |||
1118 | if (Path.VolumeSeparatorChar != Path.DirectorySeparatorChar) | ||
1119 | { | ||
1120 | string[] vcomps = path.Split(new char[] {Path.VolumeSeparatorChar}, 2, StringSplitOptions.RemoveEmptyEntries); | ||
1121 | |||
1122 | if (vcomps.Length > 1) | ||
1123 | { | ||
1124 | path = vcomps[1]; | ||
1125 | vol = vcomps[0]; | ||
1126 | } | ||
1127 | } | ||
1128 | |||
1129 | string[] comps = path.Split(new char[] {Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar}, StringSplitOptions.RemoveEmptyEntries); | ||
1130 | |||
1131 | // Glob | ||
1132 | |||
1133 | path = vol; | ||
1134 | if (vol != String.Empty) | ||
1135 | path += new String(new char[] {Path.VolumeSeparatorChar, Path.DirectorySeparatorChar}); | ||
1136 | else | ||
1137 | path = new String(new char[] {Path.DirectorySeparatorChar}); | ||
1138 | |||
1139 | List<string> paths = new List<string>(); | ||
1140 | List<string> found = new List<string>(); | ||
1141 | paths.Add(path); | ||
1142 | |||
1143 | foreach (string c in comps) | ||
1144 | { | ||
1145 | List<string> addpaths = new List<string>(); | ||
1146 | foreach (string p in paths) | ||
1147 | { | ||
1148 | string[] dirs = Directory.GetDirectories(p, c); | ||
1149 | |||
1150 | if (dirs.Length != 0) | ||
1151 | { | ||
1152 | foreach (string dir in dirs) | ||
1153 | addpaths.Add(Path.Combine(path, dir)); | ||
1154 | } | ||
1155 | |||
1156 | string[] files = Directory.GetFiles(p, c); | ||
1157 | foreach (string f in files) | ||
1158 | found.Add(f); | ||
1159 | } | ||
1160 | paths = addpaths; | ||
1161 | } | ||
1162 | |||
1163 | return found.ToArray(); | ||
1164 | } | ||
1114 | } | 1165 | } |
1115 | } | 1166 | } |
diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs index 1be36ca..7bb8864 100644 --- a/OpenSim/Region/Application/ConfigurationLoader.cs +++ b/OpenSim/Region/Application/ConfigurationLoader.cs | |||
@@ -188,10 +188,11 @@ namespace OpenSim | |||
188 | { | 188 | { |
189 | string path = Path.GetFullPath( | 189 | string path = Path.GetFullPath( |
190 | Path.Combine(Util.configDir(), file)); | 190 | Path.Combine(Util.configDir(), file)); |
191 | if (File.Exists(path)) | 191 | string[] paths = Util.Glob(path); |
192 | foreach (string p in paths) | ||
192 | { | 193 | { |
193 | if (!sources.Contains(path)) | 194 | if (!sources.Contains(p)) |
194 | sources.Add(path); | 195 | sources.Add(p); |
195 | } | 196 | } |
196 | } | 197 | } |
197 | } | 198 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs index fad9218..eaf8f60 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs | |||
@@ -827,9 +827,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
827 | sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode); | 827 | sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode); |
828 | } | 828 | } |
829 | } | 829 | } |
830 | catch (NullReferenceException n) | 830 | catch (NullReferenceException) |
831 | { | 831 | { |
832 | m_log.Debug("[PACKET] Detected reuse of a returned packet"); | 832 | m_log.Error("[PACKET]: Detected reuse of a returned packet"); |
833 | m_PacketQueue.Cancel(item.Sequence); | 833 | m_PacketQueue.Cancel(item.Sequence); |
834 | return; | 834 | return; |
835 | } | 835 | } |
diff --git a/OpenSim/Region/CoreModules/Agent/TextureDownload/UserTextureDownloadService.cs b/OpenSim/Region/CoreModules/Agent/TextureDownload/UserTextureDownloadService.cs index 5be2a65..19f0f90 100644 --- a/OpenSim/Region/CoreModules/Agent/TextureDownload/UserTextureDownloadService.cs +++ b/OpenSim/Region/CoreModules/Agent/TextureDownload/UserTextureDownloadService.cs | |||
@@ -45,8 +45,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureDownload | |||
45 | /// </summary> | 45 | /// </summary> |
46 | public class UserTextureDownloadService | 46 | public class UserTextureDownloadService |
47 | { | 47 | { |
48 | private static readonly ILog m_log | 48 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
50 | 49 | ||
51 | /// <summary> | 50 | /// <summary> |
52 | /// True if the service has been closed, probably because a user with texture requests still queued | 51 | /// True if the service has been closed, probably because a user with texture requests still queued |
@@ -61,22 +60,22 @@ namespace OpenSim.Region.CoreModules.Agent.TextureDownload | |||
61 | /// currently handle properly as far as I know). However, this situation should be handled in a more | 60 | /// currently handle properly as far as I know). However, this situation should be handled in a more |
62 | /// sophisticated way. | 61 | /// sophisticated way. |
63 | /// </summary> | 62 | /// </summary> |
64 | private static readonly int MAX_ALLOWED_TEXTURE_REQUESTS = 5; | 63 | // private static readonly int MAX_ALLOWED_TEXTURE_REQUESTS = 5; |
65 | 64 | ||
66 | /// <summary> | 65 | /// <summary> |
67 | /// XXX Also going to limit requests for found textures. | 66 | /// XXX Also going to limit requests for found textures. |
68 | /// </summary> | 67 | /// </summary> |
69 | private readonly IRequestLimitStrategy<UUID> foundTextureLimitStrategy | 68 | // private readonly IRequestLimitStrategy<UUID> foundTextureLimitStrategy |
70 | = new RepeatLimitStrategy<UUID>(MAX_ALLOWED_TEXTURE_REQUESTS); | 69 | // = new RepeatLimitStrategy<UUID>(MAX_ALLOWED_TEXTURE_REQUESTS); |
71 | 70 | ||
72 | private readonly IClientAPI m_client; | 71 | // private readonly IClientAPI m_client; |
73 | private readonly Scene m_scene; | 72 | private readonly Scene m_scene; |
74 | 73 | ||
75 | /// <summary> | 74 | /// <summary> |
76 | /// Texture Senders are placed in this queue once they have received their texture from the asset | 75 | /// Texture Senders are placed in this queue once they have received their texture from the asset |
77 | /// cache. Another module actually invokes the send. | 76 | /// cache. Another module actually invokes the send. |
78 | /// </summary> | 77 | /// </summary> |
79 | private readonly OpenSim.Framework.BlockingQueue<ITextureSender> m_sharedSendersQueue; | 78 | // private readonly OpenSim.Framework.BlockingQueue<ITextureSender> m_sharedSendersQueue; |
80 | 79 | ||
81 | /// <summary> | 80 | /// <summary> |
82 | /// Holds texture senders before they have received the appropriate texture from the asset cache. | 81 | /// Holds texture senders before they have received the appropriate texture from the asset cache. |
@@ -88,15 +87,15 @@ namespace OpenSim.Region.CoreModules.Agent.TextureDownload | |||
88 | /// XXX This is really a temporary solution to deal with the situation where a client continually requests | 87 | /// XXX This is really a temporary solution to deal with the situation where a client continually requests |
89 | /// the same missing textures | 88 | /// the same missing textures |
90 | /// </summary> | 89 | /// </summary> |
91 | private readonly IRequestLimitStrategy<UUID> missingTextureLimitStrategy | 90 | // private readonly IRequestLimitStrategy<UUID> missingTextureLimitStrategy |
92 | = new RepeatLimitStrategy<UUID>(MAX_ALLOWED_TEXTURE_REQUESTS); | 91 | // = new RepeatLimitStrategy<UUID>(MAX_ALLOWED_TEXTURE_REQUESTS); |
93 | 92 | ||
94 | public UserTextureDownloadService( | 93 | public UserTextureDownloadService( |
95 | IClientAPI client, Scene scene, OpenSim.Framework.BlockingQueue<ITextureSender> sharedQueue) | 94 | IClientAPI client, Scene scene, OpenSim.Framework.BlockingQueue<ITextureSender> sharedQueue) |
96 | { | 95 | { |
97 | m_client = client; | 96 | // m_client = client; |
98 | m_scene = scene; | 97 | m_scene = scene; |
99 | m_sharedSendersQueue = sharedQueue; | 98 | // m_sharedSendersQueue = sharedQueue; |
100 | } | 99 | } |
101 | 100 | ||
102 | /// <summary> | 101 | /// <summary> |
@@ -231,16 +230,16 @@ namespace OpenSim.Region.CoreModules.Agent.TextureDownload | |||
231 | /// Place a ready texture sender on the processing queue. | 230 | /// Place a ready texture sender on the processing queue. |
232 | /// </summary> | 231 | /// </summary> |
233 | /// <param name="textureSender"></param> | 232 | /// <param name="textureSender"></param> |
234 | private void EnqueueTextureSender(ITextureSender textureSender) | 233 | // private void EnqueueTextureSender(ITextureSender textureSender) |
235 | { | 234 | // { |
236 | textureSender.Cancel = false; | 235 | // textureSender.Cancel = false; |
237 | textureSender.Sending = true; | 236 | // textureSender.Sending = true; |
238 | 237 | // | |
239 | if (!m_sharedSendersQueue.Contains(textureSender)) | 238 | // if (!m_sharedSendersQueue.Contains(textureSender)) |
240 | { | 239 | // { |
241 | m_sharedSendersQueue.Enqueue(textureSender); | 240 | // m_sharedSendersQueue.Enqueue(textureSender); |
242 | } | 241 | // } |
243 | } | 242 | // } |
244 | 243 | ||
245 | /// <summary> | 244 | /// <summary> |
246 | /// Close this module. | 245 | /// Close this module. |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index dd524f5..14cee36 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs | |||
@@ -66,7 +66,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
66 | /// <summary> | 66 | /// <summary> |
67 | /// Test saving a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet). | 67 | /// Test saving a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet). |
68 | /// </summary> | 68 | /// </summary> |
69 | //[Test] | 69 | [Test] |
70 | public void TestSaveIarV0_1() | 70 | public void TestSaveIarV0_1() |
71 | { | 71 | { |
72 | TestHelper.InMethod(); | 72 | TestHelper.InMethod(); |
@@ -202,19 +202,19 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
202 | /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where | 202 | /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where |
203 | /// an account exists with the creator name. | 203 | /// an account exists with the creator name. |
204 | /// </summary> | 204 | /// </summary> |
205 | //[Test] | 205 | [Test] |
206 | public void TestLoadIarV0_1ExistingUsers() | 206 | public void TestLoadIarV0_1ExistingUsers() |
207 | { | 207 | { |
208 | TestHelper.InMethod(); | 208 | TestHelper.InMethod(); |
209 | 209 | ||
210 | //log4net.Config.XmlConfigurator.Configure(); | 210 | log4net.Config.XmlConfigurator.Configure(); |
211 | 211 | ||
212 | string userFirstName = "Mr"; | 212 | string userFirstName = "Mr"; |
213 | string userLastName = "Tiddles"; | 213 | string userLastName = "Tiddles"; |
214 | UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000555"); | 214 | UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000555"); |
215 | string user2FirstName = "Lord"; | 215 | string userItemCreatorFirstName = "Lord"; |
216 | string user2LastName = "Lucan"; | 216 | string userItemCreatorLastName = "Lucan"; |
217 | UUID user2Uuid = UUID.Parse("00000000-0000-0000-0000-000000000666"); | 217 | UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000000666"); |
218 | 218 | ||
219 | string itemName = "b.lsl"; | 219 | string itemName = "b.lsl"; |
220 | string archiveItemName | 220 | string archiveItemName |
@@ -227,7 +227,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
227 | item1.Name = itemName; | 227 | item1.Name = itemName; |
228 | item1.AssetID = UUID.Random(); | 228 | item1.AssetID = UUID.Random(); |
229 | item1.GroupID = UUID.Random(); | 229 | item1.GroupID = UUID.Random(); |
230 | item1.CreatorId = OspResolver.MakeOspa(user2FirstName, user2LastName); | 230 | item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName); |
231 | //item1.CreatorId = userUuid.ToString(); | 231 | //item1.CreatorId = userUuid.ToString(); |
232 | //item1.CreatorId = "00000000-0000-0000-0000-000000000444"; | 232 | //item1.CreatorId = "00000000-0000-0000-0000-000000000444"; |
233 | item1.Owner = UUID.Zero; | 233 | item1.Owner = UUID.Zero; |
@@ -249,13 +249,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
249 | userAdminService.AddUser( | 249 | userAdminService.AddUser( |
250 | userFirstName, userLastName, "meowfood", String.Empty, 1000, 1000, userUuid); | 250 | userFirstName, userLastName, "meowfood", String.Empty, 1000, 1000, userUuid); |
251 | userAdminService.AddUser( | 251 | userAdminService.AddUser( |
252 | user2FirstName, user2LastName, "hampshire", String.Empty, 1000, 1000, user2Uuid); | 252 | userItemCreatorFirstName, userItemCreatorLastName, "hampshire", |
253 | String.Empty, 1000, 1000, userItemCreatorUuid); | ||
253 | 254 | ||
254 | archiverModule.DearchiveInventory(userFirstName, userLastName, "/", archiveReadStream); | 255 | archiverModule.DearchiveInventory(userFirstName, userLastName, "/", archiveReadStream); |
255 | 256 | ||
256 | CachedUserInfo userInfo | 257 | CachedUserInfo userInfo |
257 | = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); | 258 | = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); |
258 | userInfo.FetchInventory(); | 259 | //userInfo.FetchInventory(); |
260 | /* | ||
259 | for (int i = 0 ; i < 50 ; i++) | 261 | for (int i = 0 ; i < 50 ; i++) |
260 | { | 262 | { |
261 | if (userInfo.HasReceivedInventory == true) | 263 | if (userInfo.HasReceivedInventory == true) |
@@ -263,18 +265,22 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
263 | Thread.Sleep(200); | 265 | Thread.Sleep(200); |
264 | } | 266 | } |
265 | Assert.That(userInfo.HasReceivedInventory, Is.True, "FetchInventory timed out (10 seconds)"); | 267 | Assert.That(userInfo.HasReceivedInventory, Is.True, "FetchInventory timed out (10 seconds)"); |
268 | */ | ||
266 | InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); | 269 | InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); |
267 | Assert.That(foundItem, Is.Not.Null); | 270 | Assert.That(foundItem, Is.Not.Null, "Didn't find loaded item"); |
268 | Assert.That(foundItem.CreatorId, Is.EqualTo(item1.CreatorId)); | 271 | Assert.That( |
269 | Assert.That(foundItem.CreatorIdAsUuid, Is.EqualTo(user2Uuid)); | 272 | foundItem.CreatorId, Is.EqualTo(item1.CreatorId), |
270 | Assert.That(foundItem.Owner, Is.EqualTo(userUuid)); | 273 | "Loaded item non-uuid creator doesn't match original"); |
271 | 274 | Assert.That( | |
272 | Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); | 275 | foundItem.CreatorIdAsUuid, Is.EqualTo(userItemCreatorUuid), |
276 | "Loaded item uuid creator doesn't match original"); | ||
277 | Assert.That(foundItem.Owner, Is.EqualTo(userUuid), | ||
278 | "Loaded item owner doesn't match inventory reciever"); | ||
273 | } | 279 | } |
274 | 280 | ||
275 | /// <summary> | 281 | /// <summary> |
276 | /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where | 282 | /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where |
277 | /// no account exists with the creator name | 283 | /// no account exists with the creator name |
278 | /// </summary> | 284 | /// </summary> |
279 | //[Test] | 285 | //[Test] |
280 | public void TestLoadIarV0_1TempProfiles() | 286 | public void TestLoadIarV0_1TempProfiles() |
@@ -362,6 +368,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
362 | 368 | ||
363 | CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(commsManager); | 369 | CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(commsManager); |
364 | userInfo.FetchInventory(); | 370 | userInfo.FetchInventory(); |
371 | /* | ||
365 | for (int i = 0 ; i < 50 ; i++) | 372 | for (int i = 0 ; i < 50 ; i++) |
366 | { | 373 | { |
367 | if (userInfo.HasReceivedInventory == true) | 374 | if (userInfo.HasReceivedInventory == true) |
@@ -369,6 +376,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
369 | Thread.Sleep(200); | 376 | Thread.Sleep(200); |
370 | } | 377 | } |
371 | Assert.That(userInfo.HasReceivedInventory, Is.True, "FetchInventory timed out (10 seconds)"); | 378 | Assert.That(userInfo.HasReceivedInventory, Is.True, "FetchInventory timed out (10 seconds)"); |
379 | */ | ||
380 | |||
381 | Console.WriteLine("userInfo.RootFolder 1: {0}", userInfo.RootFolder); | ||
382 | |||
372 | Dictionary <string, InventoryFolderImpl> foldersCreated = new Dictionary<string, InventoryFolderImpl>(); | 383 | Dictionary <string, InventoryFolderImpl> foldersCreated = new Dictionary<string, InventoryFolderImpl>(); |
373 | List<InventoryNodeBase> nodesLoaded = new List<InventoryNodeBase>(); | 384 | List<InventoryNodeBase> nodesLoaded = new List<InventoryNodeBase>(); |
374 | 385 | ||
@@ -386,10 +397,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
386 | = string.Format( | 397 | = string.Format( |
387 | "{0}{1}/{2}/{3}", | 398 | "{0}{1}/{2}/{3}", |
388 | ArchiveConstants.INVENTORY_PATH, folder1ArchiveName, folder2ArchiveName, itemName); | 399 | ArchiveConstants.INVENTORY_PATH, folder1ArchiveName, folder2ArchiveName, itemName); |
400 | |||
401 | Console.WriteLine("userInfo.RootFolder 2: {0}", userInfo.RootFolder); | ||
389 | 402 | ||
390 | new InventoryArchiveReadRequest(userInfo, null, (Stream)null, null, null) | 403 | new InventoryArchiveReadRequest(userInfo, null, (Stream)null, null, null) |
391 | .ReplicateArchivePathToUserInventory(itemArchivePath, false, userInfo.RootFolder, foldersCreated, nodesLoaded); | 404 | .ReplicateArchivePathToUserInventory(itemArchivePath, false, userInfo.RootFolder, foldersCreated, nodesLoaded); |
392 | 405 | ||
406 | Console.WriteLine("userInfo.RootFolder 3: {0}", userInfo.RootFolder); | ||
393 | InventoryFolderImpl folder1 = userInfo.RootFolder.FindFolderByPath("a"); | 407 | InventoryFolderImpl folder1 = userInfo.RootFolder.FindFolderByPath("a"); |
394 | Assert.That(folder1, Is.Not.Null, "Could not find folder a"); | 408 | Assert.That(folder1, Is.Not.Null, "Could not find folder a"); |
395 | InventoryFolderImpl folder2 = folder1.FindFolderByPath("b"); | 409 | InventoryFolderImpl folder2 = folder1.FindFolderByPath("b"); |
diff --git a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs index 7082e85..ad42523 100644 --- a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs | |||
@@ -60,9 +60,9 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp | |||
60 | 60 | ||
61 | public class UrlModule : ISharedRegionModule, IUrlModule | 61 | public class UrlModule : ISharedRegionModule, IUrlModule |
62 | { | 62 | { |
63 | private static readonly ILog m_log = | 63 | // private static readonly ILog m_log = |
64 | LogManager.GetLogger( | 64 | // LogManager.GetLogger( |
65 | MethodBase.GetCurrentMethod().DeclaringType); | 65 | // MethodBase.GetCurrentMethod().DeclaringType); |
66 | 66 | ||
67 | private Dictionary<UUID, UrlData> m_RequestMap = | 67 | private Dictionary<UUID, UrlData> m_RequestMap = |
68 | new Dictionary<UUID, UrlData>(); | 68 | new Dictionary<UUID, UrlData>(); |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs index a304357..e70d985 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs | |||
@@ -39,7 +39,6 @@ using OpenSim.Region.Framework.Scenes; | |||
39 | using OpenSim.Services.Interfaces; | 39 | using OpenSim.Services.Interfaces; |
40 | using OpenMetaverse; | 40 | using OpenMetaverse; |
41 | 41 | ||
42 | |||
43 | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | 42 | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory |
44 | { | 43 | { |
45 | public class LocalInventoryServicesConnector : ISharedRegionModule, IInventoryService | 44 | public class LocalInventoryServicesConnector : ISharedRegionModule, IInventoryService |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 83db396..9805ff5 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -2863,7 +2863,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2863 | //if ((framecount % m_randomizeWater) == 0) | 2863 | //if ((framecount % m_randomizeWater) == 0) |
2864 | // randomizeWater(waterlevel); | 2864 | // randomizeWater(waterlevel); |
2865 | 2865 | ||
2866 | int RayCastTimeMS = m_rayCastManager.ProcessQueuedRequests(); | 2866 | //int RayCastTimeMS = m_rayCastManager.ProcessQueuedRequests(); |
2867 | m_rayCastManager.ProcessQueuedRequests(); | ||
2867 | 2868 | ||
2868 | collision_optimized(timeStep); | 2869 | collision_optimized(timeStep); |
2869 | 2870 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index acab734..bc36fda 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -9032,8 +9032,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9032 | Match m = r.Match(url); | 9032 | Match m = r.Match(url); |
9033 | if (m.Success) { | 9033 | if (m.Success) { |
9034 | for (int i = 1; i < gnums.Length; i++) { | 9034 | for (int i = 1; i < gnums.Length; i++) { |
9035 | System.Text.RegularExpressions.Group g = m.Groups[gnums[i]]; | 9035 | //System.Text.RegularExpressions.Group g = m.Groups[gnums[i]]; |
9036 | CaptureCollection cc = g.Captures; | 9036 | //CaptureCollection cc = g.Captures; |
9037 | } | 9037 | } |
9038 | if (m.Groups.Count == 5) { | 9038 | if (m.Groups.Count == 5) { |
9039 | httpHeaders["Authorization"] = String.Format("Basic {0}", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(m.Groups[2].ToString() + ":" + m.Groups[3].ToString()))); | 9039 | httpHeaders["Authorization"] = String.Format("Basic {0}", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(m.Groups[2].ToString() + ":" + m.Groups[3].ToString()))); |
diff --git a/OpenSim/Server/Handlers/Freeswitch/FreeswitchServerGetHandler.cs b/OpenSim/Server/Handlers/Freeswitch/FreeswitchServerGetHandler.cs index c2a64b8..8b41742 100644 --- a/OpenSim/Server/Handlers/Freeswitch/FreeswitchServerGetHandler.cs +++ b/OpenSim/Server/Handlers/Freeswitch/FreeswitchServerGetHandler.cs | |||
@@ -46,12 +46,12 @@ namespace OpenSim.Server.Handlers.Freeswitch | |||
46 | { | 46 | { |
47 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 47 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
48 | 48 | ||
49 | private IFreeswitchService m_FreeswitchService; | 49 | //private IFreeswitchService m_FreeswitchService; |
50 | 50 | ||
51 | public FreeswitchServerGetHandler(IFreeswitchService service) : | 51 | public FreeswitchServerGetHandler(IFreeswitchService service) : |
52 | base("GET", "/api") | 52 | base("GET", "/api") |
53 | { | 53 | { |
54 | m_FreeswitchService = service; | 54 | //m_FreeswitchService = service; |
55 | } | 55 | } |
56 | 56 | ||
57 | public override byte[] Handle(string path, Stream request, | 57 | public override byte[] Handle(string path, Stream request, |
diff --git a/OpenSim/Services/FreeswitchService/FreeswitchService.cs b/OpenSim/Services/FreeswitchService/FreeswitchService.cs index 84674ec..0a38300 100644 --- a/OpenSim/Services/FreeswitchService/FreeswitchService.cs +++ b/OpenSim/Services/FreeswitchService/FreeswitchService.cs | |||
@@ -38,9 +38,7 @@ namespace OpenSim.Services.FreeswitchService | |||
38 | { | 38 | { |
39 | public class FreeswitchService : FreeswitchServiceBase, IFreeswitchService | 39 | public class FreeswitchService : FreeswitchServiceBase, IFreeswitchService |
40 | { | 40 | { |
41 | private static readonly ILog m_log = | 41 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
42 | LogManager.GetLogger( | ||
43 | MethodBase.GetCurrentMethod().DeclaringType); | ||
44 | 42 | ||
45 | public FreeswitchService(IConfigSource config) : base(config) | 43 | public FreeswitchService(IConfigSource config) : base(config) |
46 | { | 44 | { |
diff --git a/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs b/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs index 442ff06..1b14abb 100644 --- a/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs +++ b/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs | |||
@@ -39,12 +39,17 @@ namespace OpenSim.Tests.Common.Mock | |||
39 | /// tests are single threaded. | 39 | /// tests are single threaded. |
40 | /// </summary> | 40 | /// </summary> |
41 | public class TestInventoryDataPlugin : IInventoryDataPlugin | 41 | public class TestInventoryDataPlugin : IInventoryDataPlugin |
42 | { | 42 | { |
43 | /// <value> | 43 | /// <value> |
44 | /// Known inventory folders | 44 | /// Inventory folders |
45 | /// </value> | 45 | /// </value> |
46 | private Dictionary<UUID, InventoryFolderBase> m_folders = new Dictionary<UUID, InventoryFolderBase>(); | 46 | private Dictionary<UUID, InventoryFolderBase> m_folders = new Dictionary<UUID, InventoryFolderBase>(); |
47 | 47 | ||
48 | //// <value> | ||
49 | /// Inventory items | ||
50 | /// </value> | ||
51 | private Dictionary<UUID, InventoryItemBase> m_items = new Dictionary<UUID, InventoryItemBase>(); | ||
52 | |||
48 | /// <value> | 53 | /// <value> |
49 | /// User root folders | 54 | /// User root folders |
50 | /// </value> | 55 | /// </value> |
@@ -99,9 +104,7 @@ namespace OpenSim.Tests.Common.Mock | |||
99 | } | 104 | } |
100 | 105 | ||
101 | return folders; | 106 | return folders; |
102 | } | 107 | } |
103 | |||
104 | public InventoryItemBase getInventoryItem(UUID item) { return null; } | ||
105 | 108 | ||
106 | public InventoryFolderBase getInventoryFolder(UUID folderId) | 109 | public InventoryFolderBase getInventoryFolder(UUID folderId) |
107 | { | 110 | { |
@@ -111,15 +114,6 @@ namespace OpenSim.Tests.Common.Mock | |||
111 | return folder; | 114 | return folder; |
112 | } | 115 | } |
113 | 116 | ||
114 | public void addInventoryItem(InventoryItemBase item) {} | ||
115 | public void updateInventoryItem(InventoryItemBase item) {} | ||
116 | public void deleteInventoryItem(UUID item) {} | ||
117 | |||
118 | public InventoryItemBase queryInventoryItem(UUID item) | ||
119 | { | ||
120 | return null; | ||
121 | } | ||
122 | |||
123 | public InventoryFolderBase queryInventoryFolder(UUID folderID) | 117 | public InventoryFolderBase queryInventoryFolder(UUID folderID) |
124 | { | 118 | { |
125 | return getInventoryFolder(folderID); | 119 | return getInventoryFolder(folderID); |
@@ -150,6 +144,29 @@ namespace OpenSim.Tests.Common.Mock | |||
150 | m_folders.Remove(folderId); | 144 | m_folders.Remove(folderId); |
151 | } | 145 | } |
152 | 146 | ||
147 | public void addInventoryItem(InventoryItemBase item) { m_items[item.ID] = item; } | ||
148 | |||
149 | public void updateInventoryItem(InventoryItemBase item) { addInventoryItem(item); } | ||
150 | |||
151 | public void deleteInventoryItem(UUID itemId) | ||
152 | { | ||
153 | if (m_items.ContainsKey(itemId)) | ||
154 | m_items.Remove(itemId); | ||
155 | } | ||
156 | |||
157 | public InventoryItemBase getInventoryItem(UUID itemId) | ||
158 | { | ||
159 | if (m_items.ContainsKey(itemId)) | ||
160 | return m_items[itemId]; | ||
161 | else | ||
162 | return null; | ||
163 | } | ||
164 | |||
165 | public InventoryItemBase queryInventoryItem(UUID item) | ||
166 | { | ||
167 | return null; | ||
168 | } | ||
169 | |||
153 | public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) { return null; } | 170 | public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) { return null; } |
154 | } | 171 | } |
155 | } | 172 | } |
diff --git a/OpenSim/Tests/Common/TestHelper.cs b/OpenSim/Tests/Common/TestHelper.cs index f0b3376..4abf2e3 100644 --- a/OpenSim/Tests/Common/TestHelper.cs +++ b/OpenSim/Tests/Common/TestHelper.cs | |||
@@ -54,7 +54,7 @@ namespace OpenSim.Tests.Common | |||
54 | public static void InMethod() | 54 | public static void InMethod() |
55 | { | 55 | { |
56 | StackTrace stackTrace = new StackTrace(); | 56 | StackTrace stackTrace = new StackTrace(); |
57 | Console.WriteLine("==> In Test Method : {0}", stackTrace.GetFrame(1).GetMethod().Name); | 57 | Console.WriteLine("===> In Test Method : {0} <===", stackTrace.GetFrame(1).GetMethod().Name); |
58 | } | 58 | } |
59 | } | 59 | } |
60 | } | 60 | } |
@@ -89,5 +89,3 @@ OpenSim, as well as how to report bugs, and participate in the OpenSim | |||
89 | project can always be found at http://opensimulator.org. | 89 | project can always be found at http://opensimulator.org. |
90 | 90 | ||
91 | Thanks for trying OpenSim, we hope it is a pleasant experience. | 91 | Thanks for trying OpenSim, we hope it is a pleasant experience. |
92 | |||
93 | |||
diff --git a/addon-modules/README b/addon-modules/README new file mode 100644 index 0000000..19f268f --- /dev/null +++ b/addon-modules/README | |||
@@ -0,0 +1,5 @@ | |||
1 | In this directory you can place addon modules for OpenSim | ||
2 | |||
3 | Each module should be in it's own tree and the root of the tree | ||
4 | should contain a file named "prebuild.xml", which will be included in the | ||
5 | main prebuild file. | ||
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 643b0af..ff8fa5f 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -1369,3 +1369,11 @@ | |||
1369 | ; config-include/GridCommon.ini.example (if you're connected to a grid) | 1369 | ; config-include/GridCommon.ini.example (if you're connected to a grid) |
1370 | ; Copy to your own .ini there (without .example extension) and edit it | 1370 | ; Copy to your own .ini there (without .example extension) and edit it |
1371 | ; to customize your data | 1371 | ; to customize your data |
1372 | |||
1373 | |||
1374 | |||
1375 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1376 | ;; The below pulls in optional module config files | ||
1377 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
1378 | [Modules] | ||
1379 | Include-modules = "addon-modules/*/config/*.ini" | ||
diff --git a/prebuild.xml b/prebuild.xml index 07b9398..a34661c 100644 --- a/prebuild.xml +++ b/prebuild.xml | |||
@@ -3877,6 +3877,8 @@ | |||
3877 | 3877 | ||
3878 | <!-- /////////////////// END OF INSERTION ///////////////////////////// --> | 3878 | <!-- /////////////////// END OF INSERTION ///////////////////////////// --> |
3879 | 3879 | ||
3880 | <?include file="addon-modules/*/prebuild.xml" ?> | ||
3881 | |||
3880 | </Solution> | 3882 | </Solution> |
3881 | 3883 | ||
3882 | <!-- Prebuild tool --> | 3884 | <!-- Prebuild tool --> |