chore: fix warnings

This commit is contained in:
Michel de Graaf
2025-06-29 17:56:23 +02:00
parent 430bdebb23
commit c654f7dcdb
8 changed files with 51 additions and 59 deletions
+8 -8
View File
@@ -79,19 +79,19 @@ impl Client {
println!("Logging in as {}", self.username); println!("Logging in as {}", self.username);
if let Some(server) = &self.server { if let Some(server) = &self.server {
let result = server.login(&self.username, &self.password); let result = server.login(&self.username, &self.password);
if result.unwrap() == true { if result.unwrap() {
return Ok(true); Ok(true)
} else { } else {
return Err(std::io::Error::new( Err(std::io::Error::new(
std::io::ErrorKind::Other, std::io::ErrorKind::Other,
"Error logging in", "Error logging in",
)); ))
} }
} else { } else {
return Err(std::io::Error::new( Err(std::io::Error::new(
std::io::ErrorKind::Other, std::io::ErrorKind::Other,
"Not connected to server", "Not connected to server",
)); ))
} }
} }
@@ -99,8 +99,8 @@ impl Client {
println!("Searching for {}", query); println!("Searching for {}", query);
if let Some(server) = &self.server { if let Some(server) = &self.server {
let hash = md5::md5(query); let hash = md5::md5(query);
let token = i32::from_str_radix(&hash[0..5].to_string(), 16).unwrap(); let token = i32::from_str_radix(&hash[0..5], 16).unwrap();
server.file_search(token, &query); server.file_search(token, query);
} else { } else {
eprintln!("Not connected to server"); eprintln!("Not connected to server");
} }
+3 -3
View File
@@ -1,4 +1,4 @@
use std::{fmt::Display, str}; use std::str;
#[derive(Debug, PartialEq, Clone)] #[derive(Debug, PartialEq, Clone)]
pub struct Message { pub struct Message {
@@ -42,7 +42,7 @@ impl Message {
// Print the ASCII part // Print the ASCII part
let mut i = 0; let mut i = 0;
for &byte in chunk { for &byte in chunk {
i = i + 1; i += 1;
if byte.is_ascii_graphic() || byte.is_ascii_whitespace() { if byte.is_ascii_graphic() || byte.is_ascii_whitespace() {
print!("{}", byte as char); print!("{}", byte as char);
} else { } else {
@@ -166,7 +166,7 @@ impl Message {
.map(|byte| format!("{:02x}", byte)) .map(|byte| format!("{:02x}", byte))
.collect::<String>(); .collect::<String>();
self.pointer += size; self.pointer += size;
return hex_str; hex_str
} }
pub fn read_int8(&mut self) -> i8 { pub fn read_int8(&mut self) -> i8 {
+1 -1
View File
@@ -74,7 +74,7 @@ impl MessageReader {
} }
let message_buffer: Vec<u8> = self.buffer.drain(..total_size).collect(); let message_buffer: Vec<u8> = self.buffer.drain(..total_size).collect();
return Ok(Some(Message::new_with_data(message_buffer))); Ok(Some(Message::new_with_data(message_buffer)))
} }
} }
+1 -1
View File
@@ -71,7 +71,7 @@ impl MessageFactory {
pub fn build_watch_user(token: &str) -> Message { pub fn build_watch_user(token: &str) -> Message {
Message::new() Message::new()
.write_raw_bytes([5, 0, 0, 0, 0].to_vec()) .write_raw_bytes([5, 0, 0, 0, 0].to_vec())
.write_raw_hex_string(&token) .write_raw_hex_string(token)
.clone() .clone()
} }
} }
+2 -2
View File
@@ -355,10 +355,10 @@ impl Server {
} }
{ {
logged_in = context.lock().unwrap().logged_in.clone() logged_in = context.lock().unwrap().logged_in
} }
if !logged_in.is_none() { if logged_in.is_some() {
break; break;
} }
} }
+31 -33
View File
@@ -1,23 +1,19 @@
use std::convert::TryInto; use std::convert::TryInto;
/** // The MD5 Message-Digest Algorithm, written in Rust.
* // Implemented by michael dimovich (@mdimovich)
* The MD5 Message-Digest Algorithm, written in Rust. //
* Implemented by michael dimovich (@mdimovich) // The purpose of this code is to act as a learning resource
* // for the md5 message digest algorithm. I wanted to provide
* The purpose of this code is to act as a learning resource // a straightforward walk-through of the md5 algorithm using
* for the md5 message digest algorithm. I wanted to provide // Rust.
* a straightforward walk-through of the md5 algorithm using //
* Rust. // This code was implemented using the original md5 message digest
* // RFC, written by R. Rivest in April 1992.
* This code was implemented using the original md5 message digest //
* RFC, written by R. Rivest in April 1992. // For more information about the md5 algorithm, or the original C
* // source code implementation, please reference RFC 1321.
* For more information about the md5 algorithm, or the original C //
* source code implementation, please reference RFC 1321. // (source: https://datatracker.ietf.org/doc/html/rfc1321)
*
* (source: https://datatracker.ietf.org/doc/html/rfc1321)
*
*/
/** /**
* This function is specified in the rfc as a way to generate the * This function is specified in the rfc as a way to generate the
@@ -29,7 +25,7 @@ fn table_construction_function(i: u32) -> u32 {
let x: f64 = i as f64; let x: f64 = i as f64;
let sin_eval = x.sin().abs(); let sin_eval = x.sin().abs();
// note: 4294967296 == 2^32 // note: 4294967296 == 2^32
return (4294967296.0 * sin_eval) as u32; (4294967296.0 * sin_eval) as u32
} }
/** /**
@@ -78,6 +74,8 @@ fn round_one_operations(
table: &Vec<u32>, table: &Vec<u32>,
x: &Vec<u32>, x: &Vec<u32>,
) -> [u32; 4] { ) -> [u32; 4] {
let _ = x;
let _ = table;
macro_rules! round1 { macro_rules! round1 {
( $a:ident, $b:ident, $c:ident, $d:ident, $k:expr, $s:expr, $i: expr ) => { ( $a:ident, $b:ident, $c:ident, $d:ident, $k:expr, $s:expr, $i: expr ) => {
$a = $b.wrapping_add( $a = $b.wrapping_add(
@@ -109,7 +107,7 @@ fn round_one_operations(
round1!(c, d, a, b, 14, 17, 15); round1!(c, d, a, b, 14, 17, 15);
round1!(b, c, d, a, 15, 22, 16); round1!(b, c, d, a, 15, 22, 16);
return [a, b, c, d]; [a, b, c, d]
} }
/** /**
@@ -155,7 +153,7 @@ fn round_two_operations(
round2!(c, d, a, b, 7, 14, 31); round2!(c, d, a, b, 7, 14, 31);
round2!(b, c, d, a, 12, 20, 32); round2!(b, c, d, a, 12, 20, 32);
return [a, b, c, d]; [a, b, c, d]
} }
/** /**
@@ -201,7 +199,7 @@ fn round_three_operations(
round3!(c, d, a, b, 15, 16, 47); round3!(c, d, a, b, 15, 16, 47);
round3!(b, c, d, a, 2, 23, 48); round3!(b, c, d, a, 2, 23, 48);
return [a, b, c, d]; [a, b, c, d]
} }
/** /**
@@ -247,7 +245,7 @@ fn round_four_operations(
round4!(c, d, a, b, 2, 15, 63); round4!(c, d, a, b, 2, 15, 63);
round4!(b, c, d, a, 9, 21, 64); round4!(b, c, d, a, 9, 21, 64);
return [a, b, c, d]; [a, b, c, d]
} }
/** /**
@@ -273,7 +271,7 @@ fn convert_u8_chunk_to_u32(chunk: &mut [u8]) -> Vec<u32> {
temporary_vec.clear(); temporary_vec.clear();
} }
} }
return x; x
} }
fn compute_md5_digest(mut v: Vec<u8>) -> String { fn compute_md5_digest(mut v: Vec<u8>) -> String {
@@ -344,7 +342,7 @@ fn compute_md5_digest(mut v: Vec<u8>) -> String {
word_c.swap_bytes(), word_c.swap_bytes(),
word_d.swap_bytes() word_d.swap_bytes()
); );
return message_digest; message_digest
} }
/* /*
@@ -372,11 +370,12 @@ fn bit_padding(input: &str) -> Vec<u8> {
let length_bits_as_u8_array = split_u64_to_u8_array(bit_length); let length_bits_as_u8_array = split_u64_to_u8_array(bit_length);
input_vector.extend(length_bits_as_u8_array); input_vector.extend(length_bits_as_u8_array);
return input_vector; input_vector
} }
fn split_u64_to_u8_array(s: u64) -> [u8; 8] { fn split_u64_to_u8_array(s: u64) -> [u8; 8] {
let u8_array = [
[
s as u8, s as u8,
(s >> 8) as u8, (s >> 8) as u8,
(s >> 16) as u8, (s >> 16) as u8,
@@ -385,8 +384,7 @@ fn split_u64_to_u8_array(s: u64) -> [u8; 8] {
(s >> 40) as u8, (s >> 40) as u8,
(s >> 48) as u8, (s >> 48) as u8,
(s >> 56) as u8, (s >> 56) as u8,
]; ]
return u8_array;
} }
fn construct_value_table() -> Vec<u32> { fn construct_value_table() -> Vec<u32> {
@@ -395,7 +393,7 @@ fn construct_value_table() -> Vec<u32> {
for i in 1..=64 { for i in 1..=64 {
t.push(table_construction_function(i)); t.push(table_construction_function(i));
} }
return t; t
} }
// this should only work with utf-8 encoding and not full unicode support // this should only work with utf-8 encoding and not full unicode support
@@ -403,7 +401,7 @@ fn construct_value_table() -> Vec<u32> {
fn convert_str_to_vec(input: &str) -> Vec<u8> { fn convert_str_to_vec(input: &str) -> Vec<u8> {
let mut byte_vec: Vec<u8> = Vec::new(); let mut byte_vec: Vec<u8> = Vec::new();
byte_vec.extend(input.as_bytes()); byte_vec.extend(input.as_bytes());
return byte_vec; byte_vec
} }
/** /**
@@ -425,7 +423,7 @@ fn convert_str_to_vec(input: &str) -> Vec<u8> {
*/ */
pub fn md5(input: &str) -> String { pub fn md5(input: &str) -> String {
let input_vec = bit_padding(input); let input_vec = bit_padding(input);
return compute_md5_digest(input_vec); compute_md5_digest(input_vec)
} }
#[test] #[test]
fn a_correct_hash() { fn a_correct_hash() {
-1
View File
@@ -2,4 +2,3 @@ pub mod md5;
pub mod zlib; pub mod zlib;
pub use md5::*; pub use md5::*;
pub use zlib::*;
+5 -10
View File
@@ -1,7 +1,5 @@
//https://www.rfc-editor.org/rfc/rfc1950 //https://www.rfc-editor.org/rfc/rfc1950
use flate2::bufread::ZlibDecoder;
#[derive(Debug)] #[derive(Debug)]
struct ZlibHeader { struct ZlibHeader {
cm: u8, cm: u8,
@@ -32,13 +30,13 @@ pub fn extract_header(data: &Vec<u8>) -> Result<ZlibHeader, String> {
if cm != 8 { if cm != 8 {
return Err(format!("ZLIB compression method not supported: {}", cmf)); return Err(format!("ZLIB compression method not supported: {}", cmf));
} }
return Ok(ZlibHeader { Ok(ZlibHeader {
cm, cm,
cinfo, cinfo,
fcheck, fcheck,
fdict, fdict,
flevel, flevel,
}); })
} }
pub fn extract_block_header(data: &Vec<u8>) -> BlockHeader { pub fn extract_block_header(data: &Vec<u8>) -> BlockHeader {
@@ -114,7 +112,7 @@ fn find_symbol(current_code: u32, code_len: u32) -> Option<u32> {
// Range for symbols 256-279: 0b0000000 to 0b0010111 // Range for symbols 256-279: 0b0000000 to 0b0010111
if (0..=0b0010111).contains(&reversed_code) { if (0..=0b0010111).contains(&reversed_code) {
// Symbol = base_symbol + (code - base_code) // Symbol = base_symbol + (code - base_code)
let symbol = 256 + (reversed_code - 0b0000000); let symbol = 256 + reversed_code;
return Some(symbol); return Some(symbol);
} }
} }
@@ -122,7 +120,7 @@ fn find_symbol(current_code: u32, code_len: u32) -> Option<u32> {
let reversed_code = reverse_bits(current_code, 8); let reversed_code = reverse_bits(current_code, 8);
// Range for symbols 0-143: 0b00110000 to 0b10111111 // Range for symbols 0-143: 0b00110000 to 0b10111111
if (0b00110000..=0b10111111).contains(&reversed_code) { if (0b00110000..=0b10111111).contains(&reversed_code) {
let symbol = 0 + (reversed_code - 0b00110000); let symbol = reversed_code - 0b00110000;
return Some(symbol); return Some(symbol);
} }
// Range for symbols 280-287: 0b11000000 to 0b11000111 // Range for symbols 280-287: 0b11000000 to 0b11000111
@@ -148,7 +146,7 @@ fn find_symbol(current_code: u32, code_len: u32) -> Option<u32> {
// If we checked a valid length but the code wasn't in any range for that length. // If we checked a valid length but the code wasn't in any range for that length.
None None
} }
pub fn decode_fixed_huffman_symbol(reader: &mut BitReader) -> Result<u32, &'static str> { fn decode_fixed_huffman_symbol(reader: &mut BitReader) -> Result<u32, &'static str> {
let mut current_code = 0u32; let mut current_code = 0u32;
let mut code_len = 0u32; let mut code_len = 0u32;
loop { loop {
@@ -355,14 +353,11 @@ impl HuffmanTable {
} }
} }
// --- New Generic Symbol Decoder ---
/// Decodes one symbol from the stream using the provided Huffman table.
fn decode_symbol( fn decode_symbol(
reader: &mut BitReader, reader: &mut BitReader,
huffman_table: &HuffmanTable, huffman_table: &HuffmanTable,
) -> Result<u32, &'static str> { ) -> Result<u32, &'static str> {
let mut code = 0; let mut code = 0;
let mut len = 0;
// The maximum length for DEFLATE codes is 15 bits. // The maximum length for DEFLATE codes is 15 bits.
for i in 0..15 { for i in 0..15 {