fix resyncing
This commit is contained in:
parent
1e03ee8002
commit
637fdcae58
4 changed files with 9 additions and 8 deletions
|
@ -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.3.1"
|
||||
version = "0.4.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
|
|
@ -107,7 +107,6 @@ fn resync(tcp: &mut SocketAdapter) {
|
|||
eprintln!("Resync was not successful. Stopping.");
|
||||
panic!("broken connection or server version mismatch.");
|
||||
}
|
||||
tcp.set_nonblocking(true);
|
||||
tcp.internal.set_print(true);
|
||||
}
|
||||
|
||||
|
@ -138,11 +137,11 @@ pub fn client(params: ClientParams) {
|
|||
println!("READY!");
|
||||
|
||||
let mut tcp = SocketAdapter::new(tcp);
|
||||
tcp.set_nonblocking(true);
|
||||
let mut sockets: HashMap<u64, SocketAdapter> = HashMap::new();
|
||||
let mut id = 0;
|
||||
let mut last_keep_alive = SystemTime::now();
|
||||
loop {
|
||||
tcp.set_nonblocking(true);
|
||||
thread::sleep(Duration::from_millis(params.rate_limit_sleep));
|
||||
let mut did_anything = false;
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ fn resync(tcp: &mut SocketAdapter) {
|
|||
eprintln!(
|
||||
"Sent resync packet. Client should now wait 8 seconds and then send a resync packet back, initiating a normal re-sync."
|
||||
);
|
||||
tcp.set_nonblocking(true);
|
||||
let mut buf = [0; 4096];
|
||||
// read all packets that are still pending.
|
||||
while Some(Some(4096)) == tcp.poll(&mut buf).ok() {}
|
||||
|
@ -31,7 +30,6 @@ fn resync(tcp: &mut SocketAdapter) {
|
|||
// server should now have stopped sending packets. waiting 5 more seconds so the client has time to
|
||||
// send the resync packet.
|
||||
thread::sleep(Duration::from_secs(5));
|
||||
tcp.set_nonblocking(true);
|
||||
tcp.internal.set_print(true);
|
||||
}
|
||||
|
||||
|
@ -67,13 +65,13 @@ pub fn server(port: u16, key: &str, sleep_delay_ms: u64) {
|
|||
|
||||
tcpl.set_nonblocking(true).unwrap();
|
||||
|
||||
let mut tcp = SocketAdapter::new(Connection::new_tcp(tcp, false));
|
||||
tcp.set_nonblocking(true);
|
||||
let mut tcp = SocketAdapter::new(Connection::new_tcp(tcp, true));
|
||||
let mut sockets: HashMap<u64, SocketAdapter> = HashMap::new();
|
||||
let mut id = 0;
|
||||
let mut last_keep_alive_sent = SystemTime::now();
|
||||
let mut last_keep_alive = SystemTime::now();
|
||||
loop {
|
||||
tcp.set_nonblocking(true);
|
||||
let mut did_anything = false;
|
||||
|
||||
if last_keep_alive_sent.elapsed().unwrap().as_secs() >= 10 {
|
||||
|
|
|
@ -104,7 +104,11 @@ impl SocketAdapter {
|
|||
self.internal.set_nonblocking(self.is_nonblocking)?;
|
||||
r
|
||||
} {
|
||||
Ok(()) => Ok(()),
|
||||
Ok(()) => {
|
||||
self.written = 0;
|
||||
self.to_write = 0;
|
||||
Ok(())
|
||||
}
|
||||
Err(x) => {
|
||||
self.broken = Some(Broken::DirectErr(x.kind(), "io error"));
|
||||
Err(x)
|
||||
|
|
Loading…
Add table
Reference in a new issue