Start upgrading to http1
This commit is contained in:
		
							parent
							
								
									86cab5d2d9
								
							
						
					
					
						commit
						308a945283
					
				
					 8 changed files with 207 additions and 43 deletions
				
			
		
							
								
								
									
										193
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										193
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -416,7 +416,7 @@ dependencies = [
 | 
			
		|||
 "pin-project-lite",
 | 
			
		||||
 "quanta",
 | 
			
		||||
 "rand",
 | 
			
		||||
 "reqwest",
 | 
			
		||||
 "reqwest 0.12.5",
 | 
			
		||||
 "reqwest-middleware",
 | 
			
		||||
 "reqwest-tracing",
 | 
			
		||||
 "ring",
 | 
			
		||||
| 
						 | 
				
			
			@ -534,14 +534,14 @@ dependencies = [
 | 
			
		|||
 "http-body 0.4.6",
 | 
			
		||||
 "hyper 0.14.30",
 | 
			
		||||
 "itoa",
 | 
			
		||||
 "matchit",
 | 
			
		||||
 "matchit 0.7.3",
 | 
			
		||||
 "memchr",
 | 
			
		||||
 "mime",
 | 
			
		||||
 "percent-encoding",
 | 
			
		||||
 "pin-project-lite",
 | 
			
		||||
 "rustversion",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "sync_wrapper",
 | 
			
		||||
 "sync_wrapper 0.1.2",
 | 
			
		||||
 "tower",
 | 
			
		||||
 "tower-layer",
 | 
			
		||||
 "tower-service",
 | 
			
		||||
| 
						 | 
				
			
			@ -1718,15 +1718,15 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "http-signature-normalization-reqwest"
 | 
			
		||||
version = "0.11.0"
 | 
			
		||||
version = "0.12.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "86048ef6b1d59bcb2cdde0100bb16b1a29ce78ab6dd4a90706ba0791a2831b5a"
 | 
			
		||||
checksum = "b8822f7eab343cae1ce3bd3b6d0b9b58c72adaf3463627cfe150f8f5406f27aa"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "async-trait",
 | 
			
		||||
 "base64 0.21.7",
 | 
			
		||||
 "base64 0.22.1",
 | 
			
		||||
 "http-signature-normalization",
 | 
			
		||||
 "httpdate",
 | 
			
		||||
 "reqwest",
 | 
			
		||||
 "reqwest 0.12.5",
 | 
			
		||||
 "reqwest-middleware",
 | 
			
		||||
 "ring",
 | 
			
		||||
 "thiserror",
 | 
			
		||||
| 
						 | 
				
			
			@ -1809,6 +1809,24 @@ dependencies = [
 | 
			
		|||
 "tokio-rustls 0.24.1",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "hyper-rustls"
 | 
			
		||||
version = "0.27.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "futures-util",
 | 
			
		||||
 "http 1.1.0",
 | 
			
		||||
 "hyper 1.4.1",
 | 
			
		||||
 "hyper-util",
 | 
			
		||||
 "rustls 0.23.11",
 | 
			
		||||
 "rustls-pki-types",
 | 
			
		||||
 "tokio",
 | 
			
		||||
 "tokio-rustls 0.26.0",
 | 
			
		||||
 "tower-service",
 | 
			
		||||
 "webpki-roots 0.26.3",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "hyper-timeout"
 | 
			
		||||
version = "0.4.1"
 | 
			
		||||
| 
						 | 
				
			
			@ -2141,6 +2159,12 @@ version = "0.7.3"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "matchit"
 | 
			
		||||
version = "0.8.3"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "8d3c2fcf089c060eb333302d80c5f3ffa8297abecf220f788e4a09ef85f59420"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "md5"
 | 
			
		||||
version = "0.7.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -2923,6 +2947,53 @@ dependencies = [
 | 
			
		|||
 "winapi",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "quinn"
 | 
			
		||||
version = "0.11.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bytes",
 | 
			
		||||
 "pin-project-lite",
 | 
			
		||||
 "quinn-proto",
 | 
			
		||||
 "quinn-udp",
 | 
			
		||||
 "rustc-hash",
 | 
			
		||||
 "rustls 0.23.11",
 | 
			
		||||
 "thiserror",
 | 
			
		||||
 "tokio",
 | 
			
		||||
 "tracing",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "quinn-proto"
 | 
			
		||||
version = "0.11.3"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bytes",
 | 
			
		||||
 "rand",
 | 
			
		||||
 "ring",
 | 
			
		||||
 "rustc-hash",
 | 
			
		||||
 "rustls 0.23.11",
 | 
			
		||||
 "slab",
 | 
			
		||||
 "thiserror",
 | 
			
		||||
 "tinyvec",
 | 
			
		||||
 "tracing",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "quinn-udp"
 | 
			
		||||
version = "0.5.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "9096629c45860fc7fb143e125eb826b5e721e10be3263160c7d60ca832cf8c46"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "libc",
 | 
			
		||||
 "once_cell",
 | 
			
		||||
 "socket2",
 | 
			
		||||
 "tracing",
 | 
			
		||||
 "windows-sys 0.52.0",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "quote"
 | 
			
		||||
version = "1.0.36"
 | 
			
		||||
| 
						 | 
				
			
			@ -3108,7 +3179,7 @@ dependencies = [
 | 
			
		|||
 "http 0.2.12",
 | 
			
		||||
 "http-body 0.4.6",
 | 
			
		||||
 "hyper 0.14.30",
 | 
			
		||||
 "hyper-rustls",
 | 
			
		||||
 "hyper-rustls 0.24.2",
 | 
			
		||||
 "ipnet",
 | 
			
		||||
 "js-sys",
 | 
			
		||||
 "log",
 | 
			
		||||
| 
						 | 
				
			
			@ -3122,7 +3193,7 @@ dependencies = [
 | 
			
		|||
 "serde",
 | 
			
		||||
 "serde_json",
 | 
			
		||||
 "serde_urlencoded",
 | 
			
		||||
 "sync_wrapper",
 | 
			
		||||
 "sync_wrapper 0.1.2",
 | 
			
		||||
 "system-configuration",
 | 
			
		||||
 "tokio",
 | 
			
		||||
 "tokio-rustls 0.24.1",
 | 
			
		||||
| 
						 | 
				
			
			@ -3133,38 +3204,82 @@ dependencies = [
 | 
			
		|||
 "wasm-bindgen-futures",
 | 
			
		||||
 "wasm-streams",
 | 
			
		||||
 "web-sys",
 | 
			
		||||
 "webpki-roots",
 | 
			
		||||
 "winreg",
 | 
			
		||||
 "webpki-roots 0.25.4",
 | 
			
		||||
 "winreg 0.50.0",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "reqwest"
 | 
			
		||||
version = "0.12.5"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "base64 0.22.1",
 | 
			
		||||
 "bytes",
 | 
			
		||||
 "futures-core",
 | 
			
		||||
 "futures-util",
 | 
			
		||||
 "http 1.1.0",
 | 
			
		||||
 "http-body 1.0.0",
 | 
			
		||||
 "http-body-util",
 | 
			
		||||
 "hyper 1.4.1",
 | 
			
		||||
 "hyper-rustls 0.27.2",
 | 
			
		||||
 "hyper-util",
 | 
			
		||||
 "ipnet",
 | 
			
		||||
 "js-sys",
 | 
			
		||||
 "log",
 | 
			
		||||
 "mime",
 | 
			
		||||
 "once_cell",
 | 
			
		||||
 "percent-encoding",
 | 
			
		||||
 "pin-project-lite",
 | 
			
		||||
 "quinn",
 | 
			
		||||
 "rustls 0.23.11",
 | 
			
		||||
 "rustls-pemfile 2.1.2",
 | 
			
		||||
 "rustls-pki-types",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "serde_json",
 | 
			
		||||
 "serde_urlencoded",
 | 
			
		||||
 "sync_wrapper 1.0.1",
 | 
			
		||||
 "tokio",
 | 
			
		||||
 "tokio-rustls 0.26.0",
 | 
			
		||||
 "tokio-util",
 | 
			
		||||
 "tower-service",
 | 
			
		||||
 "url",
 | 
			
		||||
 "wasm-bindgen",
 | 
			
		||||
 "wasm-bindgen-futures",
 | 
			
		||||
 "wasm-streams",
 | 
			
		||||
 "web-sys",
 | 
			
		||||
 "webpki-roots 0.26.3",
 | 
			
		||||
 "winreg 0.52.0",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "reqwest-middleware"
 | 
			
		||||
version = "0.2.5"
 | 
			
		||||
version = "0.3.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216"
 | 
			
		||||
checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "anyhow",
 | 
			
		||||
 "async-trait",
 | 
			
		||||
 "http 0.2.12",
 | 
			
		||||
 "reqwest",
 | 
			
		||||
 "http 1.1.0",
 | 
			
		||||
 "reqwest 0.12.5",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "task-local-extensions",
 | 
			
		||||
 "thiserror",
 | 
			
		||||
 "tower-service",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "reqwest-tracing"
 | 
			
		||||
version = "0.4.8"
 | 
			
		||||
version = "0.5.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "190838e54153d7a7e2ea98851304b3ce92daeabf14c54d32b01b84a3e636f683"
 | 
			
		||||
checksum = "71a37668dccbd75e045f26811891dd939f28c38d3b7ca572a4fce4bc462b83ec"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "anyhow",
 | 
			
		||||
 "async-trait",
 | 
			
		||||
 "getrandom",
 | 
			
		||||
 "matchit",
 | 
			
		||||
 "reqwest",
 | 
			
		||||
 "http 1.1.0",
 | 
			
		||||
 "matchit 0.8.3",
 | 
			
		||||
 "reqwest 0.12.5",
 | 
			
		||||
 "reqwest-middleware",
 | 
			
		||||
 "task-local-extensions",
 | 
			
		||||
 "tracing",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3695,6 +3810,12 @@ version = "0.1.2"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "sync_wrapper"
 | 
			
		||||
version = "1.0.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "system-configuration"
 | 
			
		||||
version = "0.5.1"
 | 
			
		||||
| 
						 | 
				
			
			@ -3734,15 +3855,6 @@ version = "1.0.1"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "task-local-extensions"
 | 
			
		||||
version = "0.1.4"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "pin-utils",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "teloxide"
 | 
			
		||||
version = "0.12.2"
 | 
			
		||||
| 
						 | 
				
			
			@ -3787,7 +3899,7 @@ dependencies = [
 | 
			
		|||
 "once_cell",
 | 
			
		||||
 "pin-project",
 | 
			
		||||
 "rc-box",
 | 
			
		||||
 "reqwest",
 | 
			
		||||
 "reqwest 0.11.27",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "serde_json",
 | 
			
		||||
 "serde_with_macros",
 | 
			
		||||
| 
						 | 
				
			
			@ -4411,6 +4523,15 @@ version = "0.25.4"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "webpki-roots"
 | 
			
		||||
version = "0.26.3"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "rustls-pki-types",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "winapi"
 | 
			
		||||
version = "0.3.9"
 | 
			
		||||
| 
						 | 
				
			
			@ -4620,6 +4741,16 @@ dependencies = [
 | 
			
		|||
 "windows-sys 0.48.0",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "winreg"
 | 
			
		||||
version = "0.52.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "cfg-if",
 | 
			
		||||
 "windows-sys 0.48.0",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wyz"
 | 
			
		||||
version = "0.5.1"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								Cargo.toml
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								Cargo.toml
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -54,9 +54,9 @@ pin-project-lite = "0.2.9"
 | 
			
		|||
# pinned to metrics-util
 | 
			
		||||
quanta = "0.12.0"
 | 
			
		||||
rand = "0.8"
 | 
			
		||||
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls", "stream"] }
 | 
			
		||||
reqwest-middleware = "0.2"
 | 
			
		||||
reqwest-tracing = "0.4.5"
 | 
			
		||||
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"]}
 | 
			
		||||
reqwest-middleware = { version = "0.3", default-features = false, features = ["json"] }
 | 
			
		||||
reqwest-tracing = "0.5.0"
 | 
			
		||||
ring = "0.17.5"
 | 
			
		||||
rsa = "0.9"
 | 
			
		||||
rsa-magic-public-key = "0.8.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -92,12 +92,12 @@ default-features = false
 | 
			
		|||
features = ["error-logging", "metrics", "tokio"]
 | 
			
		||||
 | 
			
		||||
[dependencies.http-signature-normalization-actix]
 | 
			
		||||
version = "0.11.0"
 | 
			
		||||
version = "0.11.1"
 | 
			
		||||
default-features = false
 | 
			
		||||
features = ["server", "ring"]
 | 
			
		||||
 | 
			
		||||
[dependencies.http-signature-normalization-reqwest]
 | 
			
		||||
version = "0.11.0"
 | 
			
		||||
version = "0.12.0"
 | 
			
		||||
default-features = false
 | 
			
		||||
features = ["middleware", "ring"]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,6 @@ use crate::{
 | 
			
		|||
    error::{Error, ErrorKind},
 | 
			
		||||
    extractors::XApiToken,
 | 
			
		||||
};
 | 
			
		||||
use actix_web::http::header::Header;
 | 
			
		||||
use reqwest_middleware::ClientWithMiddleware;
 | 
			
		||||
use serde::de::DeserializeOwned;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -87,13 +86,17 @@ async fn get_results<T: DeserializeOwned>(
 | 
			
		|||
 | 
			
		||||
    let res = client
 | 
			
		||||
        .get(iri.as_str())
 | 
			
		||||
        .header(XApiToken::name(), x_api_token.to_string())
 | 
			
		||||
        .header(XApiToken::http1_name(), x_api_token.to_string())
 | 
			
		||||
        .send()
 | 
			
		||||
        .await
 | 
			
		||||
        .map_err(|e| ErrorKind::SendRequest(iri.to_string(), e.to_string()))?;
 | 
			
		||||
 | 
			
		||||
    if !res.status().is_success() {
 | 
			
		||||
        return Err(ErrorKind::Status(iri.to_string(), res.status()).into());
 | 
			
		||||
        return Err(ErrorKind::Status(
 | 
			
		||||
            iri.to_string(),
 | 
			
		||||
            crate::http1::status_to_http02(res.status()),
 | 
			
		||||
        )
 | 
			
		||||
        .into());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let t = res
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +119,7 @@ async fn post_domains(
 | 
			
		|||
 | 
			
		||||
    let res = client
 | 
			
		||||
        .post(iri.as_str())
 | 
			
		||||
        .header(XApiToken::name(), x_api_token.to_string())
 | 
			
		||||
        .header(XApiToken::http1_name(), x_api_token.to_string())
 | 
			
		||||
        .json(&Domains { domains })
 | 
			
		||||
        .send()
 | 
			
		||||
        .await
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -163,6 +163,10 @@ impl XApiToken {
 | 
			
		|||
    pub(crate) fn new(token: String) -> Self {
 | 
			
		||||
        Self(token)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub(crate) const fn http1_name() -> reqwest::header::HeaderName {
 | 
			
		||||
        reqwest::header::HeaderName::from_static("x-api-token")
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Header for XApiToken {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								src/http1.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/http1.rs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
pub(crate) fn name_to_http02(
 | 
			
		||||
    name: &reqwest::header::HeaderName,
 | 
			
		||||
) -> actix_web::http::header::HeaderName {
 | 
			
		||||
    actix_web::http::header::HeaderName::from_bytes(name.as_ref())
 | 
			
		||||
        .expect("headername conversions always work")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub(crate) fn value_to_http02(
 | 
			
		||||
    value: &reqwest::header::HeaderValue,
 | 
			
		||||
) -> actix_web::http::header::HeaderValue {
 | 
			
		||||
    actix_web::http::header::HeaderValue::from_bytes(value.as_bytes())
 | 
			
		||||
        .expect("headervalue conversions always work")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub(crate) fn status_to_http02(status: reqwest::StatusCode) -> actix_web::http::StatusCode {
 | 
			
		||||
    actix_web::http::StatusCode::from_u16(status.as_u16())
 | 
			
		||||
        .expect("statuscode conversions always work")
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -33,6 +33,7 @@ mod db;
 | 
			
		|||
mod error;
 | 
			
		||||
mod extractors;
 | 
			
		||||
mod future;
 | 
			
		||||
mod http1;
 | 
			
		||||
mod jobs;
 | 
			
		||||
mod middleware;
 | 
			
		||||
mod requests;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,7 +233,11 @@ impl Requests {
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return Err(ErrorKind::Status(parsed_url.to_string(), status).into());
 | 
			
		||||
            return Err(ErrorKind::Status(
 | 
			
		||||
                parsed_url.to_string(),
 | 
			
		||||
                crate::http1::status_to_http02(status),
 | 
			
		||||
            )
 | 
			
		||||
            .into());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // only actually succeed a breaker on 2xx response
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,10 +23,13 @@ pub(crate) async fn route(
 | 
			
		|||
            .fetch_response(&url, BreakerStrategy::Allow404AndBelow)
 | 
			
		||||
            .await?;
 | 
			
		||||
 | 
			
		||||
        let mut response = HttpResponse::build(res.status());
 | 
			
		||||
        let mut response = HttpResponse::build(crate::http1::status_to_http02(res.status()));
 | 
			
		||||
 | 
			
		||||
        for (name, value) in res.headers().iter().filter(|(h, _)| *h != "connection") {
 | 
			
		||||
            response.insert_header((name.clone(), value.clone()));
 | 
			
		||||
            response.insert_header((
 | 
			
		||||
                crate::http1::name_to_http02(name),
 | 
			
		||||
                crate::http1::value_to_http02(value),
 | 
			
		||||
            ));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return Ok(response.body(BodyStream::new(limit_stream(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue