diff options
11 files changed, 208 insertions, 21 deletions
diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs index 1600bdc..3dbc215 100644 --- a/OpenSim/Framework/AgentCircuitData.cs +++ b/OpenSim/Framework/AgentCircuitData.cs | |||
@@ -220,6 +220,8 @@ namespace OpenSim.Framework | |||
220 | args["packed_appearance"] = appmap; | 220 | args["packed_appearance"] = appmap; |
221 | } | 221 | } |
222 | 222 | ||
223 | // Old, bad way. Keeping it fow now for backwards compatibility | ||
224 | // OBSOLETE -- soon to be deleted | ||
223 | if (ServiceURLs != null && ServiceURLs.Count > 0) | 225 | if (ServiceURLs != null && ServiceURLs.Count > 0) |
224 | { | 226 | { |
225 | OSDArray urls = new OSDArray(ServiceURLs.Count * 2); | 227 | OSDArray urls = new OSDArray(ServiceURLs.Count * 2); |
@@ -232,6 +234,19 @@ namespace OpenSim.Framework | |||
232 | args["service_urls"] = urls; | 234 | args["service_urls"] = urls; |
233 | } | 235 | } |
234 | 236 | ||
237 | // again, this time the right way | ||
238 | if (ServiceURLs != null && ServiceURLs.Count > 0) | ||
239 | { | ||
240 | OSDMap urls = new OSDMap(); | ||
241 | foreach (KeyValuePair<string, object> kvp in ServiceURLs) | ||
242 | { | ||
243 | //System.Console.WriteLine("XXX " + kvp.Key + "=" + kvp.Value); | ||
244 | urls[kvp.Key] = OSD.FromString((kvp.Value == null) ? string.Empty : kvp.Value.ToString()); | ||
245 | } | ||
246 | args["serviceurls"] = urls; | ||
247 | } | ||
248 | |||
249 | |||
235 | return args; | 250 | return args; |
236 | } | 251 | } |
237 | 252 | ||
@@ -327,7 +342,20 @@ namespace OpenSim.Framework | |||
327 | } | 342 | } |
328 | 343 | ||
329 | ServiceURLs = new Dictionary<string, object>(); | 344 | ServiceURLs = new Dictionary<string, object>(); |
330 | if (args.ContainsKey("service_urls") && args["service_urls"] != null && (args["service_urls"]).Type == OSDType.Array) | 345 | // Try parse the new way, OSDMap |
346 | if (args.ContainsKey("serviceurls") && args["serviceurls"] != null && (args["serviceurls"]).Type == OSDType.Map) | ||
347 | { | ||
348 | OSDMap urls = (OSDMap)(args["serviceurls"]); | ||
349 | foreach (KeyValuePair<String, OSD> kvp in urls) | ||
350 | { | ||
351 | ServiceURLs[kvp.Key] = kvp.Value.AsString(); | ||
352 | //System.Console.WriteLine("XXX " + kvp.Key + "=" + ServiceURLs[kvp.Key]); | ||
353 | |||
354 | } | ||
355 | } | ||
356 | // else try the old way, OSDArray | ||
357 | // OBSOLETE -- soon to be deleted | ||
358 | else if (args.ContainsKey("service_urls") && args["service_urls"] != null && (args["service_urls"]).Type == OSDType.Array) | ||
331 | { | 359 | { |
332 | OSDArray urls = (OSDArray)(args["service_urls"]); | 360 | OSDArray urls = (OSDArray)(args["service_urls"]); |
333 | for (int i = 0; i < urls.Count / 2; i++) | 361 | for (int i = 0; i < urls.Count / 2; i++) |
diff --git a/OpenSim/Framework/Capabilities/CapsHandlers.cs b/OpenSim/Framework/Capabilities/CapsHandlers.cs index 864e6dd..e1c800e 100644 --- a/OpenSim/Framework/Capabilities/CapsHandlers.cs +++ b/OpenSim/Framework/Capabilities/CapsHandlers.cs | |||
@@ -88,8 +88,8 @@ namespace OpenSim.Framework.Capabilities | |||
88 | /// handler to be removed</param> | 88 | /// handler to be removed</param> |
89 | public void Remove(string capsName) | 89 | public void Remove(string capsName) |
90 | { | 90 | { |
91 | // This line must be here, or caps will break! | ||
92 | m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[capsName].Path); | 91 | m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[capsName].Path); |
92 | m_httpListener.RemoveStreamHandler("GET", m_capsHandlers[capsName].Path); | ||
93 | m_capsHandlers.Remove(capsName); | 93 | m_capsHandlers.Remove(capsName); |
94 | } | 94 | } |
95 | 95 | ||
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index d4ee7ba..4c35132 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -143,6 +143,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | public List<string> GetStreamHandlerKeys() | ||
147 | { | ||
148 | return new List<string>(m_streamHandlers.Keys); | ||
149 | } | ||
150 | |||
146 | private static string GetHandlerKey(string httpMethod, string path) | 151 | private static string GetHandlerKey(string httpMethod, string path) |
147 | { | 152 | { |
148 | return httpMethod + ":" + path; | 153 | return httpMethod + ":" + path; |
@@ -179,6 +184,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
179 | } | 184 | } |
180 | } | 185 | } |
181 | 186 | ||
187 | public List<string> GetXmlRpcHandlerKeys() | ||
188 | { | ||
189 | return new List<string>(m_rpcHandlers.Keys); | ||
190 | } | ||
191 | |||
182 | public bool AddHTTPHandler(string methodName, GenericHTTPMethod handler) | 192 | public bool AddHTTPHandler(string methodName, GenericHTTPMethod handler) |
183 | { | 193 | { |
184 | //m_log.DebugFormat("[BASE HTTP SERVER]: Registering {0}", methodName); | 194 | //m_log.DebugFormat("[BASE HTTP SERVER]: Registering {0}", methodName); |
@@ -196,6 +206,12 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
196 | return false; | 206 | return false; |
197 | } | 207 | } |
198 | 208 | ||
209 | public List<string> GetHTTPHandlerKeys() | ||
210 | { | ||
211 | return new List<string>(m_HTTPHandlers.Keys); | ||
212 | } | ||
213 | |||
214 | |||
199 | public bool AddPollServiceHTTPHandler(string methodName, GenericHTTPMethod handler, PollServiceEventArgs args) | 215 | public bool AddPollServiceHTTPHandler(string methodName, GenericHTTPMethod handler, PollServiceEventArgs args) |
200 | { | 216 | { |
201 | bool pollHandlerResult = false; | 217 | bool pollHandlerResult = false; |
@@ -214,6 +230,12 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
214 | return false; | 230 | return false; |
215 | } | 231 | } |
216 | 232 | ||
233 | public List<string> GetPollServiceHandlerKeys() | ||
234 | { | ||
235 | return new List<string>(m_pollHandlers.Keys); | ||
236 | } | ||
237 | |||
238 | |||
217 | // Note that the agent string is provided simply to differentiate | 239 | // Note that the agent string is provided simply to differentiate |
218 | // the handlers - it is NOT required to be an actual agent header | 240 | // the handlers - it is NOT required to be an actual agent header |
219 | // value. | 241 | // value. |
@@ -232,6 +254,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
232 | return false; | 254 | return false; |
233 | } | 255 | } |
234 | 256 | ||
257 | public List<string> GetAgentHandlerKeys() | ||
258 | { | ||
259 | return new List<string>(m_agentHandlers.Keys); | ||
260 | } | ||
261 | |||
235 | public bool AddLLSDHandler(string path, LLSDMethod handler) | 262 | public bool AddLLSDHandler(string path, LLSDMethod handler) |
236 | { | 263 | { |
237 | lock (m_llsdHandlers) | 264 | lock (m_llsdHandlers) |
@@ -245,6 +272,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
245 | return false; | 272 | return false; |
246 | } | 273 | } |
247 | 274 | ||
275 | public List<string> GetLLSDHandlerKeys() | ||
276 | { | ||
277 | return new List<string>(m_llsdHandlers.Keys); | ||
278 | } | ||
279 | |||
248 | public bool SetDefaultLLSDHandler(DefaultLLSDMethod handler) | 280 | public bool SetDefaultLLSDHandler(DefaultLLSDMethod handler) |
249 | { | 281 | { |
250 | m_defaultLlsdHandler = handler; | 282 | m_defaultLlsdHandler = handler; |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 1c84e3f..34b2975 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -294,6 +294,18 @@ namespace OpenSim | |||
294 | "show connections", | 294 | "show connections", |
295 | "Show connection data", HandleShow); | 295 | "Show connection data", HandleShow); |
296 | 296 | ||
297 | m_console.Commands.AddCommand("region", false, "show circuits", | ||
298 | "show circuits", | ||
299 | "Show agent circuit data", HandleShow); | ||
300 | |||
301 | m_console.Commands.AddCommand("region", false, "show http-handlers", | ||
302 | "show http-handlers", | ||
303 | "Show all registered http handlers", HandleShow); | ||
304 | |||
305 | m_console.Commands.AddCommand("region", false, "show pending-objects", | ||
306 | "show pending-objects", | ||
307 | "Show # of objects on the pending queues of all scene viewers", HandleShow); | ||
308 | |||
297 | m_console.Commands.AddCommand("region", false, "show modules", | 309 | m_console.Commands.AddCommand("region", false, "show modules", |
298 | "show modules", | 310 | "show modules", |
299 | "Show module data", HandleShow); | 311 | "Show module data", HandleShow); |
@@ -943,6 +955,66 @@ namespace OpenSim | |||
943 | MainConsole.Instance.Output(connections.ToString()); | 955 | MainConsole.Instance.Output(connections.ToString()); |
944 | break; | 956 | break; |
945 | 957 | ||
958 | case "circuits": | ||
959 | System.Text.StringBuilder acd = new System.Text.StringBuilder("Agent Circuits:\n"); | ||
960 | m_sceneManager.ForEachScene( | ||
961 | delegate(Scene scene) | ||
962 | { | ||
963 | //this.HttpServer. | ||
964 | acd.AppendFormat("{0}:\n", scene.RegionInfo.RegionName); | ||
965 | foreach (AgentCircuitData aCircuit in scene.AuthenticateHandler.AgentCircuits.Values) | ||
966 | acd.AppendFormat("\t{0} {1} ({2})\n", aCircuit.firstname, aCircuit.lastname, (aCircuit.child ? "Child" : "Root")); | ||
967 | } | ||
968 | ); | ||
969 | |||
970 | MainConsole.Instance.Output(acd.ToString()); | ||
971 | break; | ||
972 | |||
973 | case "http-handlers": | ||
974 | System.Text.StringBuilder handlers = new System.Text.StringBuilder("Registered HTTP Handlers:\n"); | ||
975 | |||
976 | handlers.AppendFormat("* XMLRPC:\n"); | ||
977 | foreach (String s in HttpServer.GetXmlRpcHandlerKeys()) | ||
978 | handlers.AppendFormat("\t{0}\n", s); | ||
979 | |||
980 | handlers.AppendFormat("* HTTP:\n"); | ||
981 | List<String> poll = HttpServer.GetPollServiceHandlerKeys(); | ||
982 | foreach (String s in HttpServer.GetHTTPHandlerKeys()) | ||
983 | handlers.AppendFormat("\t{0} {1}\n", s, (poll.Contains(s) ? "(poll service)" : string.Empty)); | ||
984 | |||
985 | handlers.AppendFormat("* Agent:\n"); | ||
986 | foreach (String s in HttpServer.GetAgentHandlerKeys()) | ||
987 | handlers.AppendFormat("\t{0}\n", s); | ||
988 | |||
989 | handlers.AppendFormat("* LLSD:\n"); | ||
990 | foreach (String s in HttpServer.GetLLSDHandlerKeys()) | ||
991 | handlers.AppendFormat("\t{0}\n", s); | ||
992 | |||
993 | handlers.AppendFormat("* StreamHandlers ({0}):\n", HttpServer.GetStreamHandlerKeys().Count); | ||
994 | foreach (String s in HttpServer.GetStreamHandlerKeys()) | ||
995 | handlers.AppendFormat("\t{0}\n", s); | ||
996 | |||
997 | MainConsole.Instance.Output(handlers.ToString()); | ||
998 | break; | ||
999 | |||
1000 | case "pending-objects": | ||
1001 | System.Text.StringBuilder pending = new System.Text.StringBuilder("Pending objects:\n"); | ||
1002 | m_sceneManager.ForEachScene( | ||
1003 | delegate(Scene scene) | ||
1004 | { | ||
1005 | scene.ForEachScenePresence( | ||
1006 | delegate(ScenePresence sp) | ||
1007 | { | ||
1008 | pending.AppendFormat("{0}: {1} {2} pending\n", | ||
1009 | scene.RegionInfo.RegionName, sp.Name, sp.SceneViewer.GetPendingObjectsCount()); | ||
1010 | } | ||
1011 | ); | ||
1012 | } | ||
1013 | ); | ||
1014 | |||
1015 | MainConsole.Instance.Output(pending.ToString()); | ||
1016 | break; | ||
1017 | |||
946 | case "modules": | 1018 | case "modules": |
947 | MainConsole.Instance.Output("The currently loaded shared modules are:"); | 1019 | MainConsole.Instance.Output("The currently loaded shared modules are:"); |
948 | foreach (IRegionModule module in m_moduleLoader.GetLoadedSharedModules) | 1020 | foreach (IRegionModule module in m_moduleLoader.GetLoadedSharedModules) |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/UnackedPacketCollection.cs b/OpenSim/Region/ClientStack/LindenUDP/UnackedPacketCollection.cs index 9d40688..d762bef 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/UnackedPacketCollection.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/UnackedPacketCollection.cs | |||
@@ -141,31 +141,46 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
141 | private void ProcessQueues() | 141 | private void ProcessQueues() |
142 | { | 142 | { |
143 | // Process all the pending adds | 143 | // Process all the pending adds |
144 | |||
144 | OutgoingPacket pendingAdd; | 145 | OutgoingPacket pendingAdd; |
145 | while (m_pendingAdds.TryDequeue(out pendingAdd)) | 146 | if (m_pendingAdds != null) |
146 | m_packets[pendingAdd.SequenceNumber] = pendingAdd; | 147 | { |
148 | while (m_pendingAdds.TryDequeue(out pendingAdd)) | ||
149 | { | ||
150 | if (pendingAdd != null && m_packets != null) | ||
151 | { | ||
152 | m_packets[pendingAdd.SequenceNumber] = pendingAdd; | ||
153 | } | ||
154 | } | ||
155 | } | ||
147 | 156 | ||
148 | // Process all the pending removes, including updating statistics and round-trip times | 157 | // Process all the pending removes, including updating statistics and round-trip times |
149 | PendingAck pendingRemove; | 158 | PendingAck pendingRemove; |
150 | OutgoingPacket ackedPacket; | 159 | OutgoingPacket ackedPacket; |
151 | while (m_pendingRemoves.TryDequeue(out pendingRemove)) | 160 | if (m_pendingRemoves != null) |
152 | { | 161 | { |
153 | if (m_packets.TryGetValue(pendingRemove.SequenceNumber, out ackedPacket)) | 162 | while (m_pendingRemoves.TryDequeue(out pendingRemove)) |
154 | { | 163 | { |
155 | m_packets.Remove(pendingRemove.SequenceNumber); | 164 | if (m_pendingRemoves != null && m_packets != null) |
156 | |||
157 | // Update stats | ||
158 | Interlocked.Add(ref ackedPacket.Client.UnackedBytes, -ackedPacket.Buffer.DataLength); | ||
159 | |||
160 | if (!pendingRemove.FromResend) | ||
161 | { | 165 | { |
162 | // Calculate the round-trip time for this packet and its ACK | 166 | if (m_packets.TryGetValue(pendingRemove.SequenceNumber, out ackedPacket)) |
163 | int rtt = pendingRemove.RemoveTime - ackedPacket.TickCount; | 167 | { |
164 | if (rtt > 0) | 168 | m_packets.Remove(pendingRemove.SequenceNumber); |
165 | ackedPacket.Client.UpdateRoundTrip(rtt); | 169 | |
170 | // Update stats | ||
171 | Interlocked.Add(ref ackedPacket.Client.UnackedBytes, -ackedPacket.Buffer.DataLength); | ||
172 | |||
173 | if (!pendingRemove.FromResend) | ||
174 | { | ||
175 | // Calculate the round-trip time for this packet and its ACK | ||
176 | int rtt = pendingRemove.RemoveTime - ackedPacket.TickCount; | ||
177 | if (rtt > 0) | ||
178 | ackedPacket.Client.UpdateRoundTrip(rtt); | ||
179 | } | ||
180 | } | ||
166 | } | 181 | } |
167 | } | 182 | } |
168 | } | 183 | } |
169 | } | 184 | } |
170 | } | 185 | } |
171 | } \ No newline at end of file | 186 | } |
diff --git a/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs index 5c5cb70..7526bd2 100644 --- a/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs +++ b/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs | |||
@@ -26,12 +26,14 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | ||
29 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
30 | using System.Reflection; | 31 | using System.Reflection; |
31 | using log4net; | 32 | using log4net; |
32 | using Nini.Config; | 33 | using Nini.Config; |
33 | using OpenMetaverse; | 34 | using OpenMetaverse; |
34 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Region.Framework.Interfaces; | 37 | using OpenSim.Region.Framework.Interfaces; |
36 | using OpenSim.Region.Framework.Scenes; | 38 | using OpenSim.Region.Framework.Scenes; |
37 | using Caps=OpenSim.Framework.Capabilities.Caps; | 39 | using Caps=OpenSim.Framework.Capabilities.Caps; |
@@ -61,6 +63,9 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities | |||
61 | { | 63 | { |
62 | m_scene = scene; | 64 | m_scene = scene; |
63 | m_scene.RegisterModuleInterface<ICapabilitiesModule>(this); | 65 | m_scene.RegisterModuleInterface<ICapabilitiesModule>(this); |
66 | MainConsole.Instance.Commands.AddCommand("Capabilities", false, "show caps", | ||
67 | "show capabilities", | ||
68 | "Shows all registered capabilities", CapabilitiesCommand); | ||
64 | } | 69 | } |
65 | 70 | ||
66 | public void RegionLoaded(Scene scene) | 71 | public void RegionLoaded(Scene scene) |
@@ -72,7 +77,9 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities | |||
72 | m_scene.UnregisterModuleInterface<ICapabilitiesModule>(this); | 77 | m_scene.UnregisterModuleInterface<ICapabilitiesModule>(this); |
73 | } | 78 | } |
74 | 79 | ||
75 | public void PostInitialise() {} | 80 | public void PostInitialise() |
81 | { | ||
82 | } | ||
76 | 83 | ||
77 | public void Close() {} | 84 | public void Close() {} |
78 | 85 | ||
@@ -227,5 +234,23 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities | |||
227 | m_log.Info(" >> "+x+", "+y+": "+kvp.Value); | 234 | m_log.Info(" >> "+x+", "+y+": "+kvp.Value); |
228 | } | 235 | } |
229 | } | 236 | } |
237 | |||
238 | private void CapabilitiesCommand(string module, string[] cmdparams) | ||
239 | { | ||
240 | System.Text.StringBuilder caps = new System.Text.StringBuilder(); | ||
241 | caps.AppendFormat("Region {0}:\n", m_scene.RegionInfo.RegionName); | ||
242 | |||
243 | foreach (KeyValuePair<UUID, Caps> kvp in m_capsHandlers) | ||
244 | { | ||
245 | caps.AppendFormat("** User {0}:\n", kvp.Key); | ||
246 | for (IDictionaryEnumerator kvp2 = kvp.Value.CapsHandlers.CapsDetails.GetEnumerator(); kvp2.MoveNext(); ) | ||
247 | { | ||
248 | Uri uri = new Uri(kvp2.Value.ToString()); | ||
249 | caps.AppendFormat(" {0} = {1}\n", kvp2.Key, uri.PathAndQuery); | ||
250 | } | ||
251 | } | ||
252 | |||
253 | MainConsole.Instance.Output(caps.ToString()); | ||
254 | } | ||
230 | } | 255 | } |
231 | } | 256 | } |
diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml index 43de2ab..a9d247a 100644 --- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml +++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml | |||
@@ -47,7 +47,6 @@ | |||
47 | <RegionModule id="RemoteAuthorizationServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization.RemoteAuthorizationServicesConnector" /> | 47 | <RegionModule id="RemoteAuthorizationServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization.RemoteAuthorizationServicesConnector" /> |
48 | <RegionModule id="HGAssetBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.HGAssetBroker" /> | 48 | <RegionModule id="HGAssetBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.HGAssetBroker" /> |
49 | <RegionModule id="LocalInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.LocalInventoryServicesConnector" /> | 49 | <RegionModule id="LocalInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.LocalInventoryServicesConnector" /> |
50 | <RegionModule id="RemoteInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteInventoryServicesConnector" /> | ||
51 | <RegionModule id="RemoteXInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteXInventoryServicesConnector" /> | 50 | <RegionModule id="RemoteXInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteXInventoryServicesConnector" /> |
52 | <RegionModule id="HGInventoryBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.HGInventoryBroker" /> | 51 | <RegionModule id="HGInventoryBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.HGInventoryBroker" /> |
53 | <RegionModule id="LocalNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.LocalNeighbourServicesConnector" /> | 52 | <RegionModule id="LocalNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.LocalNeighbourServicesConnector" /> |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs index 023a44c..3c36799 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs | |||
@@ -247,13 +247,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid | |||
247 | 247 | ||
248 | public void NeighboursCommand(string module, string[] cmdparams) | 248 | public void NeighboursCommand(string module, string[] cmdparams) |
249 | { | 249 | { |
250 | System.Text.StringBuilder caps = new System.Text.StringBuilder(); | ||
251 | |||
250 | foreach (KeyValuePair<UUID, RegionCache> kvp in m_LocalCache) | 252 | foreach (KeyValuePair<UUID, RegionCache> kvp in m_LocalCache) |
251 | { | 253 | { |
252 | m_log.InfoFormat("*** Neighbours of {0} {1} ***", kvp.Key, kvp.Value.RegionName); | 254 | caps.AppendFormat("*** Neighbours of {0} ({1}) ***\n", kvp.Value.RegionName, kvp.Key); |
253 | List<GridRegion> regions = kvp.Value.GetNeighbours(); | 255 | List<GridRegion> regions = kvp.Value.GetNeighbours(); |
254 | foreach (GridRegion r in regions) | 256 | foreach (GridRegion r in regions) |
255 | m_log.InfoFormat(" {0} @ {1}={2}", r.RegionName, r.RegionLocX / Constants.RegionSize, r.RegionLocY / Constants.RegionSize); | 257 | caps.AppendFormat(" {0} @ {1}-{2}\n", r.RegionName, r.RegionLocX / Constants.RegionSize, r.RegionLocY / Constants.RegionSize); |
256 | } | 258 | } |
259 | |||
260 | MainConsole.Instance.Output(caps.ToString()); | ||
257 | } | 261 | } |
258 | 262 | ||
259 | } | 263 | } |
diff --git a/OpenSim/Region/Framework/Interfaces/ISceneViewer.cs b/OpenSim/Region/Framework/Interfaces/ISceneViewer.cs index 7251d57..2397f22 100644 --- a/OpenSim/Region/Framework/Interfaces/ISceneViewer.cs +++ b/OpenSim/Region/Framework/Interfaces/ISceneViewer.cs | |||
@@ -36,5 +36,6 @@ namespace OpenSim.Region.Framework.Interfaces | |||
36 | void Close(); | 36 | void Close(); |
37 | void QueuePartForUpdate(SceneObjectPart part); | 37 | void QueuePartForUpdate(SceneObjectPart part); |
38 | void SendPrimUpdates(); | 38 | void SendPrimUpdates(); |
39 | int GetPendingObjectsCount(); | ||
39 | } | 40 | } |
40 | } | 41 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneViewer.cs b/OpenSim/Region/Framework/Scenes/SceneViewer.cs index 40a73a9..1f4ec96 100644 --- a/OpenSim/Region/Framework/Scenes/SceneViewer.cs +++ b/OpenSim/Region/Framework/Scenes/SceneViewer.cs | |||
@@ -205,6 +205,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
205 | Reset(); | 205 | Reset(); |
206 | } | 206 | } |
207 | 207 | ||
208 | public int GetPendingObjectsCount() | ||
209 | { | ||
210 | if (m_pendingObjects != null) | ||
211 | return m_pendingObjects.Count; | ||
212 | |||
213 | return 0; | ||
214 | } | ||
215 | |||
208 | public class ScenePartUpdate | 216 | public class ScenePartUpdate |
209 | { | 217 | { |
210 | public UUID FullID; | 218 | public UUID FullID; |
diff --git a/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs b/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs index d4b7020..cee8851 100644 --- a/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs +++ b/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs | |||
@@ -71,6 +71,9 @@ namespace OpenSim.Region.OptionalModules.World.WorldView | |||
71 | 71 | ||
72 | public void RegionLoaded(Scene scene) | 72 | public void RegionLoaded(Scene scene) |
73 | { | 73 | { |
74 | if (!m_Enabled) | ||
75 | return; | ||
76 | |||
74 | m_Generator = scene.RequestModuleInterface<IMapImageGenerator>(); | 77 | m_Generator = scene.RequestModuleInterface<IMapImageGenerator>(); |
75 | if (m_Generator == null) | 78 | if (m_Generator == null) |
76 | { | 79 | { |