fix(netcode): Incoming en sens inverse d'Outgoing (couche chiffrement externe retirée en premier)
Build Game Server / build (push) Successful in 22s

Avec >1 composant actif (stateless + AES), Incoming et Outgoing doivent être en
sens opposés. Les deux étaient en avant -> le stateless tentait de parser des octets
chiffrés. Incoming itère désormais en inverse.
This commit is contained in:
2026-07-16 23:53:52 +02:00
parent 5c81fba79c
commit 9cb15ad9e2
+7 -1
View File
@@ -192,8 +192,14 @@ public class PacketHandler
UpdateInitialState();
}
foreach (var component in _handlerComponents)
// Incoming = sens INVERSE d'Outgoing (Outgoing itère en avant). Indispensable
// dès qu'il y a >1 composant actif : la couche ajoutée en dernier à l'émission
// (ex. chiffrement AES, la plus externe) doit être retirée en premier à la
// réception. Sans ça, le stateless tenterait de parser des octets chiffrés.
for (var idx = _handlerComponents.Count - 1; idx >= 0; idx--)
{
var component = _handlerComponents[idx];
if (processPacketReader.GetPosBits() != 0 && !component.CanReadUnaligned())
{
RealignPacket(processPacketReader);