Enable the full clippy all + pedantic + nursery groups as workspace warnings, with a small documented allow-list for the pedantic/nursery lints this project intentionally does not follow (rustdoc-style requirements, deliberate numeric casts in the protocol/UI layers, and a few noisy nursery lints). Also enable the rust unused_lifetimes and unsafe_op_in_unsafe_fn lints. Fixed every resulting warning (527 -> 0) mechanically per clippy's suggestions: inline format args, const fns, item ordering, let-else, redundant clones, map_or, cast_lossless, Eq derives, associated-fn conversions for methods that never used self, and removing unnecessary Result wrappers whose call sites could never propagate an error. No runtime behavior changed; cargo fmt applied. cargo clippy --workspace --all-targets: 0 warnings. All tests pass.
38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use crate::actor::server_actor::ServerMessage;
|
|
use crate::message::{Message, MessageHandler};
|
|
use std::sync::mpsc::Sender;
|
|
|
|
pub struct GetPeerAddressHandler;
|
|
|
|
impl MessageHandler<ServerMessage> for GetPeerAddressHandler {
|
|
fn get_code(&self) -> u8 {
|
|
3
|
|
}
|
|
|
|
fn handle(&self, message: &mut Message, sender: Sender<ServerMessage>) {
|
|
let username = message.read_string();
|
|
|
|
// Read IP address as 4 bytes
|
|
let mut ip: Vec<u8> = vec![];
|
|
for _ in 0..4 {
|
|
ip.push(message.read_int8());
|
|
}
|
|
let host = format!("{}.{}.{}.{}", ip[3], ip[2], ip[1], ip[0]);
|
|
|
|
let port = message.read_int32();
|
|
let obfuscation_type = message.read_int32();
|
|
let obfuscated_port = message.read_int32() as u16;
|
|
println!("GetPeerAddressHandler: {username:?}"); // Debug print
|
|
|
|
sender
|
|
.send(ServerMessage::GetPeerAddressResponse {
|
|
username,
|
|
host,
|
|
port,
|
|
obfuscation_type,
|
|
obfuscated_port,
|
|
})
|
|
.unwrap();
|
|
}
|
|
}
|