From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id F2DE0B8D30 for ; Mon, 11 Mar 2024 16:28:13 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D4309BC61 for ; Mon, 11 Mar 2024 16:27:43 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Mon, 11 Mar 2024 16:27:42 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id A041648908 for ; Mon, 11 Mar 2024 16:27:42 +0100 (CET) Date: Mon, 11 Mar 2024 16:27:36 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Christian Ebner , Proxmox Backup Server development discussion References: <20240305092703.126906-1-c.ebner@proxmox.com> <20240305092703.126906-5-c.ebner@proxmox.com> <1710153663.gtljd8y4z5.astroid@yuna.none> <1081076067.10791.1710165903108@webmail.proxmox.com> In-Reply-To: <1081076067.10791.1710165903108@webmail.proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1710169433.csk298bchf.astroid@yuna.none> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-LEVEL: Spam detection results: 0 AWL 0.065 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: Re: [pbs-devel] [RFC v2 pxar 04/36] decoder: add optional payload input stream 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: , X-List-Received-Date: Mon, 11 Mar 2024 15:28:14 -0000 On March 11, 2024 3:05 pm, Christian Ebner wrote: >> On 11.03.2024 14:21 CET Fabian Gr=C3=BCnbichler wrote: >>=20 >> =20 >>=20 >> same question as for the encoder - do we want to prevent misuse here and >> check/ensure that no payload_input has already been set before? >> >=20 > Also for the decoder I will opt for the suggestion by Dietmar and lock th= is > down for possible misuse by adding the optional parameter to the `new` me= thod > instead. ack >> style: these two could be combined into >>=20 >> if let Some(payload_input) =3D self.payload_input.as_mut() { >> if seq_read_position(payload_input).await.transpose()?.is_none() { >> // Skip payload padding for injected chunks in sync decoder >> let to_skip =3D payload_ref.offset - self.payload_consumed; >> self.skip_payload(to_skip).await?; >> } >> } >> >=20 > Good, this will come in handy as Dietmar also suggested to add a header f= or > all the payloads stored in the separated payload archive. I plan on using= the > existing PXAR_PAYLOAD header for this, also encoding the payload size. I = will > therefore add a check for the header here and compare the sizes as found = in > the payload input and metadata archives. out of intereset - what do we need the header for? or is it just to make the resulting payload archive more debuggable? >> nit: this could also share the "skip" part with `skip_entry`, and take t= he >> input and length as parameter? >=20 > I opted against that, since `skip_entry` operates only on the metadata > archive, the `skip_payload` however on the `payload_input`. I could howev= er > factor this out into a function which takes the input as parameter, makin= g > thereby sure to have the correct input to skip bytes. yes, that's what I meant - they are identical except for where the input and length come from. >> nit: casting to usize at the start would make the code easier to parse >> IMHO >=20 > Okay, I can send that as independent patch already I guess.