From ca5fa8e8b97a2dd5092c5e264a50660da56a0546 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 8 Mar 2025 23:07:55 -0500 Subject: [PATCH] Fix various Clippy warnings --- src/bin/kawari-frontier.rs | 2 +- src/bin/kawari-login.rs | 4 ++-- src/bin/kawari-patch.rs | 2 +- src/bin/kawari-web.rs | 13 +++++-------- src/encryption.rs | 3 +-- src/packet.rs | 32 +++++++++++++++++--------------- 6 files changed, 27 insertions(+), 29 deletions(-) diff --git a/src/bin/kawari-frontier.rs b/src/bin/kawari-frontier.rs index ad1778d..6fbe014 100644 --- a/src/bin/kawari-frontier.rs +++ b/src/bin/kawari-frontier.rs @@ -23,7 +23,7 @@ async fn get_world_status() -> Json { let config = get_config(); Json(GateStatus { - status: config.login_open.into(), + status: config.worlds_open.into(), }) } diff --git a/src/bin/kawari-login.rs b/src/bin/kawari-login.rs index f987d31..75e219b 100644 --- a/src/bin/kawari-login.rs +++ b/src/bin/kawari-login.rs @@ -18,7 +18,7 @@ struct Params { launchver: String, } -async fn top(Query(params): Query) -> Html<&'static str> { +async fn top(Query(_): Query) -> Html<&'static str> { Html( "\r\n\r\n\r\n\r\n
\r\n\t\r\n\t\t\r\n\t\t\n\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\r\n\t
\r\n\r\n\r\n\r\n\r\n", ) @@ -33,7 +33,7 @@ struct Input { otppw: String, } -async fn login_send(Form(input): Form) -> Html { +async fn login_send(Form(_): Form) -> Html { let sid = generate_sid(); Html(format!( "window.external.user(\"login=auth,ok,sid,{sid},terms,1,region,2,etmadd,0,playable,1,ps3pkg,0,maxex,4,product,1\");" diff --git a/src/bin/kawari-patch.rs b/src/bin/kawari-patch.rs index ad0c92a..7f4a8de 100644 --- a/src/bin/kawari-patch.rs +++ b/src/bin/kawari-patch.rs @@ -63,7 +63,7 @@ fn list_patch_files(dir_path: &str) -> Vec { } async fn verify_session( - Path((platform, game_version, sid)): Path<(String, String, String)>, + Path((platform, _, sid)): Path<(String, String, String)>, ) -> impl IntoResponse { let config = get_config(); if !config.supports_platform(&platform) { diff --git a/src/bin/kawari-web.rs b/src/bin/kawari-web.rs index a1a5993..63531c0 100644 --- a/src/bin/kawari-web.rs +++ b/src/bin/kawari-web.rs @@ -14,24 +14,18 @@ struct GateStatus { } async fn root() -> Html { - let config = get_config(); - let environment = setup_default_environment(); let template = environment.get_template("web.html").unwrap(); Html(template.render(context! {}).unwrap()) } async fn login() -> Html { - let config = get_config(); - let environment = setup_default_environment(); let template = environment.get_template("login.html").unwrap(); Html(template.render(context! {}).unwrap()) } async fn register() -> Html { - let config = get_config(); - let environment = setup_default_environment(); let template = environment.get_template("register.html").unwrap(); Html(template.render(context! {}).unwrap()) @@ -52,13 +46,16 @@ async fn world_status() -> Html { #[derive(Deserialize, Debug)] #[allow(dead_code)] struct Input { - gate_open: Option, + login_open: Option, + worlds_open: Option, } async fn apply(Form(input): Form) -> Redirect { tracing::info!("Apply config changes..."); - let config = get_config(); + let mut config = get_config(); + config.login_open = input.login_open == Some("1".to_string()); + config.worlds_open = input.worlds_open == Some("1".to_string()); serde_json::to_writer(&std::fs::File::create("config.json").unwrap(), &config) .expect("TODO: panic message"); diff --git a/src/encryption.rs b/src/encryption.rs index 61419e2..03c1a66 100644 --- a/src/encryption.rs +++ b/src/encryption.rs @@ -41,8 +41,7 @@ where let size = size - (std::mem::size_of::() * 4) as u32; // 16 = header size - let mut data = Vec::new(); - data.resize(size as usize, 0x0); + let mut data = vec![0; size as usize]; reader.read_exact(&mut data)?; unsafe { diff --git a/src/packet.rs b/src/packet.rs index 0630121..fbf68a4 100644 --- a/src/packet.rs +++ b/src/packet.rs @@ -1,5 +1,5 @@ use std::{ - cmp::{max, min}, + cmp::min, fs::write, io::Cursor, time::{SystemTime, UNIX_EPOCH}, @@ -44,7 +44,7 @@ enum SegmentType { key: [u8; 4], }, #[brw(magic = 0x3u32)] - IPC { + Ipc { #[br(parse_with = decrypt, args(size, encryption_key))] #[bw(write_with = encrypt, args(size, encryption_key))] data: IPCSegment, @@ -98,7 +98,7 @@ impl PacketSegment { + match &self.segment_type { SegmentType::InitializeEncryption { .. } => 616, SegmentType::InitializationEncryptionResponse { .. } => 640, - SegmentType::IPC { data } => data.calc_size(), + SegmentType::Ipc { data } => data.calc_size(), SegmentType::KeepAlive { .. } => todo!(), SegmentType::KeepAliveResponse { .. } => 0x8, } @@ -116,7 +116,7 @@ struct Packet { } fn dump(msg: &str, data: &[u8]) { - write("packet.bin", data); + write("packet.bin", data).unwrap(); panic!("{msg} Dumped to packet.bin."); } @@ -152,18 +152,20 @@ async fn send_packet(socket: &mut WriteHalf, segments: &[PacketSegmen }; let mut cursor = Cursor::new(Vec::new()); - packet.write_le_args( - &mut cursor, - (state.client_key.as_ref().map(|s: &[u8; 16]| s.as_slice()),), - ); + packet + .write_le_args( + &mut cursor, + (state.client_key.as_ref().map(|s: &[u8; 16]| s.as_slice()),), + ) + .unwrap(); let buffer = cursor.into_inner(); tracing::info!("Wrote response packet to outpacket.bin"); - write("outpacket.bin", &buffer); + write("outpacket.bin", &buffer).unwrap(); socket - .write(&buffer) + .write_all(&buffer) .await .expect("Failed to write packet!"); } @@ -216,7 +218,7 @@ pub async fn parse_packet(socket: &mut WriteHalf, data: &[u8], state: }; send_packet(socket, &[response_packet], state).await; } - SegmentType::IPC { data } => { + SegmentType::Ipc { data } => { match &data.data { IPCStructData::ClientVersionInfo { session_id, @@ -262,7 +264,7 @@ pub async fn parse_packet(socket: &mut WriteHalf, data: &[u8], state: let response_packet = PacketSegment { source_actor: 0, target_actor: 0, - segment_type: SegmentType::IPC { data: ipc }, + segment_type: SegmentType::Ipc { data: ipc }, }; send_packet(socket, &[response_packet], state).await; } @@ -310,7 +312,7 @@ pub async fn parse_packet(socket: &mut WriteHalf, data: &[u8], state: let response_packet = PacketSegment { source_actor: 0, target_actor: 0, - segment_type: SegmentType::IPC { data: ipc }, + segment_type: SegmentType::Ipc { data: ipc }, }; packets.push(response_packet); } @@ -332,7 +334,7 @@ pub async fn parse_packet(socket: &mut WriteHalf, data: &[u8], state: let response_packet = PacketSegment { source_actor: 0, target_actor: 0, - segment_type: SegmentType::IPC { data: ipc }, + segment_type: SegmentType::Ipc { data: ipc }, }; packets.push(response_packet); } @@ -420,7 +422,7 @@ pub async fn parse_packet(socket: &mut WriteHalf, data: &[u8], state: let response_packet = PacketSegment { source_actor: 0, target_actor: 0, - segment_type: SegmentType::IPC { data: ipc }, + segment_type: SegmentType::Ipc { data: ipc }, }; send_packet(socket, &[response_packet], state).await; }