From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 28D021FF38E for ; Tue, 28 May 2024 11:43:17 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E5AD411F90; Tue, 28 May 2024 11:43:30 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Tue, 28 May 2024 11:42:06 +0200 Message-Id: <20240528094303.309806-13-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240528094303.309806-1-c.ebner@proxmox.com> References: <20240528094303.309806-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.029 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pbs-devel] [PATCH v8 pxar 12/69] encoder/format: finish payload stream with marker X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Mark the end of the optional payload stream, this makes sure that at least some bytes are written to the stream (as empty archives are not allowed by the proxmox backup server) and possible injected chunks must be consumed. Signed-off-by: Christian Ebner --- changes since version 7: - no changes changes since version 6: - no changes examples/mk-format-hashes.rs | 5 +++++ src/encoder/mod.rs | 8 ++++++++ src/format/mod.rs | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/examples/mk-format-hashes.rs b/examples/mk-format-hashes.rs index 83adb38..de73df0 100644 --- a/examples/mk-format-hashes.rs +++ b/examples/mk-format-hashes.rs @@ -56,6 +56,11 @@ const CONSTANTS: &[(&str, &str, &str)] = &[ "PXAR_GOODBYE_TAIL_MARKER", "__PROXMOX_FORMAT_PXAR_GOODBYE_TAIL_MARKER__", ), + ( + "The end marker used in the separate payload stream", + "PXAR_PAYLOAD_TAIL_MARKER", + "__PROXMOX_FORMAT_PXAR_PAYLOAD_TAIL_MARKER__", + ), ]; fn main() { diff --git a/src/encoder/mod.rs b/src/encoder/mod.rs index e89dc3b..54e147d 100644 --- a/src/encoder/mod.rs +++ b/src/encoder/mod.rs @@ -900,6 +900,14 @@ impl<'a, T: SeqWrite + 'a> EncoderImpl<'a, T> { } if let Some(output) = self.output.payload_mut() { + let mut dummy_writer = 0; + seq_write_pxar_entry( + output, + format::PXAR_PAYLOAD_TAIL_MARKER, + &[], + &mut dummy_writer, + ) + .await?; flush(output).await?; } diff --git a/src/format/mod.rs b/src/format/mod.rs index 5d7a652..e451b0f 100644 --- a/src/format/mod.rs +++ b/src/format/mod.rs @@ -106,6 +106,8 @@ pub const PXAR_PAYLOAD_REF: u64 = 0x419d3d6bc4ba977e; pub const PXAR_GOODBYE: u64 = 0x2fec4fa642d5731d; /// The end marker used in the GOODBYE object pub const PXAR_GOODBYE_TAIL_MARKER: u64 = 0xef5eed5b753e1555; +/// The end marker used in the separate payload stream +pub const PXAR_PAYLOAD_TAIL_MARKER: u64 = 0x6c72b78b984c81b5; #[derive(Debug, Endian)] #[repr(C)] @@ -156,6 +158,7 @@ impl Header { PXAR_ENTRY => size_of::() as u64, PXAR_PAYLOAD | PXAR_GOODBYE => u64::MAX - (size_of::() as u64), PXAR_PAYLOAD_REF => size_of::() as u64, + PXAR_PAYLOAD_TAIL_MARKER => size_of::
() as u64, _ => u64::MAX - (size_of::() as u64), } } @@ -197,6 +200,7 @@ impl Display for Header { PXAR_ENTRY => "ENTRY", PXAR_PAYLOAD => "PAYLOAD", PXAR_PAYLOAD_REF => "PAYLOAD_REF", + PXAR_PAYLOAD_TAIL_MARKER => "PXAR_PAYLOAD_TAIL_MARKER", PXAR_GOODBYE => "GOODBYE", _ => "UNKNOWN", }; -- 2.39.2 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel