improve speed

This commit is contained in:
Tove 2025-03-16 22:06:03 +01:00
parent d934d20229
commit 27d5158fd8
Signed by: TudbuT
GPG key ID: B3CF345217F202D3
4 changed files with 11 additions and 9 deletions

2
Cargo.lock generated
View file

@ -86,7 +86,7 @@ dependencies = [
[[package]]
name = "revpfw3"
version = "0.4.4"
version = "0.5.0"
dependencies = [
"enum-ordinalize",
"serial",

View file

@ -3,7 +3,7 @@ name = "revpfw3"
repository = "https://github.com/tudbut/revpfw3"
description = "A tool to bypass portforwarding restrictions using some cheap VServer"
license = "MIT"
version = "0.4.4"
version = "0.5.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -119,11 +119,10 @@ pub fn client(params: ClientParams) {
let mut buf4 = [0u8; 4];
let mut buf8 = [0u8; 8];
let mut buf16 = [0u8; 16];
let mut buf = [0; 1024];
let mut tcp = connect(&params);
tcp.set_print(false);
println!("Syncing...");
tcp.write_all(&[b'R', b'P', b'F', 30]).unwrap();
tcp.write_all(&[b'R', b'P', b'F', 31]).unwrap();
println!("Authenticating...");
tcp.write_all(&(params.key.len() as u32).to_be_bytes())
.unwrap();
@ -131,9 +130,11 @@ pub fn client(params: ClientParams) {
println!("Syncing...");
tcp.read_exact(&mut buf4).unwrap();
if buf4 != [b'R', b'P', b'F', 30] {
panic!("RPF30 header expected, but not found. Make sure the server is actually running revpfw3!");
if buf4 != [b'R', b'P', b'F', 31] {
panic!("RPF31 header expected, but not found. Make sure the server is actually running [a compatible version of] revpfw3!");
}
tcp.read_exact(&mut buf1).unwrap();
let mut buf = vec![0; 2usize.pow(buf1[0] as _)];
tcp.write_all(&[PacketType::KeepAlive.ordinal() as u8])
.unwrap();
tcp.set_print(true);

View file

@ -35,7 +35,7 @@ pub fn server(port: u16, key: &str, sleep_delay_ms: u64) {
let mut buf4 = [0u8; 4];
let mut buf8 = [0u8; 8];
let mut buf16 = [0u8; 16];
let mut buf = [0; 1024];
let mut buf = [0; 4096];
let tcpl = TcpListener::bind(("::0", port)).unwrap();
let mut tcp = loop {
let Ok(mut tcp) = tcpl.accept() else { continue };
@ -46,7 +46,7 @@ pub fn server(port: u16, key: &str, sleep_delay_ms: u64) {
tcp.0.shutdown(Shutdown::Both).unwrap();
continue;
};
if buf4 == [b'R', b'P', b'F', 30] {
if buf4 == [b'R', b'P', b'F', 31] {
println!("Compatible client connected.");
if tcp.0.read_exact(&mut buf4).is_ok() && u32::from_be_bytes(buf4) == key.len() as u32 {
println!("Key length matches.");
@ -61,7 +61,8 @@ pub fn server(port: u16, key: &str, sleep_delay_ms: u64) {
}
};
tcp.write_all(&[b'R', b'P', b'F', 30]).unwrap();
tcp.write_all(&[b'R', b'P', b'F', 31]).unwrap();
tcp.write_all(&[(buf.len() as f32).log2() as u8]).unwrap();
tcpl.set_nonblocking(true).unwrap();