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
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:
parent
0615e3e663
commit
d2b6d78316
2 changed files with 36 additions and 8 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -232,3 +232,31 @@ mod test {
|
|||
assert_eq!(KerberosDateTime::PRACTICALLY_NEVER, time)
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test() {
|
||||
let key = *b"my password";
|
||||
let nkey = hex::decode("c3ef03044c6937d30e6b179f610ea190").unwrap();
|
||||
|
||||
let mut key: [u8; 16] = {
|
||||
let mut md5 = Md5::new();
|
||||
md5.update(key);
|
||||
md5.finalize().try_into().unwrap()
|
||||
};
|
||||
|
||||
loop {
|
||||
if &nkey[..] == &key[..] {
|
||||
println!("success");
|
||||
return;
|
||||
}
|
||||
let mut md5 = Md5::new();
|
||||
md5.update(key);
|
||||
key = md5.finalize().try_into().unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
struct NexToken {
|
||||
pub pid: u32,
|
||||
pub time: u64,
|
||||
pub pw_hash: [u8; 4],
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue