aboutsummaryrefslogtreecommitdiff
path: root/src/session.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-02 23:50:22 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-02 23:50:22 +0300
commit01fc5bc7b547464122a0e390d9cdb4ab2e20da68 (patch)
tree62aa91ecf97bb618c059100edec5fedd61685eb2 /src/session.rs
parent3503209b0328e86a147db1b9928fa92764ad693e (diff)
fix: tolerate macos socket timeout setup failure
Diffstat (limited to 'src/session.rs')
-rw-r--r--src/session.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/session.rs b/src/session.rs
index 2e9b0d12..a4daf5e4 100644
--- a/src/session.rs
+++ b/src/session.rs
@@ -286,9 +286,11 @@ fn send_stop_request(
let Some(write_timeout) = socket_timeout_until(deadline) else {
return Ok(None);
};
- stream
- .set_write_timeout(Some(write_timeout))
- .map_err(|err| err.to_string())?;
+ if let Err(err) = stream.set_write_timeout(Some(write_timeout)) {
+ if err.kind() != std::io::ErrorKind::InvalidInput {
+ return Err(err.to_string());
+ }
+ }
let response = send_stop_request_inner(&mut stream, request, deadline);
match response {
@@ -313,7 +315,12 @@ fn send_stop_request_inner(
let Some(read_timeout) = socket_timeout_until(deadline) else {
return Ok(None);
};
- stream.set_read_timeout(Some(read_timeout))?;
+ if let Err(err) = stream.set_read_timeout(Some(read_timeout)) {
+ if err.kind() == std::io::ErrorKind::InvalidInput {
+ return Ok(None);
+ }
+ return Err(err);
+ }
let mut line = String::new();
let bytes_read = BufReader::new(stream).read_line(&mut line)?;