Skip to content

Commit 9fc3082

Browse files
committed
f: Introduce TLV_OVERHEAD
1 parent 6e7fd12 commit 9fc3082

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

lightning/src/blinded_path/utils.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,12 @@ impl Writeable for BlindedPathPadding {
201201
}
202202
}
203203

204+
/// Padding storage requires two extra bytes:
205+
/// - One byte for the type.
206+
/// - One byte for the padding length.
207+
/// This constant accounts for that overhead.
208+
const TLV_OVERHEAD: usize = 2;
209+
204210
/// A generic struct that applies padding to blinded path TLVs, rounding their size off to `round_off`
205211
pub(crate) struct BlindedPathWithPadding<T: Writeable> {
206212
pub(crate) tlvs: T,
@@ -209,10 +215,13 @@ pub(crate) struct BlindedPathWithPadding<T: Writeable> {
209215

210216
impl<T:Writeable> Writeable for BlindedPathWithPadding<T> {
211217
fn write<W: Writer>(&self, writer: &mut W) -> Result<(), io::Error> {
212-
let length = self.tlvs.serialized_length();
213-
let padding_length = (length + self.round_off - 1) / self.round_off * self.round_off - length;
218+
let tlv_length = self.tlvs.serialized_length();
219+
let total_length = tlv_length + TLV_OVERHEAD;
220+
221+
let padding_length = (total_length + self.round_off - 1) / self.round_off * self.round_off
222+
- total_length;
214223

215-
let padding = Some(BlindedPathPadding::new(padding_length));
224+
let padding = BlindedPathPadding::new(padding_length).into();
216225

217226
encode_tlv_stream!(writer, {
218227
(1, padding, option),

0 commit comments

Comments
 (0)