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();
|
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())
|
if (processPacketReader.GetPosBits() != 0 && !component.CanReadUnaligned())
|
||||||
{
|
{
|
||||||
RealignPacket(processPacketReader);
|
RealignPacket(processPacketReader);
|
||||||
|
|||||||
Reference in New Issue
Block a user