cap-std is going to use winerror::ERROR_STOPPED_ON_SYMLINK
to communicate eloop on windows
This commit is contained in:
@@ -172,6 +172,7 @@ impl TryFrom<std::io::Error> for types::Errno {
|
||||
winerror::ERROR_NEGATIVE_SEEK => Some(types::Errno::Inval),
|
||||
winerror::ERROR_DIRECTORY => Some(types::Errno::Notdir),
|
||||
winerror::ERROR_ALREADY_EXISTS => Some(types::Errno::Exist),
|
||||
winerror::ERROR_STOPPED_ON_SYMLINK => Some(types::Errno::Loop),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -186,16 +187,6 @@ impl TryFrom<std::io::Error> for types::Errno {
|
||||
std::io::ErrorKind::PermissionDenied => Ok(types::Errno::Perm),
|
||||
std::io::ErrorKind::AlreadyExists => Ok(types::Errno::Exist),
|
||||
std::io::ErrorKind::InvalidInput => Ok(types::Errno::Ilseq),
|
||||
std::io::ErrorKind::Other => match err.get_ref() {
|
||||
Some(e) => {
|
||||
if e.to_string() == "symlink encountered" {
|
||||
Ok(types::Errno::Loop)
|
||||
} else {
|
||||
Err(anyhow!(err).context("Unknown ErrorKind::Other error"))
|
||||
}
|
||||
}
|
||||
None => Err(anyhow!(err).context("No raw OS error or inner error")),
|
||||
},
|
||||
k => Err(anyhow!(err).context(format!("No raw OS error. Unhandled kind: {:?}", k))),
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user