summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon/src/device
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-05-11 16:18:10 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-05-11 17:37:43 +0200
commitd593dce00a0872a4e51bd95f193e667fa24b0810 (patch)
treef62bb05709d60d4aaf76f01daf8ec0f74b45e0d4 /mullvad-daemon/src/device
parentb47084be5bf38713d4016e138f5c513343c25d63 (diff)
downloadmullvadvpn-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/src/device')
-rw-r--r--mullvad-daemon/src/device/service.rs17
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),
}
}