View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003990||Multi Theft Auto : San Andreas||Synchronization||public||2009-01-23 19:42||2009-03-01 15:33|
|Target Version||1.0||Fixed in Version||1.0|
|Summary||0003990: Unreliable packets can arrive out of order|
Most packets are marked as reliable, and are received at the other end in the order they were sent.
Client to server unreliable packets:
Server to client unreliable packets:
|Tags||No tags attached.|
server->client packets that do NOT have the PACKET_SEQUENCED flag set:
client->server packets that are PACKET_RELIABILITY_UNRELIABLE (not sequenced):
As you can see this doesn't match up.
Packets that are going to be changed will have to go from PACKET_RELIABILITY_UNRELIABLE to PACKET_RELIABILITY_UNRELIABLE_SEQUENCED (for MTA10) and need the PACKET_SEQUENCED flag in class::GetFlags (for MTA10_Server).
I reckon all sync packets will have to be changed to unreliable sequenced, as we cannot afford earlier packets to end up late and invalidated (although I believe some time context checking is done in some cases).
Packets that have been marked with an "x" have been set to sequence (unreliably) in r370: