summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-management-interface/src/types/conversions/account.rs17
-rw-r--r--mullvad-management-interface/src/types/conversions/device.rs25
-rw-r--r--mullvad-management-interface/src/types/conversions/wireguard.rs9
3 files changed, 26 insertions, 25 deletions
diff --git a/mullvad-management-interface/src/types/conversions/account.rs b/mullvad-management-interface/src/types/conversions/account.rs
index c98166ba80..fa5b7aeff5 100644
--- a/mullvad-management-interface/src/types/conversions/account.rs
+++ b/mullvad-management-interface/src/types/conversions/account.rs
@@ -1,5 +1,5 @@
use crate::types;
-use chrono::TimeZone;
+use chrono::DateTime;
use mullvad_types::account::{AccountData, VoucherSubmission};
use super::FromProtobufTypeError;
@@ -23,12 +23,12 @@ impl TryFrom<types::VoucherSubmission> for VoucherSubmission {
let new_expiry = submission
.new_expiry
.ok_or(FromProtobufTypeError::InvalidArgument("missing expiry"))?;
- let ndt =
- chrono::NaiveDateTime::from_timestamp_opt(new_expiry.seconds, new_expiry.nanos as u32)
- .unwrap();
+
+ let new_expiry = DateTime::from_timestamp(new_expiry.seconds, new_expiry.nanos as u32)
+ .ok_or(FromProtobufTypeError::InvalidArgument("invalid timestamp"))?;
Ok(VoucherSubmission {
- new_expiry: chrono::Utc.from_utc_datetime(&ndt),
+ new_expiry,
time_added: submission.seconds_added,
})
}
@@ -53,12 +53,13 @@ impl TryFrom<types::AccountData> for AccountData {
let expiry = data
.expiry
.ok_or(FromProtobufTypeError::InvalidArgument("missing expiry"))?;
- let ndt =
- chrono::NaiveDateTime::from_timestamp_opt(expiry.seconds, expiry.nanos as u32).unwrap();
+
+ let expiry = DateTime::from_timestamp(expiry.seconds, expiry.nanos as u32)
+ .ok_or(FromProtobufTypeError::InvalidArgument("invalid timestamp"))?;
Ok(AccountData {
id: data.id,
- expiry: chrono::Utc.from_utc_datetime(&ndt),
+ expiry,
})
}
}
diff --git a/mullvad-management-interface/src/types/conversions/device.rs b/mullvad-management-interface/src/types/conversions/device.rs
index 08dc2e52fb..b43c47ee99 100644
--- a/mullvad-management-interface/src/types/conversions/device.rs
+++ b/mullvad-management-interface/src/types/conversions/device.rs
@@ -1,28 +1,27 @@
use crate::types::{conversions::bytes_to_pubkey, proto, FromProtobufTypeError};
-use chrono::TimeZone;
+use chrono::DateTime;
use prost_types::Timestamp;
impl TryFrom<proto::Device> for mullvad_types::device::Device {
type Error = FromProtobufTypeError;
fn try_from(device: proto::Device) -> Result<Self, Self::Error> {
+ let created_seconds = device
+ .created
+ .ok_or(FromProtobufTypeError::InvalidArgument(
+ "missing 'created' field",
+ ))?
+ .seconds;
+
+ let created = DateTime::from_timestamp(created_seconds, 0)
+ .ok_or(FromProtobufTypeError::InvalidArgument("invalid timestamp"))?;
+
Ok(mullvad_types::device::Device {
id: device.id,
name: device.name,
pubkey: bytes_to_pubkey(&device.pubkey)?,
hijack_dns: device.hijack_dns,
- created: chrono::Utc.from_utc_datetime(
- &chrono::NaiveDateTime::from_timestamp_opt(
- device
- .created
- .ok_or(FromProtobufTypeError::InvalidArgument(
- "missing 'created' field",
- ))?
- .seconds,
- 0,
- )
- .unwrap(),
- ),
+ created,
})
}
}
diff --git a/mullvad-management-interface/src/types/conversions/wireguard.rs b/mullvad-management-interface/src/types/conversions/wireguard.rs
index 4a4341339c..1ef378ef5e 100644
--- a/mullvad-management-interface/src/types/conversions/wireguard.rs
+++ b/mullvad-management-interface/src/types/conversions/wireguard.rs
@@ -1,6 +1,6 @@
use super::FromProtobufTypeError;
use crate::types::proto;
-use chrono::TimeZone;
+use chrono::DateTime;
use prost_types::Timestamp;
impl From<mullvad_types::wireguard::PublicKey> for proto::PublicKey {
@@ -24,13 +24,14 @@ impl TryFrom<proto::PublicKey> for mullvad_types::wireguard::PublicKey {
.ok_or(FromProtobufTypeError::InvalidArgument(
"missing 'created' timestamp",
))?;
- let ndt = chrono::NaiveDateTime::from_timestamp_opt(created.seconds, created.nanos as u32)
- .unwrap();
+
+ let created = DateTime::from_timestamp(created.seconds, created.nanos as u32)
+ .ok_or(FromProtobufTypeError::InvalidArgument("invalid timestamp"))?;
Ok(mullvad_types::wireguard::PublicKey {
key: talpid_types::net::wireguard::PublicKey::try_from(public_key.key.as_slice())
.map_err(|_| FromProtobufTypeError::InvalidArgument("invalid wireguard key"))?,
- created: chrono::Utc.from_utc_datetime(&ndt),
+ created,
})
}
}