From: Matt Corallo Date: Wed, 3 Nov 2021 01:11:25 +0000 (+0000) Subject: Tweak serialization of ScorerUsingTime for better forward compat X-Git-Tag: v0.0.103^2~2 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=d25f332592e45bd7f9dca68be5c12fdf74022b79;p=rust-lightning Tweak serialization of ScorerUsingTime for better forward compat --- diff --git a/lightning/src/routing/scorer.rs b/lightning/src/routing/scorer.rs index 956b09a54..8b5fae70a 100644 --- a/lightning/src/routing/scorer.rs +++ b/lightning/src/routing/scorer.rs @@ -275,34 +275,48 @@ impl Writeable for ScorerUsingTime { #[inline] fn write(&self, w: &mut W) -> Result<(), io::Error> { self.params.write(w)?; - self.channel_failures.write(w) + self.channel_failures.write(w)?; + write_tlv_fields!(w, {}); + Ok(()) } } impl Readable for ScorerUsingTime { #[inline] fn read(r: &mut R) -> Result { - Ok(Self { + let res = Ok(Self { params: Readable::read(r)?, channel_failures: Readable::read(r)?, - }) + }); + read_tlv_fields!(r, {}); + res } } impl Writeable for ChannelFailure { #[inline] fn write(&self, w: &mut W) -> Result<(), io::Error> { - self.undecayed_penalty_msat.write(w)?; - (T::duration_since_epoch() - self.last_failed.elapsed()).write(w) + let duration_since_epoch = T::duration_since_epoch() - self.last_failed.elapsed(); + write_tlv_fields!(w, { + (0, self.undecayed_penalty_msat, required), + (2, duration_since_epoch, required), + }); + Ok(()) } } impl Readable for ChannelFailure { #[inline] fn read(r: &mut R) -> Result { + let mut undecayed_penalty_msat = 0; + let mut duration_since_epoch = Duration::from_secs(0); + read_tlv_fields!(r, { + (0, undecayed_penalty_msat, required), + (2, duration_since_epoch, required), + }); Ok(Self { - undecayed_penalty_msat: Readable::read(r)?, - last_failed: T::now() - (T::duration_since_epoch() - Readable::read(r)?), + undecayed_penalty_msat, + last_failed: T::now() - (T::duration_since_epoch() - duration_since_epoch), }) } }