-diff -ur proxmox-backup.orig/Cargo.toml proxmox-backup/Cargo.toml
---- proxmox-backup.orig/Cargo.toml 2025-05-16 20:33:13.571733359 +0200
-+++ proxmox-backup/Cargo.toml 2025-05-16 21:00:04.535301120 +0200
-@@ -121,7 +121,7 @@
- flate2 = "1.0"
- foreign-types = "0.3"
- futures = "0.3"
--h2 = { version = "0.4", features = [ "legacy", "stream" ] }
-+h2 = { version = "0.4", features = [ "stream" ] }
- hex = "0.4.3"
- hickory-resolver = { version = "0.24.1", default-features = false, features = [ "system-config", "tokio-runtime" ] }
- hyper = { version = "0.14", features = [ "backports", "deprecated", "full" ] }
-diff -ur proxmox-backup.orig/examples/h2client.rs proxmox-backup/examples/h2client.rs
---- proxmox-backup.orig/examples/h2client.rs 2025-05-16 20:33:09.987725464 +0200
-+++ proxmox-backup/examples/h2client.rs 2025-05-16 20:59:38.179242597 +0200
-@@ -10,7 +10,7 @@
- // Simple H2 client to test H2 download speed using h2server.rs
-
- struct Process {
-- body: h2::legacy::RecvStream,
-+ body: h2::RecvStream,
- trailers: bool,
- bytes: usize,
- }
-@@ -50,7 +50,7 @@
- }
-
- fn send_request(
-- mut client: h2::legacy::client::SendRequest<bytes::Bytes>,
-+ mut client: h2::client::SendRequest<bytes::Bytes>,
- ) -> impl Future<Output = Result<usize, Error>> {
- println!("sending request");
-
-@@ -78,7 +78,7 @@
- let conn = TcpStream::connect(std::net::SocketAddr::from(([127, 0, 0, 1], 8008))).await?;
- conn.set_nodelay(true).unwrap();
-
-- let (client, h2) = h2::legacy::client::Builder::new()
-+ let (client, h2) = h2::client::Builder::new()
- .initial_connection_window_size(1024 * 1024 * 1024)
- .initial_window_size(1024 * 1024 * 1024)
- .max_frame_size(4 * 1024 * 1024)
-diff -ur proxmox-backup.orig/examples/h2s-client.rs proxmox-backup/examples/h2s-client.rs
---- proxmox-backup.orig/examples/h2s-client.rs 2025-05-16 20:33:09.987725464 +0200
-+++ proxmox-backup/examples/h2s-client.rs 2025-05-16 20:59:38.179242597 +0200
-@@ -10,7 +10,7 @@
- // Simple H2 client to test H2 download speed using h2s-server.rs
-
- struct Process {
-- body: h2::legacy::RecvStream,
-+ body: h2::RecvStream,
- trailers: bool,
- bytes: usize,
- }
-@@ -50,7 +50,7 @@
- }
-
- fn send_request(
-- mut client: h2::legacy::client::SendRequest<bytes::Bytes>,
-+ mut client: h2::client::SendRequest<bytes::Bytes>,
- ) -> impl Future<Output = Result<usize, Error>> {
- println!("sending request");
-
-@@ -94,7 +94,7 @@
- .await
- .map_err(|err| format_err!("connect failed - {}", err))?;
-
-- let (client, h2) = h2::legacy::client::Builder::new()
-+ let (client, h2) = h2::client::Builder::new()
- .initial_connection_window_size(1024 * 1024 * 1024)
- .initial_window_size(1024 * 1024 * 1024)
- .max_frame_size(4 * 1024 * 1024)
-diff -ur proxmox-backup.orig/pbs-client/src/backup_writer.rs proxmox-backup/pbs-client/src/backup_writer.rs
---- proxmox-backup.orig/pbs-client/src/backup_writer.rs 2025-05-16 20:33:09.987725464 +0200
-+++ proxmox-backup/pbs-client/src/backup_writer.rs 2025-05-16 20:59:38.179242597 +0200
-@@ -56,7 +56,7 @@
- }
-
- struct ChunkUploadResponse {
-- future: h2::legacy::client::ResponseFuture,
-+ future: h2::client::ResponseFuture,
- size: usize,
- }
-
-@@ -143,7 +143,7 @@
- param: Option<Value>,
- content_type: &str,
- data: Vec<u8>,
-- ) -> Result<h2::legacy::client::ResponseFuture, Error> {
-+ ) -> Result<h2::client::ResponseFuture, Error> {
- let request =
- H2Client::request_builder("localhost", method, path, param, Some(content_type))
- .unwrap();
-@@ -514,7 +514,7 @@
- }
-
- fn response_queue() -> (
-- mpsc::Sender<h2::legacy::client::ResponseFuture>,
-+ mpsc::Sender<h2::client::ResponseFuture>,
- oneshot::Receiver<Result<(), Error>>,
- ) {
- let (verify_queue_tx, verify_queue_rx) = mpsc::channel(100);
-@@ -537,7 +537,7 @@
- tokio::spawn(
- ReceiverStream::new(verify_queue_rx)
- .map(Ok::<_, Error>)
-- .try_for_each(move |response: h2::legacy::client::ResponseFuture| {
-+ .try_for_each(move |response: h2::client::ResponseFuture| {
- response
- .map_err(Error::from)
- .and_then(H2Client::h2api_response)
-diff -ur proxmox-backup.orig/pbs-client/src/http_client.rs proxmox-backup/pbs-client/src/http_client.rs
---- proxmox-backup.orig/pbs-client/src/http_client.rs 2025-05-16 20:33:09.987725464 +0200
-+++ proxmox-backup/pbs-client/src/http_client.rs 2025-05-16 20:59:38.179242597 +0200
-@@ -863,7 +863,7 @@
-
- let max_window_size = (1 << 31) - 2;
-
-- let (h2, connection) = h2::legacy::client::Builder::new()
-+ let (h2, connection) = h2::client::Builder::new()
- .initial_connection_window_size(max_window_size)
- .initial_window_size(max_window_size)
- .max_frame_size(4 * 1024 * 1024)
-@@ -1008,11 +1008,11 @@
-
- #[derive(Clone)]
- pub struct H2Client {
-- h2: h2::legacy::client::SendRequest<bytes::Bytes>,
-+ h2: h2::client::SendRequest<bytes::Bytes>,
- }
-
- impl H2Client {
-- pub fn new(h2: h2::legacy::client::SendRequest<bytes::Bytes>) -> Self {
-+ pub fn new(h2: h2::client::SendRequest<bytes::Bytes>) -> Self {
- Self { h2 }
- }
-
-@@ -1092,7 +1092,7 @@
- &self,
- request: Request<()>,
- data: Option<bytes::Bytes>,
-- ) -> impl Future<Output = Result<h2::legacy::client::ResponseFuture, Error>> {
-+ ) -> impl Future<Output = Result<h2::client::ResponseFuture, Error>> {
- self.h2
- .clone()
- .ready()
-@@ -1109,9 +1109,7 @@
- })
- }
-
-- pub async fn h2api_response(
-- response: Response<h2::legacy::RecvStream>,
-- ) -> Result<Value, Error> {
-+ pub async fn h2api_response(response: Response<h2::RecvStream>) -> Result<Value, Error> {
- let status = response.status();
-
- let (_head, mut body) = response.into_parts();
-diff -ur proxmox-backup.orig/pbs-client/src/pipe_to_stream.rs proxmox-backup/pbs-client/src/pipe_to_stream.rs
---- proxmox-backup.orig/pbs-client/src/pipe_to_stream.rs 2025-05-16 20:33:09.987725464 +0200
-+++ proxmox-backup/pbs-client/src/pipe_to_stream.rs 2025-05-16 20:59:38.179242597 +0200
-@@ -8,7 +8,7 @@
- use anyhow::{format_err, Error};
- use bytes::Bytes;
- use futures::{ready, Future};
--use h2::legacy::SendStream;
-+use h2::SendStream;
-
- pub struct PipeToSendStream {
- body_tx: SendStream<Bytes>,