From 89c217731fe50be28136a3da5b4672ec76649ea6 Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 31 Aug 2019 02:38:53 -0300 Subject: [PATCH 1/5] added packets 0x1E8, 0x2E8 (BBChecksum and BBChecksumAck) --- src/packet/login.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/packet/login.rs b/src/packet/login.rs index e0c8730..3e880c7 100644 --- a/src/packet/login.rs +++ b/src/packet/login.rs @@ -193,6 +193,25 @@ impl RedirectClient { } } +#[pso_packet(0x1E8)] +pub struct BBChecksum { + pub flag: u32, +} + +#[pso_packet(0x2E8)] +pub struct BBChecksumAck { + pub flag: u32, + pub ack: u32, +} + +impl BBChecksumAck { + pub fn new() -> BBChecksumAck { + BBChecksumAck { + flag: 0, + ack: 1, + } + } +} #[cfg(test)] mod tests { From 0d80bb58aa1fe64b77f72dd2b7b98fc9e34c3e79 Mon Sep 17 00:00:00 2001 From: Andy Date: Sun, 1 Sep 2019 14:28:20 -0300 Subject: [PATCH 2/5] dropped BB prefix. Have ChecksumAck::new take an argument to set ack. Added basic test to check le_bytes. --- src/packet/login.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/packet/login.rs b/src/packet/login.rs index 3e880c7..72a12a3 100644 --- a/src/packet/login.rs +++ b/src/packet/login.rs @@ -29,8 +29,6 @@ impl LoginWelcome { } } - - #[pso_packet(0x93)] pub struct Login { pub flag: u32, @@ -194,21 +192,21 @@ impl RedirectClient { } #[pso_packet(0x1E8)] -pub struct BBChecksum { +pub struct Checksum { pub flag: u32, } #[pso_packet(0x2E8)] -pub struct BBChecksumAck { +pub struct ChecksumAck { pub flag: u32, pub ack: u32, } -impl BBChecksumAck { - pub fn new() -> BBChecksumAck { - BBChecksumAck { +impl ChecksumAck { + pub fn new(ack: u32) -> ChecksumAck { + ChecksumAck { flag: 0, - ack: 1, + ack: ack, } } } @@ -256,4 +254,10 @@ mod tests { assert!(bytes[8 + 0x114] == key_config[0]); assert!(bytes[8 + 0x114 + 0x16C] == joystick_config[0]); } + + #[test] + fn test_login_checksum_ack() { + let mut checksum_ack = super::ChecksumAck::new(1); + assert!(u32::to_le_bytes(checksum_ack.ack) == [0x01, 0x00, 0x00, 0x00]); + } } From 4edb95d247da126fcb44d9909d42f745235bf538 Mon Sep 17 00:00:00 2001 From: Andy Date: Sun, 1 Sep 2019 14:57:08 -0300 Subject: [PATCH 3/5] assert.to_le_bytes to assert.as_bytes --- src/packet/login.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packet/login.rs b/src/packet/login.rs index 72a12a3..0af5437 100644 --- a/src/packet/login.rs +++ b/src/packet/login.rs @@ -257,7 +257,7 @@ mod tests { #[test] fn test_login_checksum_ack() { - let mut checksum_ack = super::ChecksumAck::new(1); - assert!(u32::to_le_bytes(checksum_ack.ack) == [0x01, 0x00, 0x00, 0x00]); + let checksum_ack = super::ChecksumAck::new(1); + assert!(u32::as_bytes(checksum_ack.ack) == [0x00, 0x00, 0x00, 0x01]); } } From ad8930fcb0fcf987e15301e4f67d938967488afb Mon Sep 17 00:00:00 2001 From: Andy Date: Sun, 1 Sep 2019 22:20:36 -0300 Subject: [PATCH 4/5] . --- src/packet/login.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/packet/login.rs b/src/packet/login.rs index 0af5437..59042e7 100644 --- a/src/packet/login.rs +++ b/src/packet/login.rs @@ -257,7 +257,8 @@ mod tests { #[test] fn test_login_checksum_ack() { - let checksum_ack = super::ChecksumAck::new(1); - assert!(u32::as_bytes(checksum_ack.ack) == [0x00, 0x00, 0x00, 0x01]); + use super::PSOPacket; + let pkt = super::ChecksumAck::new(1); + assert!(pkt.as_bytes() == [0xC, 0, 0xE8, 0x01, 0,0,0,0, 1,0,0,0]); } } From ebaef31bcc37884aead44458246fa926d7f7a3b9 Mon Sep 17 00:00:00 2001 From: Andy Date: Sun, 1 Sep 2019 22:25:48 -0300 Subject: [PATCH 5/5] tests passed yay i quit --- src/packet/login.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packet/login.rs b/src/packet/login.rs index 59042e7..b6cc10a 100644 --- a/src/packet/login.rs +++ b/src/packet/login.rs @@ -259,6 +259,6 @@ mod tests { fn test_login_checksum_ack() { use super::PSOPacket; let pkt = super::ChecksumAck::new(1); - assert!(pkt.as_bytes() == [0xC, 0, 0xE8, 0x01, 0,0,0,0, 1,0,0,0]); + assert!(pkt.as_bytes() == [0xC, 0, 0xE8, 0x02, 0,0,0,0, 1,0,0,0]); } }