diff options
Diffstat (limited to 'OpenSim')
11 files changed, 239 insertions, 59 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 7b1aa2c..1e22fcc 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -903,47 +903,64 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
903 | 903 | ||
904 | private void HandleUseCircuitCode(object o) | 904 | private void HandleUseCircuitCode(object o) |
905 | { | 905 | { |
906 | // DateTime startTime = DateTime.Now; | 906 | IPEndPoint remoteEndPoint = null; |
907 | object[] array = (object[])o; | 907 | IClientAPI client = null; |
908 | UDPPacketBuffer buffer = (UDPPacketBuffer)array[0]; | ||
909 | UseCircuitCodePacket uccp = (UseCircuitCodePacket)array[1]; | ||
910 | |||
911 | m_log.DebugFormat("[LLUDPSERVER]: Handling UseCircuitCode request from {0}", buffer.RemoteEndPoint); | ||
912 | |||
913 | IPEndPoint remoteEndPoint = (IPEndPoint)buffer.RemoteEndPoint; | ||
914 | 908 | ||
915 | AuthenticateResponse sessionInfo; | 909 | try |
916 | if (IsClientAuthorized(uccp, out sessionInfo)) | ||
917 | { | 910 | { |
918 | // Begin the process of adding the client to the simulator | 911 | // DateTime startTime = DateTime.Now; |
919 | IClientAPI client | 912 | object[] array = (object[])o; |
920 | = AddClient( | 913 | UDPPacketBuffer buffer = (UDPPacketBuffer)array[0]; |
921 | uccp.CircuitCode.Code, | 914 | UseCircuitCodePacket uccp = (UseCircuitCodePacket)array[1]; |
922 | uccp.CircuitCode.ID, | 915 | |
923 | uccp.CircuitCode.SessionID, | 916 | m_log.DebugFormat("[LLUDPSERVER]: Handling UseCircuitCode request from {0}", buffer.RemoteEndPoint); |
924 | remoteEndPoint, | 917 | |
925 | sessionInfo); | 918 | remoteEndPoint = (IPEndPoint)buffer.RemoteEndPoint; |
926 | 919 | ||
927 | // Send ack straight away to let the viewer know that the connection is active. | 920 | AuthenticateResponse sessionInfo; |
928 | // The client will be null if it already exists (e.g. if on a region crossing the client sends a use | 921 | if (IsClientAuthorized(uccp, out sessionInfo)) |
929 | // circuit code to the existing child agent. This is not particularly obvious. | 922 | { |
930 | SendAckImmediate(remoteEndPoint, uccp.Header.Sequence); | 923 | // Begin the process of adding the client to the simulator |
931 | 924 | client | |
932 | // We only want to send initial data to new clients, not ones which are being converted from child to root. | 925 | = AddClient( |
933 | if (client != null) | 926 | uccp.CircuitCode.Code, |
934 | client.SceneAgent.SendInitialDataToMe(); | 927 | uccp.CircuitCode.ID, |
928 | uccp.CircuitCode.SessionID, | ||
929 | remoteEndPoint, | ||
930 | sessionInfo); | ||
931 | |||
932 | // Send ack straight away to let the viewer know that the connection is active. | ||
933 | // The client will be null if it already exists (e.g. if on a region crossing the client sends a use | ||
934 | // circuit code to the existing child agent. This is not particularly obvious. | ||
935 | SendAckImmediate(remoteEndPoint, uccp.Header.Sequence); | ||
936 | |||
937 | // We only want to send initial data to new clients, not ones which are being converted from child to root. | ||
938 | if (client != null) | ||
939 | client.SceneAgent.SendInitialDataToMe(); | ||
940 | } | ||
941 | else | ||
942 | { | ||
943 | // Don't create clients for unauthorized requesters. | ||
944 | m_log.WarnFormat( | ||
945 | "[LLUDPSERVER]: Connection request for client {0} connecting with unnotified circuit code {1} from {2}", | ||
946 | uccp.CircuitCode.ID, uccp.CircuitCode.Code, remoteEndPoint); | ||
947 | } | ||
948 | |||
949 | // m_log.DebugFormat( | ||
950 | // "[LLUDPSERVER]: Handling UseCircuitCode request from {0} took {1}ms", | ||
951 | // buffer.RemoteEndPoint, (DateTime.Now - startTime).Milliseconds); | ||
952 | |||
935 | } | 953 | } |
936 | else | 954 | catch (Exception e) |
937 | { | 955 | { |
938 | // Don't create clients for unauthorized requesters. | 956 | m_log.ErrorFormat( |
939 | m_log.WarnFormat( | 957 | "[LLUDPSERVER]: UseCircuitCode handling from endpoint {0}, client {1} {2} failed. Exception {3}{4}", |
940 | "[LLUDPSERVER]: Connection request for client {0} connecting with unnotified circuit code {1} from {2}", | 958 | remoteEndPoint != null ? remoteEndPoint.ToString() : "n/a", |
941 | uccp.CircuitCode.ID, uccp.CircuitCode.Code, remoteEndPoint); | 959 | client != null ? client.Name : "unknown", |
960 | client != null ? client.AgentId.ToString() : "unknown", | ||
961 | e.Message, | ||
962 | e.StackTrace); | ||
942 | } | 963 | } |
943 | |||
944 | // m_log.DebugFormat( | ||
945 | // "[LLUDPSERVER]: Handling UseCircuitCode request from {0} took {1}ms", | ||
946 | // buffer.RemoteEndPoint, (DateTime.Now - startTime).Milliseconds); | ||
947 | } | 964 | } |
948 | 965 | ||
949 | /// <summary> | 966 | /// <summary> |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 63ba3d3..d320af4 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -551,9 +551,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
551 | // "[INVENTORY ACCESS MODULE]: Target of {0} in CreateItemForObject() is {1} {2}", | 551 | // "[INVENTORY ACCESS MODULE]: Target of {0} in CreateItemForObject() is {1} {2}", |
552 | // action, remoteClient.Name, userID); | 552 | // action, remoteClient.Name, userID); |
553 | } | 553 | } |
554 | else if (so.RootPart.OwnerID == so.RootPart.GroupID) | ||
555 | { | ||
556 | // Group owned objects go to the last owner before the object was transferred. | ||
557 | userID = so.RootPart.LastOwnerID; | ||
558 | } | ||
554 | else | 559 | else |
555 | { | 560 | { |
556 | // All returns / deletes go to the object owner | 561 | // Other returns / deletes go to the object owner |
557 | // | 562 | // |
558 | userID = so.RootPart.OwnerID; | 563 | userID = so.RootPart.OwnerID; |
559 | 564 | ||
diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs index d5b585a..d1d2020 100644 --- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs +++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs | |||
@@ -148,6 +148,113 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests | |||
148 | <OtherParts /> | 148 | <OtherParts /> |
149 | </SceneObjectGroup>"; | 149 | </SceneObjectGroup>"; |
150 | 150 | ||
151 | private string badFloatsXml = @" | ||
152 | <SceneObjectGroup> | ||
153 | <RootPart> | ||
154 | <SceneObjectPart xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> | ||
155 | <AllowedDrop>false</AllowedDrop> | ||
156 | <CreatorID><Guid>a6dacf01-4636-4bb9-8a97-30609438af9d</Guid></CreatorID> | ||
157 | <FolderID><Guid>e6a5a05e-e8cc-4816-8701-04165e335790</Guid></FolderID> | ||
158 | <InventorySerial>1</InventorySerial> | ||
159 | <TaskInventory /> | ||
160 | <ObjectFlags>0</ObjectFlags> | ||
161 | <UUID><Guid>e6a5a05e-e8cc-4816-8701-04165e335790</Guid></UUID> | ||
162 | <LocalId>2698615125</LocalId> | ||
163 | <Name>NaughtyPrim</Name> | ||
164 | <Material>0</Material> | ||
165 | <PassTouches>false</PassTouches> | ||
166 | <RegionHandle>1099511628032000</RegionHandle> | ||
167 | <ScriptAccessPin>0</ScriptAccessPin> | ||
168 | <GroupPosition><X>147.23</X><Y>92.698</Y><Z>22.78084</Z></GroupPosition> | ||
169 | <OffsetPosition><X>0</X><Y>0</Y><Z>0</Z></OffsetPosition> | ||
170 | <RotationOffset><X>-4.371139E-08</X><Y>-1</Y><Z>-4.371139E-08</Z><W>0</W></RotationOffset> | ||
171 | <Velocity><X>0</X><Y>0</Y><Z>0</Z></Velocity> | ||
172 | <RotationalVelocity><X>0</X><Y>0</Y><Z>0</Z></RotationalVelocity> | ||
173 | <AngularVelocity><X>0</X><Y>0</Y><Z>0</Z></AngularVelocity> | ||
174 | <Acceleration><X>0</X><Y>0</Y><Z>0</Z></Acceleration> | ||
175 | <Description /> | ||
176 | <Color /> | ||
177 | <Text /> | ||
178 | <SitName /> | ||
179 | <TouchName /> | ||
180 | <LinkNum>0</LinkNum> | ||
181 | <ClickAction>0</ClickAction> | ||
182 | <Shape> | ||
183 | <ProfileCurve>1</ProfileCurve> | ||
184 | <TextureEntry>AAAAAAAAERGZmQAAAAAABQCVlZUAAAAAQEAAAABAQAAAAAAAAAAAAAAAAAAAAA==</TextureEntry> | ||
185 | <ExtraParams>AA==</ExtraParams> | ||
186 | <PathBegin>0</PathBegin> | ||
187 | <PathCurve>16</PathCurve> | ||
188 | <PathEnd>0</PathEnd> | ||
189 | <PathRadiusOffset>0</PathRadiusOffset> | ||
190 | <PathRevolutions>0</PathRevolutions> | ||
191 | <PathScaleX>100</PathScaleX> | ||
192 | <PathScaleY>100</PathScaleY> | ||
193 | <PathShearX>0</PathShearX> | ||
194 | <PathShearY>0</PathShearY> | ||
195 | <PathSkew>0</PathSkew> | ||
196 | <PathTaperX>0</PathTaperX> | ||
197 | <PathTaperY>0</PathTaperY> | ||
198 | <PathTwist>0</PathTwist> | ||
199 | <PathTwistBegin>0</PathTwistBegin> | ||
200 | <PCode>9</PCode> | ||
201 | <ProfileBegin>0</ProfileBegin> | ||
202 | <ProfileEnd>0</ProfileEnd> | ||
203 | <ProfileHollow>0</ProfileHollow> | ||
204 | <Scale><X>10</X><Y>10</Y><Z>0.5</Z></Scale> | ||
205 | <State>0</State> | ||
206 | <ProfileShape>Square</ProfileShape> | ||
207 | <HollowShape>Same</HollowShape> | ||
208 | <SculptTexture><Guid>00000000-0000-0000-0000-000000000000</Guid></SculptTexture> | ||
209 | <SculptType>0</SculptType><SculptData /> | ||
210 | <FlexiSoftness>0</FlexiSoftness> | ||
211 | <FlexiTension>0,5</FlexiTension> | ||
212 | <FlexiDrag>yo mamma</FlexiDrag> | ||
213 | <FlexiGravity>0</FlexiGravity> | ||
214 | <FlexiWind>0</FlexiWind> | ||
215 | <FlexiForceX>0</FlexiForceX> | ||
216 | <FlexiForceY>0</FlexiForceY> | ||
217 | <FlexiForceZ>0</FlexiForceZ> | ||
218 | <LightColorR>0</LightColorR> | ||
219 | <LightColorG>0</LightColorG> | ||
220 | <LightColorB>0</LightColorB> | ||
221 | <LightColorA>1</LightColorA> | ||
222 | <LightRadius>0</LightRadius> | ||
223 | <LightCutoff>0</LightCutoff> | ||
224 | <LightFalloff>0</LightFalloff> | ||
225 | <LightIntensity>1</LightIntensity> | ||
226 | <FlexiEntry>false</FlexiEntry> | ||
227 | <LightEntry>false</LightEntry> | ||
228 | <SculptEntry>false</SculptEntry> | ||
229 | </Shape> | ||
230 | <Scale><X>10</X><Y>10</Y><Z>0.5</Z></Scale> | ||
231 | <UpdateFlag>0</UpdateFlag> | ||
232 | <SitTargetOrientation><X>0</X><Y>0</Y><Z>0</Z><W>1</W></SitTargetOrientation> | ||
233 | <SitTargetPosition><X>0</X><Y>0</Y><Z>0</Z></SitTargetPosition> | ||
234 | <SitTargetPositionLL><X>0</X><Y>0</Y><Z>0</Z></SitTargetPositionLL> | ||
235 | <SitTargetOrientationLL><X>0</X><Y>0</Y><Z>0</Z><W>1</W></SitTargetOrientationLL> | ||
236 | <ParentID>0</ParentID> | ||
237 | <CreationDate>1211330445</CreationDate> | ||
238 | <Category>0</Category> | ||
239 | <SalePrice>0</SalePrice> | ||
240 | <ObjectSaleType>0</ObjectSaleType> | ||
241 | <OwnershipCost>0</OwnershipCost> | ||
242 | <GroupID><Guid>00000000-0000-0000-0000-000000000000</Guid></GroupID> | ||
243 | <OwnerID><Guid>a6dacf01-4636-4bb9-8a97-30609438af9d</Guid></OwnerID> | ||
244 | <LastOwnerID><Guid>a6dacf01-4636-4bb9-8a97-30609438af9d</Guid></LastOwnerID> | ||
245 | <BaseMask>2147483647</BaseMask> | ||
246 | <OwnerMask>2147483647</OwnerMask> | ||
247 | <GroupMask>0</GroupMask> | ||
248 | <EveryoneMask>0</EveryoneMask> | ||
249 | <NextOwnerMask>2147483647</NextOwnerMask> | ||
250 | <Flags>None</Flags> | ||
251 | <CollisionSound><Guid>00000000-0000-0000-0000-000000000000</Guid></CollisionSound> | ||
252 | <CollisionSoundVolume>0</CollisionSoundVolume> | ||
253 | </SceneObjectPart> | ||
254 | </RootPart> | ||
255 | <OtherParts /> | ||
256 | </SceneObjectGroup>"; | ||
257 | |||
151 | private string xml2 = @" | 258 | private string xml2 = @" |
152 | <SceneObjectGroup> | 259 | <SceneObjectGroup> |
153 | <SceneObjectPart xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> | 260 | <SceneObjectPart xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> |
@@ -257,6 +364,32 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests | |||
257 | } | 364 | } |
258 | 365 | ||
259 | [Test] | 366 | [Test] |
367 | public void TestDeserializeBadFloatsXml() | ||
368 | { | ||
369 | TestHelpers.InMethod(); | ||
370 | // log4net.Config.XmlConfigurator.Configure(); | ||
371 | |||
372 | SceneObjectGroup so = SceneObjectSerializer.FromOriginalXmlFormat(badFloatsXml); | ||
373 | SceneObjectPart rootPart = so.RootPart; | ||
374 | |||
375 | Assert.That(rootPart.UUID, Is.EqualTo(new UUID("e6a5a05e-e8cc-4816-8701-04165e335790"))); | ||
376 | Assert.That(rootPart.CreatorID, Is.EqualTo(new UUID("a6dacf01-4636-4bb9-8a97-30609438af9d"))); | ||
377 | Assert.That(rootPart.Name, Is.EqualTo("NaughtyPrim")); | ||
378 | |||
379 | // This terminates the deserialization earlier if couldn't be parsed. | ||
380 | // TODO: Need to address this | ||
381 | Assert.That(rootPart.GroupPosition.X, Is.EqualTo(147.23f)); | ||
382 | |||
383 | Assert.That(rootPart.Shape.PathCurve, Is.EqualTo(16)); | ||
384 | |||
385 | // Defaults for bad parses | ||
386 | Assert.That(rootPart.Shape.FlexiTension, Is.EqualTo(0)); | ||
387 | Assert.That(rootPart.Shape.FlexiDrag, Is.EqualTo(0)); | ||
388 | |||
389 | // TODO: Check other properties | ||
390 | } | ||
391 | |||
392 | [Test] | ||
260 | public void TestSerializeXml() | 393 | public void TestSerializeXml() |
261 | { | 394 | { |
262 | TestHelpers.InMethod(); | 395 | TestHelpers.InMethod(); |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 5a5307c..9d9729e 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1926,7 +1926,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1926 | 1926 | ||
1927 | foreach (SceneObjectGroup g in deleteGroups) | 1927 | foreach (SceneObjectGroup g in deleteGroups) |
1928 | { | 1928 | { |
1929 | AddReturn(g.OwnerID, g.Name, g.AbsolutePosition, "parcel owner return"); | 1929 | AddReturn(g.OwnerID == g.GroupID ? g.LastOwnerID : g.OwnerID, g.Name, g.AbsolutePosition, "parcel owner return"); |
1930 | } | 1930 | } |
1931 | } | 1931 | } |
1932 | } | 1932 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 5b838f8..878476e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1330,7 +1330,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1330 | m_log.DebugFormat( | 1330 | m_log.DebugFormat( |
1331 | "[SCENE OBJECT GROUP]: Returning object {0} due to parcel autoreturn", | 1331 | "[SCENE OBJECT GROUP]: Returning object {0} due to parcel autoreturn", |
1332 | RootPart.UUID); | 1332 | RootPart.UUID); |
1333 | m_scene.AddReturn(OwnerID, Name, AbsolutePosition, "parcel autoreturn"); | 1333 | m_scene.AddReturn(OwnerID == GroupID ? LastOwnerID : OwnerID, Name, AbsolutePosition, "parcel autoreturn"); |
1334 | m_scene.DeRezObjects(null, new List<uint>() { RootPart.LocalId }, UUID.Zero, | 1334 | m_scene.DeRezObjects(null, new List<uint>() { RootPart.LocalId }, UUID.Zero, |
1335 | DeRezAction.Return, UUID.Zero); | 1335 | DeRezAction.Return, UUID.Zero); |
1336 | 1336 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index 0a32214..e6b88a3 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | |||
@@ -29,6 +29,7 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Drawing; | 30 | using System.Drawing; |
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Linq; | ||
32 | using System.Reflection; | 33 | using System.Reflection; |
33 | using System.Xml; | 34 | using System.Xml; |
34 | using log4net; | 35 | using log4net; |
@@ -570,13 +571,15 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
570 | 571 | ||
571 | private static void ProcessShape(SceneObjectPart obj, XmlTextReader reader) | 572 | private static void ProcessShape(SceneObjectPart obj, XmlTextReader reader) |
572 | { | 573 | { |
573 | bool errors = false; | 574 | List<string> errorNodeNames; |
574 | obj.Shape = ReadShape(reader, "Shape", out errors); | 575 | obj.Shape = ReadShape(reader, "Shape", out errorNodeNames); |
575 | 576 | ||
576 | if (errors) | 577 | if (errorNodeNames != null) |
578 | { | ||
577 | m_log.DebugFormat( | 579 | m_log.DebugFormat( |
578 | "[SceneObjectSerializer]: Parsing PrimitiveBaseShape for object part {0} {1} encountered errors. Please see earlier log entries.", | 580 | "[SceneObjectSerializer]: Parsing PrimitiveBaseShape for object part {0} {1} encountered errors in properties {2}.", |
579 | obj.Name, obj.UUID); | 581 | obj.Name, obj.UUID, string.Join(", ", errorNodeNames.ToArray())); |
582 | } | ||
580 | } | 583 | } |
581 | 584 | ||
582 | private static void ProcessScale(SceneObjectPart obj, XmlTextReader reader) | 585 | private static void ProcessScale(SceneObjectPart obj, XmlTextReader reader) |
@@ -1519,37 +1522,44 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
1519 | /// </summary> | 1522 | /// </summary> |
1520 | /// <param name="reader"></param> | 1523 | /// <param name="reader"></param> |
1521 | /// <param name="name">The name of the xml element containing the shape</param> | 1524 | /// <param name="name">The name of the xml element containing the shape</param> |
1522 | /// <param name="errors">true if any errors were encountered during parsing, false otherwise</param> | 1525 | /// <param name="errors">a list containing the failing node names. If no failures then null.</param> |
1523 | /// <returns>The shape parsed</returns> | 1526 | /// <returns>The shape parsed</returns> |
1524 | public static PrimitiveBaseShape ReadShape(XmlTextReader reader, string name, out bool errors) | 1527 | public static PrimitiveBaseShape ReadShape(XmlTextReader reader, string name, out List<string> errorNodeNames) |
1525 | { | 1528 | { |
1526 | errors = false; | 1529 | List<string> internalErrorNodeNames = null; |
1527 | 1530 | ||
1528 | PrimitiveBaseShape shape = new PrimitiveBaseShape(); | 1531 | PrimitiveBaseShape shape = new PrimitiveBaseShape(); |
1529 | 1532 | ||
1530 | if (reader.IsEmptyElement) | 1533 | if (reader.IsEmptyElement) |
1531 | { | 1534 | { |
1532 | reader.Read(); | 1535 | reader.Read(); |
1536 | errorNodeNames = null; | ||
1533 | return shape; | 1537 | return shape; |
1534 | } | 1538 | } |
1535 | 1539 | ||
1536 | reader.ReadStartElement(name, String.Empty); // Shape | 1540 | reader.ReadStartElement(name, String.Empty); // Shape |
1537 | 1541 | ||
1538 | errors = ExternalRepresentationUtils.ExecuteReadProcessors( | 1542 | ExternalRepresentationUtils.ExecuteReadProcessors( |
1539 | shape, | 1543 | shape, |
1540 | m_ShapeXmlProcessors, | 1544 | m_ShapeXmlProcessors, |
1541 | reader, | 1545 | reader, |
1542 | (o, nodeName, e) | 1546 | (o, nodeName, e) |
1543 | => | 1547 | => |
1544 | { | 1548 | { |
1545 | m_log.DebugFormat( | 1549 | // m_log.DebugFormat( |
1546 | "[SceneObjectSerializer]: Exception while parsing Shape property {0}: {1}{2}", | 1550 | // "[SceneObjectSerializer]: Exception while parsing Shape property {0}: {1}{2}", |
1547 | nodeName, e.Message, e.StackTrace); | 1551 | // nodeName, e.Message, e.StackTrace); |
1552 | if (internalErrorNodeNames == null) | ||
1553 | internalErrorNodeNames = new List<string>(); | ||
1554 | |||
1555 | internalErrorNodeNames.Add(nodeName); | ||
1548 | } | 1556 | } |
1549 | ); | 1557 | ); |
1550 | 1558 | ||
1551 | reader.ReadEndElement(); // Shape | 1559 | reader.ReadEndElement(); // Shape |
1552 | 1560 | ||
1561 | errorNodeNames = internalErrorNodeNames; | ||
1562 | |||
1553 | return shape; | 1563 | return shape; |
1554 | } | 1564 | } |
1555 | 1565 | ||
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs index 5359354..2052cdb 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs | |||
@@ -121,8 +121,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
121 | npcAvatar.CircuitCode = (uint)Util.RandomClass.Next(0, int.MaxValue); | 121 | npcAvatar.CircuitCode = (uint)Util.RandomClass.Next(0, int.MaxValue); |
122 | 122 | ||
123 | m_log.DebugFormat( | 123 | m_log.DebugFormat( |
124 | "[NPC MODULE]: Creating NPC {0} {1} {2} at {3} in {4}", | 124 | "[NPC MODULE]: Creating NPC {0} {1} {2}, owner={3}, senseAsAgent={4} at {5} in {6}", |
125 | firstname, lastname, npcAvatar.AgentId, position, scene.RegionInfo.RegionName); | 125 | firstname, lastname, npcAvatar.AgentId, owner, senseAsAgent, position, scene.RegionInfo.RegionName); |
126 | 126 | ||
127 | AgentCircuitData acd = new AgentCircuitData(); | 127 | AgentCircuitData acd = new AgentCircuitData(); |
128 | acd.AgentID = npcAvatar.AgentId; | 128 | acd.AgentID = npcAvatar.AgentId; |
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index f15e81b..6f6ed7f 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -313,7 +313,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
313 | private bool GenerateCoordsAndFacesFromPrimMeshData( | 313 | private bool GenerateCoordsAndFacesFromPrimMeshData( |
314 | string primName, PrimitiveBaseShape primShape, Vector3 size, out List<Coord> coords, out List<Face> faces) | 314 | string primName, PrimitiveBaseShape primShape, Vector3 size, out List<Coord> coords, out List<Face> faces) |
315 | { | 315 | { |
316 | m_log.DebugFormat("[MESH]: experimental mesh proxy generation for {0}", primName); | 316 | // m_log.DebugFormat("[MESH]: experimental mesh proxy generation for {0}", primName); |
317 | 317 | ||
318 | coords = new List<Coord>(); | 318 | coords = new List<Coord>(); |
319 | faces = new List<Face>(); | 319 | faces = new List<Face>(); |
@@ -321,7 +321,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
321 | 321 | ||
322 | if (primShape.SculptData.Length <= 0) | 322 | if (primShape.SculptData.Length <= 0) |
323 | { | 323 | { |
324 | m_log.Error("[MESH]: asset data is zero length"); | 324 | m_log.ErrorFormat("[MESH]: asset data for {0} is zero length", primName); |
325 | return false; | 325 | return false; |
326 | } | 326 | } |
327 | 327 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index b1583eb..646a97b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2233,7 +2233,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2233 | CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); | 2233 | CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); |
2234 | m_host.AddScriptLPS(1); | 2234 | m_host.AddScriptLPS(1); |
2235 | 2235 | ||
2236 | return NpcCreate(firstname, lastname, position, notecard, false, true); | 2236 | return NpcCreate(firstname, lastname, position, notecard, false, false); |
2237 | } | 2237 | } |
2238 | 2238 | ||
2239 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) | 2239 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) |
@@ -2244,7 +2244,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2244 | return NpcCreate( | 2244 | return NpcCreate( |
2245 | firstname, lastname, position, notecard, | 2245 | firstname, lastname, position, notecard, |
2246 | (options & ScriptBaseClass.OS_NPC_NOT_OWNED) == 0, | 2246 | (options & ScriptBaseClass.OS_NPC_NOT_OWNED) == 0, |
2247 | (options & ScriptBaseClass.OS_NPC_SENSE_AS_AGENT) == 0); | 2247 | (options & ScriptBaseClass.OS_NPC_SENSE_AS_AGENT) != 0); |
2248 | } | 2248 | } |
2249 | 2249 | ||
2250 | private LSL_Key NpcCreate( | 2250 | private LSL_Key NpcCreate( |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs index 850f50b..5c1bdff 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs | |||
@@ -31,7 +31,6 @@ using System.Collections.Generic; | |||
31 | using OpenMetaverse; | 31 | using OpenMetaverse; |
32 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using log4net; | 33 | using log4net; |
34 | |||
35 | using OpenSim.Region.Framework.Interfaces; | 34 | using OpenSim.Region.Framework.Interfaces; |
36 | using OpenSim.Region.Framework.Scenes; | 35 | using OpenSim.Region.Framework.Scenes; |
37 | using OpenSim.Region.ScriptEngine.Shared; | 36 | using OpenSim.Region.ScriptEngine.Shared; |
@@ -41,6 +40,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
41 | { | 40 | { |
42 | public class SensorRepeat | 41 | public class SensorRepeat |
43 | { | 42 | { |
43 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
44 | |||
44 | public AsyncCommandManager m_CmdManager; | 45 | public AsyncCommandManager m_CmdManager; |
45 | 46 | ||
46 | public SensorRepeat(AsyncCommandManager CmdManager) | 47 | public SensorRepeat(AsyncCommandManager CmdManager) |
@@ -447,11 +448,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
447 | 448 | ||
448 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence => | 449 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence => |
449 | { | 450 | { |
451 | // m_log.DebugFormat( | ||
452 | // "[SENSOR REPEAT]: Inspecting scene presence {0}, type {1} on sensor sweep for {2}, type {3}", | ||
453 | // presence.Name, presence.PresenceType, ts.name, ts.type); | ||
454 | |||
450 | if ((ts.type & NPC) == 0 && presence.PresenceType == PresenceType.Npc) | 455 | if ((ts.type & NPC) == 0 && presence.PresenceType == PresenceType.Npc) |
451 | { | 456 | { |
452 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); | 457 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); |
453 | if (npcData == null || !npcData.SenseAsAgent) | 458 | if (npcData == null || !npcData.SenseAsAgent) |
459 | { | ||
460 | // m_log.DebugFormat( | ||
461 | // "[SENSOR REPEAT]: Discarding NPC {0} from agent sense sweep for script item id {1}", | ||
462 | // presence.Name, ts.itemID); | ||
454 | return; | 463 | return; |
464 | } | ||
455 | } | 465 | } |
456 | 466 | ||
457 | if ((ts.type & AGENT) == 0) | 467 | if ((ts.type & AGENT) == 0) |
@@ -464,7 +474,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
464 | { | 474 | { |
465 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); | 475 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); |
466 | if (npcData != null && npcData.SenseAsAgent) | 476 | if (npcData != null && npcData.SenseAsAgent) |
477 | { | ||
478 | // m_log.DebugFormat( | ||
479 | // "[SENSOR REPEAT]: Discarding NPC {0} from non-agent sense sweep for script item id {1}", | ||
480 | // presence.Name, ts.itemID); | ||
467 | return; | 481 | return; |
482 | } | ||
468 | } | 483 | } |
469 | } | 484 | } |
470 | 485 | ||
diff --git a/OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs b/OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs index 44138c9..b1dd84e 100644 --- a/OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs +++ b/OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs | |||
@@ -220,7 +220,7 @@ namespace OpenSim.Services.Connectors.Friends | |||
220 | public bool Delete(Dictionary<string, object> sendData, string PrincipalID, string Friend) | 220 | public bool Delete(Dictionary<string, object> sendData, string PrincipalID, string Friend) |
221 | { | 221 | { |
222 | string reply = string.Empty; | 222 | string reply = string.Empty; |
223 | string uri = m_ServerURI = "/friends"; | 223 | string uri = m_ServerURI + "/friends"; |
224 | try | 224 | try |
225 | { | 225 | { |
226 | reply = SynchronousRestFormsRequester.MakeRequest("POST", uri, ServerUtils.BuildQueryString(sendData)); | 226 | reply = SynchronousRestFormsRequester.MakeRequest("POST", uri, ServerUtils.BuildQueryString(sendData)); |