improve speed
This commit is contained in:
parent
d934d20229
commit
27d5158fd8
4 changed files with 11 additions and 9 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -86,7 +86,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "revpfw3"
|
||||
version = "0.4.4"
|
||||
version = "0.5.0"
|
||||
dependencies = [
|
||||
"enum-ordinalize",
|
||||
"serial",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(¶ms);
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue