(Hopefully) fixed network stucks.

This commit is contained in:
Revertron
2021-04-03 11:28:55 +02:00
parent cddfa7b347
commit 8168ab37b3
3 changed files with 7 additions and 3 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "alfis" name = "alfis"
version = "0.3.11" version = "0.3.12"
authors = ["Revertron <alfis@revertron.com>"] authors = ["Revertron <alfis@revertron.com>"]
edition = "2018" edition = "2018"
build = "build.rs" build = "build.rs"
+1
View File
@@ -28,6 +28,7 @@ forwarders = ["94.140.14.14:53", "94.140.15.15:53"]
#forwarders = ["1.1.1.1:53", "1.0.0.1:53"] #forwarders = ["1.1.1.1:53", "1.0.0.1:53"]
# Hosts file support (resolve local names or block ads) # Hosts file support (resolve local names or block ads)
#hosts = ["system", "adblock.txt"] #hosts = ["system", "adblock.txt"]
hosts = ["adblock.txt", "wyrd.txt"]
#Mining options #Mining options
[mining] [mining]
+5 -2
View File
@@ -23,7 +23,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
const SERVER: Token = Token(0); const SERVER: Token = Token(0);
const POLL_TIMEOUT: Option<Duration> = Some(Duration::from_millis(3000)); const POLL_TIMEOUT: Option<Duration> = Some(Duration::from_millis(3000));
pub const LISTEN_PORT: u16 = 4244; pub const LISTEN_PORT: u16 = 4244;
const MAX_PACKET_SIZE: usize = 10 * 1024 * 1024; // 10 Mb const MAX_PACKET_SIZE: usize = 1 * 1024 * 1024; // 1 Mb
const MAX_READ_BLOCK_TIME: u128 = 500; const MAX_READ_BLOCK_TIME: u128 = 500;
pub struct Network { pub struct Network {
@@ -301,6 +301,9 @@ fn read_message(stream: &mut TcpStream) -> Result<Vec<u8>, ()> {
match stream.read(&mut buf[bytes_read..]) { match stream.read(&mut buf[bytes_read..]) {
Ok(bytes) => { Ok(bytes) => {
bytes_read += bytes; bytes_read += bytes;
if bytes_read == data_size {
break;
}
} }
// Would block "errors" are the OS's way of saying that the connection is not actually ready to perform this I/O operation. // Would block "errors" are the OS's way of saying that the connection is not actually ready to perform this I/O operation.
Err(ref err) if would_block(err) => { Err(ref err) if would_block(err) => {
@@ -314,7 +317,7 @@ fn read_message(stream: &mut TcpStream) -> Result<Vec<u8>, ()> {
Err(ref err) if interrupted(err) => continue, Err(ref err) if interrupted(err) => continue,
// Other errors we'll consider fatal. // Other errors we'll consider fatal.
Err(_) => { Err(_) => {
debug!("Error reading message, only {} bytes read", bytes_read); debug!("Error reading message, only {}/{} bytes read", bytes_read, data_size);
return Err(()) return Err(())
}, },
} }