diff --git a/src/kerberos/mod.rs b/src/kerberos/mod.rs index cc48eaf..8fb46fa 100644 --- a/src/kerberos/mod.rs +++ b/src/kerberos/mod.rs @@ -71,7 +71,7 @@ impl KerberosDateTime{ #[inline] pub fn get_year(&self) -> u64{ - ((self.0 >> 26) & 0xFFFFFFFF) + (self.0 >> 26) & 0xFFFFFFFF } pub fn to_regular_time(&self) -> chrono::DateTime{ diff --git a/src/main.rs b/src/main.rs index 04423f0..8a07c5b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,12 +7,11 @@ use std::net::{Ipv4Addr, SocketAddrV4}; use std::sync::Arc; use chrono::Local; use log::info; -use macros::RmcSerialize; use once_cell::sync::Lazy; use rc4::{KeyInit, Rc4, StreamCipher}; use rc4::consts::U5; use simplelog::{ColorChoice, CombinedLogger, Config, LevelFilter, TerminalMode, TermLogger, WriteLogger}; -use tokio::sync::{Mutex, RwLock}; +use tokio::sync::RwLock; use tokio::task::JoinHandle; use crate::nex::account::Account; use crate::protocols::{auth, block_if_maintenance}; @@ -20,12 +19,11 @@ use crate::protocols::auth::AuthProtocolConfig; use crate::protocols::matchmake_common::MatchmakeData; use crate::protocols::server::RMCProtocolServer; use crate::prudp::socket::{ActiveSecureConnectionData, EncryptionPair, Socket}; -use crate::prudp::packet::{PRUDPPacket, VirtualPort}; +use crate::prudp::packet::{VirtualPort}; use crate::prudp::router::Router; use crate::prudp::secure::{generate_secure_encryption_pairs, read_secure_connection_data}; use crate::rmc::message::RMCMessage; use crate::rmc::structures::RmcSerialize; -use crate::rmc::structures::variant::Variant; mod endianness; mod prudp; @@ -121,7 +119,7 @@ async fn start_auth_server() -> AuthServer{ Box::new(auth::bound_protocol(auth_protocol_config)) ])); - let mut socket = + let socket = Socket::new( router.clone(), VirtualPort::new(1,10), @@ -191,7 +189,7 @@ async fn start_secure_server() -> SecureServer{ Box::new(protocols::matchmake_extension::bound_protocol(matchmake_data)) ])); - let mut socket = + let socket = Socket::new( router.clone(), VirtualPort::new(1,10), diff --git a/src/protocols/auth/method_login.rs b/src/protocols/auth/method_login.rs index 8e20a0c..a647390 100644 --- a/src/protocols/auth/method_login.rs +++ b/src/protocols/auth/method_login.rs @@ -2,7 +2,6 @@ use std::io::Cursor; use std::sync::Arc; use log::error; use tokio::sync::Mutex; -use crate::nex::account::Account; use crate::protocols::auth::AuthProtocolConfig; use crate::prudp::socket::{ConnectionData, SocketData}; use crate::rmc::message::RMCMessage; diff --git a/src/protocols/auth/method_login_ex.rs b/src/protocols/auth/method_login_ex.rs index 61ed0c7..63ff73f 100644 --- a/src/protocols/auth/method_login_ex.rs +++ b/src/protocols/auth/method_login_ex.rs @@ -1,12 +1,10 @@ use std::io::{Cursor, Write}; use std::sync::Arc; use bytemuck::bytes_of; -use hex::encode; use log::{error}; use tokio::sync::Mutex; use crate::grpc::account; use crate::kerberos::KerberosDateTime; -use crate::nex::account::Account; use crate::protocols::auth::AuthProtocolConfig; use crate::protocols::auth::ticket_generation::generate_ticket; use crate::prudp::socket::{ConnectionData, SocketData}; diff --git a/src/protocols/auth/method_request_ticket.rs b/src/protocols/auth/method_request_ticket.rs index 6a04041..6f2d767 100644 --- a/src/protocols/auth/method_request_ticket.rs +++ b/src/protocols/auth/method_request_ticket.rs @@ -1,17 +1,13 @@ use std::io::Cursor; use std::sync::Arc; -use log::error; use tokio::sync::Mutex; use crate::endianness::{IS_BIG_ENDIAN, ReadExtensions}; -use crate::grpc::account; use crate::protocols::auth::{AuthProtocolConfig, get_login_data_by_pid}; -use crate::protocols::auth::method_login_ex::login_ex; use crate::protocols::auth::ticket_generation::generate_ticket; use crate::prudp::socket::{ConnectionData, SocketData}; use crate::rmc::message::RMCMessage; use crate::rmc::response::{ErrorCode, RMCResponseResult}; use crate::rmc::response::ErrorCode::Core_Unknown; -use crate::rmc::structures::any::Any; use crate::rmc::structures::qresult::QResult; use crate::rmc::structures::RmcSerialize; diff --git a/src/protocols/auth/mod.rs b/src/protocols/auth/mod.rs index 9f54532..1cc4f87 100644 --- a/src/protocols/auth/mod.rs +++ b/src/protocols/auth/mod.rs @@ -3,16 +3,12 @@ mod method_login; mod ticket_generation; mod method_request_ticket; -use std::sync::Arc; -use log::{error}; use crate::define_protocol; use crate::grpc::account; use crate::nex::account::Account; use crate::protocols::auth::method_login::login_raw_params; use crate::protocols::auth::method_login_ex::login_ex_raw_params; use crate::protocols::auth::method_request_ticket::request_ticket_raw_params; -use crate::rmc::message::RMCMessage; -use crate::rmc::response::{ErrorCode, RMCResponse}; #[derive(Copy, Clone)] pub struct AuthProtocolConfig { diff --git a/src/protocols/matchmake/method_unregister_gathering.rs b/src/protocols/matchmake/method_unregister_gathering.rs index 28f9c5b..d055afb 100644 --- a/src/protocols/matchmake/method_unregister_gathering.rs +++ b/src/protocols/matchmake/method_unregister_gathering.rs @@ -1,6 +1,5 @@ use std::io::Cursor; use std::sync::Arc; -use log::info; use tokio::sync::{Mutex, RwLock}; use crate::protocols::matchmake_common::MatchmakeData; use crate::prudp::socket::{ConnectionData, SocketData}; diff --git a/src/protocols/matchmake_common/mod.rs b/src/protocols/matchmake_common/mod.rs index ce725e2..79f7c97 100644 --- a/src/protocols/matchmake_common/mod.rs +++ b/src/protocols/matchmake_common/mod.rs @@ -1,4 +1,4 @@ -use std::collections::{BTreeMap, HashMap}; +use std::collections::{BTreeMap}; use std::sync::Arc; use log::error; use tokio::sync::Mutex; diff --git a/src/protocols/matchmake_extension/mod.rs b/src/protocols/matchmake_extension/mod.rs index 080db7b..509f3bb 100644 --- a/src/protocols/matchmake_extension/mod.rs +++ b/src/protocols/matchmake_extension/mod.rs @@ -2,7 +2,7 @@ mod method_get_playing_session; mod method_auto_matchmake_with_param_postpone; use std::sync::Arc; -use tokio::sync::{Mutex, RwLock}; +use tokio::sync::{RwLock}; use crate::define_protocol; use crate::protocols::matchmake_common::MatchmakeData; use method_get_playing_session::get_playing_session_raw_params; diff --git a/src/protocols/mod.rs b/src/protocols/mod.rs index 9f0f188..89916af 100644 --- a/src/protocols/mod.rs +++ b/src/protocols/mod.rs @@ -35,7 +35,7 @@ static BYPASS_LEVEL: Lazy = Lazy::new(|| { pub fn block_if_maintenance<'a>(rmcmessage: &'a RMCMessage, _: &'a Arc , conn: &'a Arc>) -> Pin> + Send + 'a)>> { Box::pin(async move { - let mut conn = conn.lock().await; + let conn = conn.lock().await; if let Some(active_conn) = conn.active_connection_data.as_ref() { if let Some(secure_conn) = active_conn.active_secure_connection_data.as_ref() { diff --git a/src/protocols/secure/method_register.rs b/src/protocols/secure/method_register.rs index eb99421..16a5777 100644 --- a/src/protocols/secure/method_register.rs +++ b/src/protocols/secure/method_register.rs @@ -1,16 +1,13 @@ use std::io::{Cursor, Write}; use std::sync::Arc; use bytemuck::bytes_of; -use log::{error, warn}; use tokio::sync::Mutex; -use crate::protocols::auth::AuthProtocolConfig; use crate::prudp::socket::{ConnectionData, SocketData}; use crate::prudp::station_url::{nat_types, StationUrl}; use crate::prudp::station_url::Type::PRUDPS; use crate::prudp::station_url::UrlOptions::{Address, NatFiltering, NatMapping, NatType, Port, PrincipalID, RVConnectionID}; use crate::rmc::message::RMCMessage; use crate::rmc::response::{ErrorCode, RMCResponseResult}; -use crate::rmc::structures::any::Any; use crate::rmc::structures::qresult::QResult; use crate::rmc::structures::RmcSerialize; diff --git a/src/protocols/secure/method_send_report.rs b/src/protocols/secure/method_send_report.rs index 6b8b44f..bdfa8b6 100644 --- a/src/protocols/secure/method_send_report.rs +++ b/src/protocols/secure/method_send_report.rs @@ -3,11 +3,9 @@ use std::sync::Arc; use log::error; use tokio::sync::Mutex; use crate::endianness::{IS_BIG_ENDIAN, ReadExtensions}; -use crate::protocols::secure::method_register::register; use crate::prudp::socket::{ConnectionData, SocketData}; -use crate::prudp::station_url::StationUrl; use crate::rmc::message::RMCMessage; -use crate::rmc::response::{ErrorCode, RMCResponseResult}; +use crate::rmc::response::{RMCResponseResult}; use crate::rmc::response::ErrorCode::Core_InvalidArgument; use crate::rmc::structures::qbuffer; diff --git a/src/prudp/secure.rs b/src/prudp/secure.rs index 01f2055..916971d 100644 --- a/src/prudp/secure.rs +++ b/src/prudp/secure.rs @@ -7,7 +7,6 @@ use rc4::consts::U16; use crate::endianness::{IS_BIG_ENDIAN, ReadExtensions}; use crate::kerberos::{derive_key, TicketInternalData}; use crate::nex::account::Account; -use crate::prudp::packet::PRUDPHeader; use crate::prudp::socket::EncryptionPair; use crate::rmc::structures::RmcSerialize; diff --git a/src/prudp/socket.rs b/src/prudp/socket.rs index f32528b..ecf0108 100644 --- a/src/prudp/socket.rs +++ b/src/prudp/socket.rs @@ -4,8 +4,8 @@ use std::ops::Deref; use std::pin::Pin; use tokio::net::UdpSocket; use std::sync::{Arc}; -use tokio::sync::{Mutex, MutexGuard, RwLock}; -use log::{error, info, trace, warn}; +use tokio::sync::{Mutex, RwLock}; +use log::{error, trace, warn}; use rand::random; use rc4::StreamCipher; use crate::prudp::packet::{PacketOption, PRUDPPacket, VirtualPort}; diff --git a/src/rmc/response.rs b/src/rmc/response.rs index 96b82f3..7d16ba4 100644 --- a/src/rmc/response.rs +++ b/src/rmc/response.rs @@ -1,7 +1,6 @@ use std::io; use std::io::{Write}; use std::mem::transmute; -use std::time::Duration; use bytemuck::bytes_of; use crate::prudp::packet::{PRUDPPacket}; use crate::prudp::packet::flags::{NEED_ACK, RELIABLE}; diff --git a/src/rmc/structures/buffer.rs b/src/rmc/structures/buffer.rs index 19639fc..8de0349 100644 --- a/src/rmc/structures/buffer.rs +++ b/src/rmc/structures/buffer.rs @@ -1,5 +1,4 @@ use std::io::{Read, Write}; -use crate::endianness::{IS_BIG_ENDIAN, ReadExtensions}; use crate::rmc::structures::RmcSerialize; impl<'a> RmcSerialize for &'a [u8]{ diff --git a/src/rmc/structures/connection_data.rs b/src/rmc/structures/connection_data.rs index 2527c1b..d1418b3 100644 --- a/src/rmc/structures/connection_data.rs +++ b/src/rmc/structures/connection_data.rs @@ -12,7 +12,7 @@ pub struct ConnectionData<'a>{ impl<'a> RmcSerialize for ConnectionData<'a>{ fn serialize(&self, writer: &mut dyn Write) -> crate::rmc::structures::Result<()> { - rmc_struct::write_struct(writer, 1, |mut v|{ + rmc_struct::write_struct(writer, 1, |v|{ self.station_url.serialize(v).expect("unable to write station url"); self.special_protocols.serialize(v).expect("unable to write special protocols"); self.special_station_url.serialize(v).expect("unable to write special station url"); diff --git a/src/rmc/structures/matchmake.rs b/src/rmc/structures/matchmake.rs index 5406512..72cb6a0 100644 --- a/src/rmc/structures/matchmake.rs +++ b/src/rmc/structures/matchmake.rs @@ -1,6 +1,5 @@ use macros::RmcSerialize; use crate::kerberos::KerberosDateTime; -use crate::rmc::structures::RmcSerialize; use crate::rmc::structures::variant::Variant; // rmc structure diff --git a/src/rmc/structures/primitives.rs b/src/rmc/structures/primitives.rs index 8de5458..bd08da8 100644 --- a/src/rmc/structures/primitives.rs +++ b/src/rmc/structures/primitives.rs @@ -72,7 +72,7 @@ impl RmcSerialize for bool{ Ok(()) } - fn deserialize(mut reader: &mut dyn Read) -> crate::rmc::structures::Result { + fn deserialize(reader: &mut dyn Read) -> crate::rmc::structures::Result { Ok(u8::deserialize(reader)? != 0) } } diff --git a/src/rmc/structures/rmc_struct.rs b/src/rmc/structures/rmc_struct.rs index fc4c944..2477315 100644 --- a/src/rmc/structures/rmc_struct.rs +++ b/src/rmc/structures/rmc_struct.rs @@ -10,7 +10,7 @@ struct StructureHeader{ length: u32 } -pub fn write_struct(mut writer: &mut dyn Write, version: u8, pred: impl FnOnce(&mut Vec) -> Result<()> ) -> Result<()> { +pub fn write_struct(writer: &mut dyn Write, version: u8, pred: impl FnOnce(&mut Vec) -> Result<()> ) -> Result<()> { writer.write_all(&[version])?; let mut scratch_space: Vec = Vec::new(); diff --git a/src/rmc/structures/string.rs b/src/rmc/structures/string.rs index f2c63f1..41f9278 100644 --- a/src/rmc/structures/string.rs +++ b/src/rmc/structures/string.rs @@ -23,7 +23,7 @@ impl RmcSerialize for String{ } impl RmcSerialize for &str{ - fn deserialize(mut reader: &mut dyn Read) -> Result { + fn deserialize(reader: &mut dyn Read) -> Result { panic!("cannot serialize to &str") } fn serialize(&self, writer: &mut dyn Write) -> Result<()> {