diff options
| author | Carsten Andrich <carsten.andrich@tu-ilmenau.de> | 2020-05-01 17:52:16 +0200 |
|---|---|---|
| committer | Carsten Andrich <carsten.andrich@tu-ilmenau.de> | 2020-05-01 17:52:16 +0200 |
| commit | c88e6a75f5f681610142aaba351cdd6e30deed95 (patch) | |
| tree | 358b4df1f908b00ed2e55f7eb9fc6139c291105e | |
| parent | bd0bacc694d7d8175804bb6f690cb846bfa4a9ee (diff) | |
| download | rust-c88e6a75f5f681610142aaba351cdd6e30deed95.tar.gz rust-c88e6a75f5f681610142aaba351cdd6e30deed95.zip | |
add Windows system error codes that map to io::ErrorKind::TimedOut
| -rw-r--r-- | src/libstd/io/error.rs | 5 | ||||
| -rw-r--r-- | src/libstd/sys/windows/c.rs | 17 | ||||
| -rw-r--r-- | src/libstd/sys/windows/mod.rs | 15 |
3 files changed, 35 insertions, 2 deletions
diff --git a/src/libstd/io/error.rs b/src/libstd/io/error.rs index d80a38819ea..f7248e7547e 100644 --- a/src/libstd/io/error.rs +++ b/src/libstd/io/error.rs @@ -160,6 +160,11 @@ pub enum ErrorKind { #[stable(feature = "rust1", since = "1.0.0")] Interrupted, /// Any I/O error not part of this list. + /// + /// Errors that are `Other` now may move to a different or a new + /// [`ErrorKind`] variant in the future. It is not recommended to match + /// an error against `Other` and to expect any additional characteristics, + /// e.g., a specific [`Error::raw_os_error`] return value. #[stable(feature = "rust1", since = "1.0.0")] Other, diff --git a/src/libstd/sys/windows/c.rs b/src/libstd/sys/windows/c.rs index 134f508dfab..d2c4cc3bbff 100644 --- a/src/libstd/sys/windows/c.rs +++ b/src/libstd/sys/windows/c.rs @@ -171,13 +171,26 @@ pub const ERROR_FILE_EXISTS: DWORD = 80; pub const ERROR_INVALID_PARAMETER: DWORD = 87; pub const ERROR_BROKEN_PIPE: DWORD = 109; pub const ERROR_CALL_NOT_IMPLEMENTED: DWORD = 120; +pub const ERROR_SEM_TIMEOUT: DWORD = 121; pub const ERROR_INSUFFICIENT_BUFFER: DWORD = 122; pub const ERROR_ALREADY_EXISTS: DWORD = 183; -pub const ERROR_NO_DATA: DWORD = 232; pub const ERROR_ENVVAR_NOT_FOUND: DWORD = 203; +pub const ERROR_NO_DATA: DWORD = 232; +pub const ERROR_DRIVER_CANCEL_TIMEOUT: DWORD = 594; pub const ERROR_OPERATION_ABORTED: DWORD = 995; pub const ERROR_IO_PENDING: DWORD = 997; -pub const ERROR_TIMEOUT: DWORD = 0x5B4; +pub const ERROR_SERVICE_REQUEST_TIMEOUT: DWORD = 1053; +pub const ERROR_COUNTER_TIMEOUT: DWORD = 1121; +pub const ERROR_TIMEOUT: DWORD = 1460; +pub const ERROR_RESOURCE_CALL_TIMED_OUT: DWORD = 5910; +pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: DWORD = 7012; +pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: DWORD = 7040; +pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: DWORD = 8014; +pub const ERROR_DS_TIMELIMIT_EXCEEDED: DWORD = 8226; +pub const DNS_ERROR_RECORD_TIMED_OUT: DWORD = 9705; +pub const ERROR_IPSEC_IKE_TIMED_OUT: DWORD = 13805; +pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: DWORD = 15402; +pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: DWORD = 15403; pub const E_NOTIMPL: HRESULT = 0x80004001u32 as HRESULT; diff --git a/src/libstd/sys/windows/mod.rs b/src/libstd/sys/windows/mod.rs index d745e87a072..a0d207e932e 100644 --- a/src/libstd/sys/windows/mod.rs +++ b/src/libstd/sys/windows/mod.rs @@ -61,7 +61,22 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { c::ERROR_FILE_NOT_FOUND => return ErrorKind::NotFound, c::ERROR_PATH_NOT_FOUND => return ErrorKind::NotFound, c::ERROR_NO_DATA => return ErrorKind::BrokenPipe, + c::ERROR_SEM_TIMEOUT => return ErrorKind::TimedOut, + c::WAIT_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_DRIVER_CANCEL_TIMEOUT => return ErrorKind::TimedOut, c::ERROR_OPERATION_ABORTED => return ErrorKind::TimedOut, + c::ERROR_SERVICE_REQUEST_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_COUNTER_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_RESOURCE_CALL_TIMED_OUT => return ErrorKind::TimedOut, + c::ERROR_CTX_MODEM_RESPONSE_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_CTX_CLIENT_QUERY_TIMEOUT => return ErrorKind::TimedOut, + c::FRS_ERR_SYSVOL_POPULATE_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_DS_TIMELIMIT_EXCEEDED => return ErrorKind::TimedOut, + c::DNS_ERROR_RECORD_TIMED_OUT => return ErrorKind::TimedOut, + c::ERROR_IPSEC_IKE_TIMED_OUT => return ErrorKind::TimedOut, + c::ERROR_RUNLEVEL_SWITCH_TIMEOUT => return ErrorKind::TimedOut, + c::ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT => return ErrorKind::TimedOut, _ => {} } |
