After some assistance from Phoenix in IRC we narrowed down and fixed the bug that prevented libsecondlife from working after the update. The AgentUpdate packet was being serialized in to network traffic incorrectly, so the SessionID was four bytes off and generated a warning on the simulator about an incorrect SessionID. This was caused because we were sending an extra four bytes somewhere after the AgentID but before the SessionID in AgentUpdate. However after carefully inspecting everything, it _appears_ to be correct from our understanding of the protocol, which leads me to wonder if possibly quaternions are serialized in to 12 bytes somehow instead of 16 now? I was able to fix the problem by editing the message_template.msg file and changing the HeadRotation quaternion to an LLVector3, but that won't do much for the rest of the protocol. I'm not sure what other possibilities there are for why things are not working now, except that maybe we've always been doing things incorrectly and just now it became evident since the server is validating more fields?

This packet was sent from SecondLife.exe and captured by SLProxy. The SessionID is supposed to be 702e1c6858b242c198c65f9ebb1528af, the first four bytes of it were interpreted as the last four bytes of the HeadRotation quaternion instead.

-->   66.150.244.94:13005     9 [        Rel Zer]
---- AgentUpdate ----
-- AgentData --
ControlFlags: 0
CameraAtAxis: 0.1474633 0.971747 -0.1842885
Far: 160
AgentID: 0883e26131464906a43a9c86d45f2774
CameraCenter: 9.549901 7.033957 11.75
CameraLeftAxis: -0.988681 0.150033 0
HeadRotation: 0 0 0 2.950183E+24
SessionID: 58b242c198c65f9ebb1528afeb80e23c
CameraUpAxis: 0.1822026 0.9828722 0
BodyRotation: 0 0.6519076 0 0
Flags: 0
State: 0


(Then after changing the message_template.msg so HeadRotation became a 12 byte LLVector instead of a 16 byte LLQuaternion)


The correct session ID for this session is 0929cb03afa7413fb9de8ad865c5021c, hooray

-->   66.150.244.94:13005     8 [        Rel Zer]
---- AgentUpdate ----
-- AgentData --
ControlFlags: 0
CameraAtAxis: 0.1474633 0.971747 -0.1842885
Far: 160
AgentID: 0883e26131464906a43a9c86d45f2774
CameraCenter: 9.549901 7.033957 11.75
CameraLeftAxis: -0.988681 0.150033 0
HeadRotation: 0 0 0
SessionID: 0929cb03afa7413fb9de8ad865c5021c
CameraUpAxis: 0.02764936 0.1822026 0.9828722
BodyRotation: 0 0 0.6519076 0
Flags: 0
State: 0


If anyone had insight in to what is going on here that would be very helpful, thank you for your time.

John Hurliman

_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev
http://www.libsecondlife.org/

Reply via email to