diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-05-11 16:18:10 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-05-11 17:37:43 +0200 |
| commit | d593dce00a0872a4e51bd95f193e667fa24b0810 (patch) | |
| tree | f62bb05709d60d4aaf76f01daf8ec0f74b45e0d4 /mullvad-daemon | |
| parent | b47084be5bf38713d4016e138f5c513343c25d63 (diff) | |
| download | mullvadvpn-d593dce00a0872a4e51bd95f193e667fa24b0810.tar.xz mullvadvpn-d593dce00a0872a4e51bd95f193e667fa24b0810.zip | |
Check status in API response body to determine whether a device has been revoked
Diffstat (limited to 'mullvad-daemon')
| -rw-r--r-- | mullvad-daemon/src/device/service.rs | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/mullvad-daemon/src/device/service.rs b/mullvad-daemon/src/device/service.rs index c2b09d322a..f4f147ac96 100644 --- a/mullvad-daemon/src/device/service.rs +++ b/mullvad-daemon/src/device/service.rs @@ -422,6 +422,7 @@ fn should_retry_backoff<T>(result: &Result<T, RestError>) -> bool { Err(error) => { if let RestError::ApiError(status, code) = error { *status != rest::StatusCode::NOT_FOUND + && code != mullvad_api::DEVICE_NOT_FOUND && code != mullvad_api::INVALID_ACCOUNT && code != mullvad_api::MAX_DEVICES_REACHED && code != mullvad_api::PUBKEY_IN_USE @@ -434,16 +435,12 @@ fn should_retry_backoff<T>(result: &Result<T, RestError>) -> bool { fn map_rest_error(error: rest::Error) -> Error { match error { - RestError::ApiError(status, ref code) => { - if status == rest::StatusCode::NOT_FOUND { - return Error::InvalidDevice; - } - match code.as_str() { - mullvad_api::INVALID_ACCOUNT => Error::InvalidAccount, - mullvad_api::MAX_DEVICES_REACHED => Error::MaxDevicesReached, - _ => Error::OtherRestError(error), - } - } + RestError::ApiError(_status, ref code) => match code.as_str() { + mullvad_api::DEVICE_NOT_FOUND => Error::InvalidDevice, + mullvad_api::INVALID_ACCOUNT => Error::InvalidAccount, + mullvad_api::MAX_DEVICES_REACHED => Error::MaxDevicesReached, + _ => Error::OtherRestError(error), + }, error => Error::OtherRestError(error), } } |
