libopenmetaverse
  1. libopenmetaverse
  2. LIBOMV-567

Packets with Variable blocks that are sent null are not being handled by the packet splitter

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.7.0
    • Fix Version/s: 0.7.0
    • Component/s: Networking
    • Labels:
      None
    • Severity:
      High
    • Environment:
      All
    • Steps to Reproduce:
      Hide

      Run TestClient thru WinGridProxy

      touch prim-UUID

      Notice no ObjectGrabPacket is sent

      Show
      Run TestClient thru WinGridProxy touch prim-UUID Notice no ObjectGrabPacket is sent

      Description

      See LIBOMV-566 for originally reported issue:

      What was happening is our Grab Packet was not populating the SurfaceInfo variable block of the packet and the packet was therefore being dropped.

      Repro: remove SurfaceInfo block from degrab packet (or grab packet), use touch command in TestClient, no packet is sent.

      public void DeGrab(uint objectLocalID, Vector3 uvCoord, Vector3 stCoord, int faceIndex, Vector3 position,
      Vector3 normal, Vector3 binormal)

      { ObjectDeGrabPacket degrab = new ObjectDeGrabPacket(); degrab.AgentData.AgentID = Client.Self.AgentID; degrab.AgentData.SessionID = Client.Self.SessionID; degrab.ObjectData.LocalID = objectLocalID; degrab.SurfaceInfo = new ObjectDeGrabPacket.SurfaceInfoBlock[1]; degrab.SurfaceInfo[0] = new ObjectDeGrabPacket.SurfaceInfoBlock(); degrab.SurfaceInfo[0].UVCoord = uvCoord; degrab.SurfaceInfo[0].STCoord = stCoord; degrab.SurfaceInfo[0].FaceIndex = faceIndex; degrab.SurfaceInfo[0].Position = position; degrab.SurfaceInfo[0].Normal = normal; degrab.SurfaceInfo[0].Binormal = binormal; Client.Network.SendPacket(degrab); }

      Expected Result: Packet gets packed properly and sent without the block

        Issue Links

          Activity

          Jim Radford made changes -
          Field Original Value New Value
          Assignee Jim Radford [ jradford ] John Hurliman [ jhurliman ]
          Priority Blocker [ 1 ] Major [ 3 ]
          Description ObjectGrabPacket ToBytesMultiple() not working
          For now a workarround is

           HasVariableBlocks = false;
          in the contructor.

          Possibly other packets are broken in simular way
          See LIBOMV-566 for originally reported issue:

          What was happening is our Grab Packet was not populating the SurfaceInfo variable block of the packet and the packet was therefore being dropped.

          Repro: remove SurfaceInfo block from degrab packet (or grab packet), use touch command in TestClient, no packet is sent.

          public void DeGrab(uint objectLocalID, Vector3 uvCoord, Vector3 stCoord, int faceIndex, Vector3 position,
                      Vector3 normal, Vector3 binormal)
                  {
                      ObjectDeGrabPacket degrab = new ObjectDeGrabPacket();
                      degrab.AgentData.AgentID = Client.Self.AgentID;
                      degrab.AgentData.SessionID = Client.Self.SessionID;

                      degrab.ObjectData.LocalID = objectLocalID;
                      
                      degrab.SurfaceInfo = new ObjectDeGrabPacket.SurfaceInfoBlock[1];
                      degrab.SurfaceInfo[0] = new ObjectDeGrabPacket.SurfaceInfoBlock();
                      degrab.SurfaceInfo[0].UVCoord = uvCoord;
                      degrab.SurfaceInfo[0].STCoord = stCoord;
                      degrab.SurfaceInfo[0].FaceIndex = faceIndex;
                      degrab.SurfaceInfo[0].Position = position;
                      degrab.SurfaceInfo[0].Normal = normal;
                      degrab.SurfaceInfo[0].Binormal = binormal;

                      Client.Network.SendPacket(degrab);
                  }

          Expected Result: Packet gets packed properly and sent without the block
          Severity Showstopper High
          Jim Radford made changes -
          Link This issue causes LIBOMV-566 [ LIBOMV-566 ]
          John Hurliman made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          John Hurliman made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]

            People

            • Assignee:
              John Hurliman
              Reporter:
              Douglas R Miles
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: