fix(netcode): Incoming en sens inverse d'Outgoing (couche chiffrement externe retirée en premier)
Build Game Server / build (push) Successful in 22s
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user