respond to data packets immediately even if they are out of order
Some checks failed
Build and Test / puyopuyo (push) Has been cancelled
Build and Test / mario-tennis (push) Has been cancelled
Build and Test / splatoon (push) Has been cancelled
Build and Test / splatoon-testfire (push) Has been cancelled
Build and Test / fast-racing-neo (push) Has been cancelled
Build and Test / wii-sports-club (push) Has been cancelled
Build and Test / wii-u-chat (push) Has been cancelled
Build and Test / super-mario-maker (push) Has been cancelled
Build and Test / sonic-transformed (push) Has been cancelled
Build and Test / minecraft-wiiu (push) Has been cancelled
Build and Test / friends (push) Has been cancelled

This commit is contained in:
Maple Nebel 2026-06-26 20:10:00 +02:00
commit d2b6d78316
2 changed files with 36 additions and 8 deletions

View file

@ -558,6 +558,14 @@ impl<T: CryptoHandler> InternalSocket<T> {
let mut conn = conn.lock().await;
let mut response = packet.base_acknowledgement_packet();
response.header.types_and_flags.set_flag(HAS_SIZE | ACK);
response.header.session_id = conn.session_id;
conn.crypto_handler_instance.sign_packet(&mut response);
self.send_packet_unbuffered(address, &response).await;
conn.packet_queue.insert(packet.header.sequence_id, packet);
let mut counter = conn.reliable_client_counter;
@ -566,14 +574,6 @@ impl<T: CryptoHandler> InternalSocket<T> {
conn.crypto_handler_instance
.decrypt_incoming(packet.header.substream_id, &mut packet.payload[..]);
let mut response = packet.base_acknowledgement_packet();
response.header.types_and_flags.set_flag(HAS_SIZE | ACK);
response.header.session_id = conn.session_id;
conn.crypto_handler_instance.sign_packet(&mut response);
self.send_packet_unbuffered(address, &response).await;
conn.data_sender.send(packet.payload).await.ok();
conn.reliable_client_counter = conn.reliable_client_counter.overflowing_add(1).0;