Changes to be committed:
modified: src/main.rs modified: src/tcp_client.rs modified: src/tcp_server.rs new file: src/util.rs
This commit is contained in:
parent
5bc50b0e29
commit
9530aa43c0
@ -12,6 +12,7 @@ use serde_derive::Deserialize;
|
|||||||
//mod server;
|
//mod server;
|
||||||
mod tcp_client;
|
mod tcp_client;
|
||||||
mod tcp_server;
|
mod tcp_server;
|
||||||
|
mod util;
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
struct VpnPacket {
|
struct VpnPacket {
|
||||||
|
@ -11,6 +11,8 @@ use std::collections::HashMap;
|
|||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
use tokio::io::AsyncReadExt;
|
use tokio::io::AsyncReadExt;
|
||||||
|
|
||||||
|
use crate::VpnPacket;
|
||||||
|
|
||||||
fn configure_routes() {
|
fn configure_routes() {
|
||||||
let ip_output = Command::new("ip")
|
let ip_output = Command::new("ip")
|
||||||
.arg("addr")
|
.arg("addr")
|
||||||
@ -101,14 +103,17 @@ pub async fn client_mode(remote_addr: String) {
|
|||||||
let mut buf = vec![0; 2048];
|
let mut buf = vec![0; 2048];
|
||||||
loop {
|
loop {
|
||||||
if let Ok(n) = sock_reader.read(&mut buf).await {
|
if let Ok(n) = sock_reader.read(&mut buf).await {
|
||||||
tx.send(buf[..n].to_vec()).unwrap();
|
let vpn_packet: VpnPacket = bincode::deserialize(&buf[..n]).unwrap();
|
||||||
|
tx.send(vpn_packet.data).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
if let Ok(bytes) = mx.recv() {
|
if let Ok(bytes) = mx.recv() {
|
||||||
sock_writer.write(&bytes).await.unwrap();
|
let vpn_packet = VpnPacket{ data: bytes };
|
||||||
|
let serialized_data = bincode::serialize(&vpn_packet).unwrap();
|
||||||
|
sock_writer.write(&serialized_data).await.unwrap();
|
||||||
info!("Wrote to sock");
|
info!("Wrote to sock");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ use std::net::SocketAddr;
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use tokio::io::AsyncReadExt;
|
use tokio::io::AsyncReadExt;
|
||||||
|
|
||||||
|
use crate::VpnPacket;
|
||||||
|
|
||||||
pub async fn server_mode() {
|
pub async fn server_mode() {
|
||||||
info!("Starting server...");
|
info!("Starting server...");
|
||||||
|
|
||||||
@ -54,7 +56,9 @@ pub async fn server_mode() {
|
|||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
loop {
|
loop {
|
||||||
if let Ok(bytes) = thread_mx.recv() {
|
if let Ok(bytes) = thread_mx.recv() {
|
||||||
sock_writer.write(&bytes).await.unwrap();
|
let vpn_packet = VpnPacket{ data: bytes };
|
||||||
|
let serialized_data = bincode::serialize(&vpn_packet).unwrap();
|
||||||
|
sock_writer.write_all(&serialized_data).await.unwrap();
|
||||||
info!("Wrote to sock");
|
info!("Wrote to sock");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -64,7 +68,8 @@ pub async fn server_mode() {
|
|||||||
let mut buf = vec![0; 2048];
|
let mut buf = vec![0; 2048];
|
||||||
loop {
|
loop {
|
||||||
if let Ok(n) = sock_reader.read(&mut buf).await {
|
if let Ok(n) = sock_reader.read(&mut buf).await {
|
||||||
thread_tx.send(buf[..n].to_vec()).unwrap();
|
let vpn_packet: VpnPacket = bincode::deserialize(&buf[..n]).unwrap();
|
||||||
|
thread_tx.send(vpn_packet.data).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
7
src/util.rs
Normal file
7
src/util.rs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
use serde_derive::Serialize;
|
||||||
|
use serde_derive::Deserialize;
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
struct VpnPacket {
|
||||||
|
data: Vec<u8>,
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user