Fixed warnings manually

modified:   src/client.rs
	modified:   src/server.rs
This commit is contained in:
Michael Wain 2024-11-13 01:51:27 +03:00
parent 25db097e6d
commit 8402b5d15d
2 changed files with 24 additions and 22 deletions

View File

@ -8,14 +8,14 @@ pub mod general {
aead::{Aead, AeadCore, KeyInit, OsRng}, aead::{Aead, AeadCore, KeyInit, OsRng},
Aes256Gcm, Nonce}; Aes256Gcm, Nonce};
use base64::prelude::*; use base64::prelude::*;
use std::{io::Read, sync::Arc}; use std::sync::Arc;
use std::net::Ipv4Addr; use std::net::Ipv4Addr;
use x25519_dalek::{PublicKey, StaticSecret}; use x25519_dalek::{PublicKey, StaticSecret};
use crate::udp::{UDPVpnPacket, UDPVpnHandshake, UDPSerializable}; use crate::udp::{UDPVpnPacket, UDPVpnHandshake, UDPSerializable};
use tun2::{AbstractDevice, DeviceReader, DeviceWriter}; use tun2::{DeviceReader, DeviceWriter};
trait ReadWrapper { pub trait ReadWrapper {
async fn read(&mut self, buf: &mut [u8]) -> Result<usize, ()>; async fn read(&mut self, buf: &mut [u8]) -> Result<usize, ()>;
} }
@ -48,7 +48,7 @@ pub mod general {
} }
} }
trait WriteWrapper { pub trait WriteWrapper {
async fn write(&mut self, msg: WriterMessage) -> Result<usize, ()>; async fn write(&mut self, msg: WriterMessage) -> Result<usize, ()>;
} }
@ -72,10 +72,8 @@ pub mod general {
} }
Err(()) Err(())
}, },
WriterMessage::Gateway(addr) => { // this thing should be abolished later
/* if self.dev.set_destination(addr.into()).is_err() { WriterMessage::Gateway(_addr) => {
return Err(());
}*/
Ok(0) Ok(0)
} }
} }
@ -130,7 +128,6 @@ pub mod general {
let priv_key = BASE64_STANDARD.decode(&self.client_config.client.private_key).unwrap(); let priv_key = BASE64_STANDARD.decode(&self.client_config.client.private_key).unwrap();
let cipher_shared_clone = cipher_shared.clone(); let cipher_shared_clone = cipher_shared.clone();
let sr_cc = sr_cancel.clone();
let pkey = BASE64_STANDARD.decode(&self.client_config.client.public_key).unwrap(); let pkey = BASE64_STANDARD.decode(&self.client_config.client.public_key).unwrap();
let handshake = UDPVpnHandshake{ public_key: pkey, request_ip: self.client_config.client.address.parse::<Ipv4Addr>().unwrap() }; let handshake = UDPVpnHandshake{ public_key: pkey, request_ip: self.client_config.client.address.parse::<Ipv4Addr>().unwrap() };
@ -143,7 +140,7 @@ pub mod general {
let s_cipher = cipher_shared.clone(); let s_cipher = cipher_shared.clone();
self.dev_writer.write(WriterMessage::Plain(handshake.serialize())).await; let _ = self.dev_writer.write(WriterMessage::Plain(handshake.serialize())).await;
let mut buf = vec![0; 1400]; // mtu let mut buf = vec![0; 1400]; // mtu
let mut buf1 = vec![0; 4096]; let mut buf1 = vec![0; 4096];
@ -275,12 +272,13 @@ pub mod android {
pub mod desktop { pub mod desktop {
use crate::client::general::{CoreVpnClient, DevReader, DevWriter, VpnClient}; use crate::client::general::{CoreVpnClient, DevReader, DevWriter, VpnClient};
use crate::config::ClientConfiguration; use crate::config::ClientConfiguration;
use log::{error, info}; use log::info;
use network_interface::{NetworkInterface, NetworkInterfaceConfig};
use tokio::net::UdpSocket; use tokio::net::UdpSocket;
use std::process::Command; #[cfg(target_os = "linux")]
use std::net::SocketAddr; use network_interface::{NetworkInterface, NetworkInterfaceConfig};
#[cfg(target_os = "linux")]
fn configure_routes(endpoint_ip: &str, s_interface: Option<String>) { fn configure_routes(endpoint_ip: &str, s_interface: Option<String>) {
let interfaces = NetworkInterface::show().unwrap(); let interfaces = NetworkInterface::show().unwrap();
@ -360,11 +358,13 @@ pub mod desktop {
let dev = tun2::create_as_async(&config).unwrap(); let dev = tun2::create_as_async(&config).unwrap();
let (dev_writer, dev_reader) = dev.split().unwrap(); let (dev_writer, dev_reader) = dev.split().unwrap();
let mut client = CoreVpnClient{ client_config: self.client_config.clone(), dev_reader: DevReader{ dr: dev_reader }, dev_writer: DevWriter{dr: dev_writer}, close_token: tokio_util::sync::CancellationToken::new()}; let mut client = CoreVpnClient{ client_config: self.client_config.clone(), dev_reader: DevReader{ dr: dev_reader }, dev_writer: DevWriter{dr: dev_writer}, close_token: tokio_util::sync::CancellationToken::new()};
let s_a: SocketAddr = self.client_config.server.endpoint.parse().unwrap();
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
configure_routes(&s_a.ip().to_string(), self.s_interface.clone()); {
let s_a: SocketAddr = self.client_config.server.endpoint.parse().unwrap();
configure_routes(&s_a.ip().to_string(), self.s_interface.clone());
}
client.start(sock).await; client.start(sock).await;
} }

View File

@ -7,15 +7,16 @@ use log::{error, info};
use std::sync::Arc; use std::sync::Arc;
use std::net::{ SocketAddr, Ipv4Addr, IpAddr }; use std::net::{ SocketAddr, Ipv4Addr, IpAddr };
use std::collections::HashMap; use std::collections::HashMap;
use std::process::Command;
use aes_gcm::{ aead::{Aead, AeadCore, KeyInit, OsRng}, use aes_gcm::{ aead::{Aead, AeadCore, KeyInit, OsRng},
Aes256Gcm, Nonce }; Aes256Gcm, Nonce };
use network_interface::NetworkInterface;
use network_interface::NetworkInterfaceConfig; #[cfg(target_os = "linux")]
use network_interface::{NetworkInterface, NetworkInterfaceConfig};
use crate::config::{ ServerConfiguration, ServerPeer}; use crate::config::{ ServerConfiguration, ServerPeer};
use crate::udp::{UDPKeepAlive, UDPSerializable, UDPVpnHandshake, UDPVpnPacket}; use crate::udp::{UDPKeepAlive, UDPSerializable, UDPVpnHandshake, UDPVpnPacket};
#[cfg(target_os = "linux")]
fn configure_routes(s_interface: Option<&str>) { fn configure_routes(s_interface: Option<&str>) {
let interfaces = NetworkInterface::show().unwrap(); let interfaces = NetworkInterface::show().unwrap();
@ -81,7 +82,7 @@ fn configure_routes(s_interface: Option<&str>) {
} }
} }
pub async fn server_mode(server_config: ServerConfiguration, s_interface: Option<&str>) { pub async fn server_mode(server_config: ServerConfiguration, _s_interface: Option<&str>) {
info!("Starting server..."); info!("Starting server...");
let mut config = tun2::Configuration::default(); let mut config = tun2::Configuration::default();
@ -239,7 +240,8 @@ pub async fn server_mode(server_config: ServerConfiguration, s_interface: Option
} }
}); });
tokio::join!(tun_reader_task, sock_reader_task, sock_writer_task, tun_writer_task, alive_task); // should be refactored
let _ = tokio::join!(tun_reader_task, sock_reader_task, sock_writer_task, tun_writer_task, alive_task);
} }
struct UDPeer { struct UDPeer {