Switch from chrono to time to avoid security issue

v5-api
Dominik Nakamura 3 years ago
parent 4c6dcaec77
commit b1719a6bef
No known key found for this signature in database
GPG Key ID: E4C6A749B2491910

@ -20,7 +20,6 @@ features = ["events", "tls"]
async-stream = { version = "0.3.2", optional = true }
base64 = "0.13.0"
bitflags = "1.3.2"
chrono = { version = "0.4.19", features = ["serde"] }
futures-util = { version = "0.3.17", features = ["sink"] }
log = "0.4.14"
semver = { version = "1.0.4", features = ["serde"] }
@ -30,6 +29,7 @@ serde_repr = "0.1.7"
serde_with = "1.10.0"
sha2 = "0.9.6"
thiserror = "1.0.29"
time = "0.3.3"
tokio = { version = "1.11.0", features = ["net", "rt", "sync"] }
tokio-tungstenite = "0.14.0"

@ -1,5 +1,5 @@
use chrono::Duration;
use serde::{de::DeserializeOwned, Serialize};
use time::Duration;
use super::Client;
use crate::{

@ -3,8 +3,8 @@
use std::{convert::TryFrom, fmt};
use chrono::Duration;
use serde::de::{self, Deserializer, Visitor};
use time::Duration;
#[derive(Debug, thiserror::Error)]
enum Error {

@ -2,8 +2,8 @@
use std::{collections::BTreeMap, path::PathBuf};
use chrono::Duration;
use serde::Deserialize;
use time::Duration;
use crate::{responses::SceneItemTransform, MonitorType};

@ -3,9 +3,9 @@
use std::path::Path;
use bitflags::bitflags;
use chrono::Duration;
use serde::{ser::SerializeStruct, Serialize};
use serde_with::skip_serializing_none;
use time::Duration;
use crate::MonitorType;

@ -1,18 +1,9 @@
use chrono::Duration;
use serde::{ser, Serializer};
#[derive(Debug, thiserror::Error)]
enum Error {
#[error("duration of {} days is too big to be serialized as nanoseconds", .0.num_days())]
DurationTooBig(Duration),
}
use serde::Serializer;
use time::Duration;
pub fn duration_nanos<S>(value: &Duration, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
match value.num_nanoseconds() {
Some(nanos) => serializer.serialize_i64(nanos),
None => Err(ser::Error::custom(Error::DurationTooBig(*value))),
}
serializer.serialize_i128(value.whole_nanoseconds())
}

@ -1,10 +1,10 @@
//! All responses that can be received from the API.
use bitflags::bitflags;
use chrono::Duration;
pub use semver::Version as SemVerVersion;
use serde::{de, Deserialize, Deserializer};
use serde_repr::Deserialize_repr;
use time::Duration;
use crate::MonitorType;

Loading…
Cancel
Save