Compare commits

..

No commits in common. "b6445e6707cbecbb36cfe2699e02ac1cec7c3b1e" and "77e5214561cfe8db346214c10705369e6e7e9363" have entirely different histories.

6 changed files with 37 additions and 57 deletions

71
Cargo.lock generated
View file

@ -153,9 +153,9 @@ dependencies = [
[[package]]
name = "cookie"
version = "0.18.0"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8"
checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
dependencies = [
"percent-encoding",
"time",
@ -238,12 +238,6 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "equivalent"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
version = "0.3.8"
@ -397,12 +391,6 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
[[package]]
name = "hermit-abi"
version = "0.3.3"
@ -489,17 +477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown 0.12.3",
]
[[package]]
name = "indexmap"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
dependencies = [
"equivalent",
"hashbrown 0.14.3",
"hashbrown",
"serde",
]
@ -568,7 +546,7 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
[[package]]
name = "lohr"
version = "0.4.4"
version = "0.4.3"
dependencies = [
"anyhow",
"clap",
@ -747,7 +725,7 @@ checksum = "61a386cd715229d399604b50d1361683fe687066f42d56f54be995bc6868f71c"
dependencies = [
"inlinable_string",
"pear_codegen",
"yansi",
"yansi 1.0.0-rc.1",
]
[[package]]
@ -805,7 +783,7 @@ dependencies = [
"quote",
"syn",
"version_check",
"yansi",
"yansi 1.0.0-rc.1",
]
[[package]]
@ -913,9 +891,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "rocket"
version = "0.5.0"
version = "0.5.0-rc.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e7bb57ccb26670d73b6a47396c83139447b9e7878cab627fdfe9ea8da489150"
checksum = "58734f7401ae5cfd129685b48f61182331745b357b96f2367f01aebaf1cc9cc9"
dependencies = [
"async-stream",
"async-trait",
@ -925,7 +903,8 @@ dependencies = [
"either",
"figment",
"futures",
"indexmap 2.1.0",
"indexmap",
"is-terminal",
"log",
"memchr",
"multer",
@ -945,38 +924,37 @@ dependencies = [
"tokio-util",
"ubyte",
"version_check",
"yansi",
"yansi 0.5.1",
]
[[package]]
name = "rocket_codegen"
version = "0.5.0"
version = "0.5.0-rc.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2238066abf75f21be6cd7dc1a09d5414a671f4246e384e49fe3f8a4936bd04c"
checksum = "7093353f14228c744982e409259fb54878ba9563d08214f2d880d59ff2fc508b"
dependencies = [
"devise",
"glob",
"indexmap 2.1.0",
"indexmap",
"proc-macro2",
"quote",
"rocket_http",
"syn",
"unicode-xid",
"version_check",
]
[[package]]
name = "rocket_http"
version = "0.5.0"
version = "0.5.0-rc.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37a1663694d059fe5f943ea5481363e48050acedd241d46deb2e27f71110389e"
checksum = "936012c99162a03a67f37f9836d5f938f662e26f2717809761a9ac46432090f4"
dependencies = [
"cookie",
"either",
"futures",
"http",
"hyper",
"indexmap 2.1.0",
"indexmap",
"log",
"memchr",
"pear",
@ -1082,7 +1060,7 @@ version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
dependencies = [
"indexmap 1.9.3",
"indexmap",
"ryu",
"serde",
"yaml-rust",
@ -1171,9 +1149,9 @@ dependencies = [
[[package]]
name = "state"
version = "0.6.0"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8"
checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b"
dependencies = [
"loom",
]
@ -1622,11 +1600,14 @@ dependencies = [
"linked-hash-map",
]
[[package]]
name = "yansi"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
[[package]]
name = "yansi"
version = "1.0.0-rc.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377"
dependencies = [
"is-terminal",
]

View file

@ -1,6 +1,6 @@
[package]
name = "lohr"
version = "0.4.4"
version = "0.4.3"
authors = ["Antoine Martin <antoine@alarsyo.net>"]
edition = "2018"
license = "Apache-2.0 OR MIT"
@ -24,7 +24,7 @@ serde_yaml = "0.8.17"
sha2 = "0.9.3"
[dependencies.rocket]
version = "0.5.0"
version = "0.5.0-rc.1"
# don't need private-cookies
default-features = false

View file

@ -16,11 +16,11 @@
{
defaultPackage = pkgs.rustPlatform.buildRustPackage {
pname = "lohr";
version = "0.4.4";
version = "0.4.3";
src = ./.;
cargoHash = "sha256-15OVia/oQXAGvjHTPTceKottKgEgFJRfHbzWdzCtcjY=";
cargoSha256 = "sha256-712J8squ4txjdKH5buKpCl7ss2NSNRYM/m548Z6RSzQ=";
meta = with pkgs.lib; {
description = "A Git mirroring tool";

1
rust-toolchain Normal file
View file

@ -0,0 +1 @@
stable

View file

@ -1,2 +0,0 @@
[toolchain]
channel = "stable"

View file

@ -75,12 +75,12 @@ where
async fn from_data(request: &'r Request<'_>, data: Data<'r>) -> Outcome<'r, Self> {
let json_ct = ContentType::new("application", "json");
if request.content_type() != Some(&json_ct) {
return Outcome::Error((Status::BadRequest, anyhow!("wrong content type")));
return Outcome::Failure((Status::BadRequest, anyhow!("wrong content type")));
}
let signatures = request.headers().get(X_GITEA_SIGNATURE).collect::<Vec<_>>();
if signatures.len() != 1 {
return Outcome::Error((
return Outcome::Failure((
Status::BadRequest,
anyhow!("request header needs exactly one signature"),
));
@ -91,24 +91,24 @@ where
Ok(s) if s.is_complete() => s.into_inner(),
Ok(_) => {
let eof = io::ErrorKind::UnexpectedEof;
return Outcome::Error((
return Outcome::Failure((
Status::PayloadTooLarge,
io::Error::new(eof, "data limit exceeded").into(),
));
}
Err(e) => return Outcome::Error((Status::BadRequest, e.into())),
Err(e) => return Outcome::Failure((Status::BadRequest, e.into())),
};
let signature = signatures[0];
let secret = request.guard::<&State<Secret>>().await.unwrap();
if !validate_signature(&secret.0, signature, &content) {
return Outcome::Error((Status::BadRequest, anyhow!("couldn't verify signature")));
return Outcome::Failure((Status::BadRequest, anyhow!("couldn't verify signature")));
}
match Self::from_str(local_cache!(request, content)) {
Ok(content) => Outcome::Success(content),
Err(e) => Outcome::Error((Status::BadRequest, e)),
Err(e) => Outcome::Failure((Status::BadRequest, e)),
}
}
}