mirror of https://github.com/vinc/moros.git
Fix socket status reading (#575)
This commit is contained in:
parent
69ab9ebf17
commit
c3cf72bbbe
|
@ -132,10 +132,8 @@ pub fn main(args: &[&str]) -> Result<(), ExitCode> {
|
|||
syscall::sleep(0.01);
|
||||
if connected {
|
||||
let mut data = vec![0; 1]; // 1 byte status read
|
||||
let status = SocketStatus::MayRecv as usize;
|
||||
let may_recv = data[0].get_bit(status);
|
||||
match syscall::read(handle, &mut data) {
|
||||
Some(1) if !may_recv => break, // recv closed
|
||||
Some(1) if is_closed(data[0]) => break,
|
||||
_ => continue,
|
||||
}
|
||||
}
|
||||
|
@ -148,6 +146,10 @@ pub fn main(args: &[&str]) -> Result<(), ExitCode> {
|
|||
}
|
||||
}
|
||||
|
||||
fn is_closed(status: u8) -> bool {
|
||||
!status.get_bit(SocketStatus::MayRecv as usize)
|
||||
}
|
||||
|
||||
fn help() {
|
||||
let csi_option = Style::color("LightCyan");
|
||||
let csi_title = Style::color("Yellow");
|
||||
|
|
Loading…
Reference in New Issue