mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-07-07 20:06:36 +02:00
Merge pull request #170 from djmitche/dependabot/cargo/ureq-2.1.0
Bump ureq from 1.5.2 to 2.1.0
This commit is contained in:
commit
3fc07c9e83
3 changed files with 49 additions and 112 deletions
78
Cargo.lock
generated
78
Cargo.lock
generated
|
@ -47,7 +47,7 @@ dependencies = [
|
||||||
"actix-service",
|
"actix-service",
|
||||||
"actix-threadpool",
|
"actix-threadpool",
|
||||||
"actix-utils",
|
"actix-utils",
|
||||||
"base64 0.13.0",
|
"base64",
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"brotli2",
|
"brotli2",
|
||||||
"bytes",
|
"bytes",
|
||||||
|
@ -363,7 +363,7 @@ dependencies = [
|
||||||
"actix-http",
|
"actix-http",
|
||||||
"actix-rt",
|
"actix-rt",
|
||||||
"actix-service",
|
"actix-service",
|
||||||
"base64 0.13.0",
|
"base64",
|
||||||
"bytes",
|
"bytes",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"derive_more",
|
"derive_more",
|
||||||
|
@ -397,12 +397,6 @@ version = "0.2.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
|
checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "base64"
|
|
||||||
version = "0.12.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "base64"
|
name = "base64"
|
||||||
version = "0.13.0"
|
version = "0.13.0"
|
||||||
|
@ -618,22 +612,6 @@ dependencies = [
|
||||||
"version_check",
|
"version_check",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cookie_store"
|
|
||||||
version = "0.12.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3818dfca4b0cb5211a659bbcbb94225b7127407b2b135e650d717bfb78ab10d3"
|
|
||||||
dependencies = [
|
|
||||||
"cookie",
|
|
||||||
"idna",
|
|
||||||
"log",
|
|
||||||
"publicsuffix",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
"time 0.2.23",
|
|
||||||
"url",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "copyless"
|
name = "copyless"
|
||||||
version = "0.1.5"
|
version = "0.1.5"
|
||||||
|
@ -803,15 +781,6 @@ dependencies = [
|
||||||
"termcolor",
|
"termcolor",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "error-chain"
|
|
||||||
version = "0.12.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
|
|
||||||
dependencies = [
|
|
||||||
"version_check",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flate2"
|
name = "flate2"
|
||||||
version = "1.0.19"
|
version = "1.0.19"
|
||||||
|
@ -1628,28 +1597,6 @@ version = "2.18.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "da78e04bc0e40f36df43ecc6575e4f4b180e8156c4efd73f13d5619479b05696"
|
checksum = "da78e04bc0e40f36df43ecc6575e4f4b180e8156c4efd73f13d5619479b05696"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "publicsuffix"
|
|
||||||
version = "1.5.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
|
|
||||||
dependencies = [
|
|
||||||
"error-chain",
|
|
||||||
"idna",
|
|
||||||
"lazy_static",
|
|
||||||
"regex",
|
|
||||||
"url",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "qstring"
|
|
||||||
version = "0.7.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e"
|
|
||||||
dependencies = [
|
|
||||||
"percent-encoding",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-error"
|
name = "quick-error"
|
||||||
version = "1.2.3"
|
version = "1.2.3"
|
||||||
|
@ -1899,7 +1846,7 @@ version = "0.8.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
|
checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.13.0",
|
"base64",
|
||||||
"blake2b_simd",
|
"blake2b_simd",
|
||||||
"constant_time_eq",
|
"constant_time_eq",
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
|
@ -1922,11 +1869,11 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls"
|
name = "rustls"
|
||||||
version = "0.18.1"
|
version = "0.19.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81"
|
checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.12.3",
|
"base64",
|
||||||
"log",
|
"log",
|
||||||
"ring",
|
"ring",
|
||||||
"sct",
|
"sct",
|
||||||
|
@ -2583,17 +2530,14 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ureq"
|
name = "ureq"
|
||||||
version = "1.5.2"
|
version = "2.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a599426c7388ab189dfd0eeb84c8d879490abc73e3e62a0b6a40e286f6427ab7"
|
checksum = "6fbeb1aabb07378cf0e084971a74f24241273304653184f54cdce113c0d7df1b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.13.0",
|
"base64",
|
||||||
"chunked_transfer",
|
"chunked_transfer",
|
||||||
"cookie",
|
|
||||||
"cookie_store",
|
|
||||||
"log",
|
"log",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"qstring",
|
|
||||||
"rustls",
|
"rustls",
|
||||||
"url",
|
"url",
|
||||||
"webpki",
|
"webpki",
|
||||||
|
@ -2731,9 +2675,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webpki-roots"
|
name = "webpki-roots"
|
||||||
version = "0.20.0"
|
version = "0.21.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f"
|
checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"webpki",
|
"webpki",
|
||||||
]
|
]
|
||||||
|
|
|
@ -19,7 +19,7 @@ anyhow = "1.0"
|
||||||
thiserror = "1.0"
|
thiserror = "1.0"
|
||||||
kv = {version = "^0.10.0", features = ["msgpack-value"]}
|
kv = {version = "^0.10.0", features = ["msgpack-value"]}
|
||||||
lmdb-rkv = {version = "^0.12.3"}
|
lmdb-rkv = {version = "^0.12.3"}
|
||||||
ureq = "^1.5.2"
|
ureq = "^2.1.0"
|
||||||
log = "^0.4.14"
|
log = "^0.4.14"
|
||||||
tindercrypt = { version = "^0.2.2", default-features = false }
|
tindercrypt = { version = "^0.2.2", default-features = false }
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
use crate::server::{AddVersionResult, GetVersionResult, HistorySegment, Server, VersionId};
|
use crate::server::{AddVersionResult, GetVersionResult, HistorySegment, Server, VersionId};
|
||||||
use std::convert::TryInto;
|
use std::convert::TryInto;
|
||||||
|
use std::time::Duration;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
mod crypto;
|
mod crypto;
|
||||||
|
@ -24,21 +25,14 @@ impl RemoteServer {
|
||||||
origin,
|
origin,
|
||||||
client_key,
|
client_key,
|
||||||
encryption_secret: encryption_secret.into(),
|
encryption_secret: encryption_secret.into(),
|
||||||
agent: ureq::agent(),
|
agent: ureq::AgentBuilder::new()
|
||||||
|
.timeout_connect(Duration::from_secs(10))
|
||||||
|
.timeout_read(Duration::from_secs(60))
|
||||||
|
.build(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Convert a ureq::Response to an Error
|
|
||||||
fn resp_to_error(resp: ureq::Response) -> anyhow::Error {
|
|
||||||
return anyhow::anyhow!(
|
|
||||||
"error {}: {}",
|
|
||||||
resp.status(),
|
|
||||||
resp.into_string()
|
|
||||||
.unwrap_or_else(|e| format!("(could not read response: {})", e))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Read a UUID-bearing header or fail trying
|
/// Read a UUID-bearing header or fail trying
|
||||||
fn get_uuid_header(resp: &ureq::Response, name: &str) -> anyhow::Result<Uuid> {
|
fn get_uuid_header(resp: &ureq::Response, name: &str) -> anyhow::Result<Uuid> {
|
||||||
let value = resp
|
let value = resp
|
||||||
|
@ -61,25 +55,25 @@ impl Server for RemoteServer {
|
||||||
history_segment,
|
history_segment,
|
||||||
};
|
};
|
||||||
let history_ciphertext = history_cleartext.seal(&self.encryption_secret)?;
|
let history_ciphertext = history_cleartext.seal(&self.encryption_secret)?;
|
||||||
let resp = self
|
match self
|
||||||
.agent
|
.agent
|
||||||
.post(&url)
|
.post(&url)
|
||||||
.timeout_connect(10_000)
|
|
||||||
.timeout_read(60_000)
|
|
||||||
.set(
|
.set(
|
||||||
"Content-Type",
|
"Content-Type",
|
||||||
"application/vnd.taskchampion.history-segment",
|
"application/vnd.taskchampion.history-segment",
|
||||||
)
|
)
|
||||||
.set("X-Client-Key", &self.client_key.to_string())
|
.set("X-Client-Key", &self.client_key.to_string())
|
||||||
.send_bytes(history_ciphertext.as_ref());
|
.send_bytes(history_ciphertext.as_ref())
|
||||||
if resp.ok() {
|
{
|
||||||
let version_id = get_uuid_header(&resp, "X-Version-Id")?;
|
Ok(resp) => {
|
||||||
Ok(AddVersionResult::Ok(version_id))
|
let version_id = get_uuid_header(&resp, "X-Version-Id")?;
|
||||||
} else if resp.status() == 409 {
|
Ok(AddVersionResult::Ok(version_id))
|
||||||
let parent_version_id = get_uuid_header(&resp, "X-Parent-Version-Id")?;
|
}
|
||||||
Ok(AddVersionResult::ExpectedParentVersion(parent_version_id))
|
Err(ureq::Error::Status(status, resp)) if status == 409 => {
|
||||||
} else {
|
let parent_version_id = get_uuid_header(&resp, "X-Parent-Version-Id")?;
|
||||||
Err(resp_to_error(resp))
|
Ok(AddVersionResult::ExpectedParentVersion(parent_version_id))
|
||||||
|
}
|
||||||
|
Err(err) => Err(err.into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,30 +85,29 @@ impl Server for RemoteServer {
|
||||||
"{}/client/get-child-version/{}",
|
"{}/client/get-child-version/{}",
|
||||||
self.origin, parent_version_id
|
self.origin, parent_version_id
|
||||||
);
|
);
|
||||||
let resp = self
|
match self
|
||||||
.agent
|
.agent
|
||||||
.get(&url)
|
.get(&url)
|
||||||
.timeout_connect(10_000)
|
|
||||||
.timeout_read(60_000)
|
|
||||||
.set("X-Client-Key", &self.client_key.to_string())
|
.set("X-Client-Key", &self.client_key.to_string())
|
||||||
.call();
|
.call()
|
||||||
|
{
|
||||||
if resp.ok() {
|
Ok(resp) => {
|
||||||
let parent_version_id = get_uuid_header(&resp, "X-Parent-Version-Id")?;
|
let parent_version_id = get_uuid_header(&resp, "X-Parent-Version-Id")?;
|
||||||
let version_id = get_uuid_header(&resp, "X-Version-Id")?;
|
let version_id = get_uuid_header(&resp, "X-Version-Id")?;
|
||||||
let history_ciphertext: HistoryCiphertext = resp.try_into()?;
|
let history_ciphertext: HistoryCiphertext = resp.try_into()?;
|
||||||
let history_segment = history_ciphertext
|
let history_segment = history_ciphertext
|
||||||
.open(&self.encryption_secret, parent_version_id)?
|
.open(&self.encryption_secret, parent_version_id)?
|
||||||
.history_segment;
|
.history_segment;
|
||||||
Ok(GetVersionResult::Version {
|
Ok(GetVersionResult::Version {
|
||||||
version_id,
|
version_id,
|
||||||
parent_version_id,
|
parent_version_id,
|
||||||
history_segment,
|
history_segment,
|
||||||
})
|
})
|
||||||
} else if resp.status() == 404 {
|
}
|
||||||
Ok(GetVersionResult::NoSuchVersion)
|
Err(ureq::Error::Status(status, _)) if status == 404 => {
|
||||||
} else {
|
Ok(GetVersionResult::NoSuchVersion)
|
||||||
Err(resp_to_error(resp))
|
}
|
||||||
|
Err(err) => Err(err.into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue