X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=rust-lightning;a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Fchannelmanager.rs;h=f347c279f5aa2333cc2914a664beacb1646ad27c;hp=939b61e4d178ff9bde50b080203acec091c16636;hb=886223a3139bfff26264972bc0ce519e0cba0485;hpb=ad5f72894c9fa501e3d71fee7f12f8cfdc9dd55e diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 939b61e4..f347c279 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -1175,6 +1175,12 @@ impl ChannelMan if msg.cltv_expiry > cur_height + CLTV_FAR_FAR_AWAY as u32 { // expiry_too_far break Some(("CLTV expiry is too far in the future", 21, None)); } + // In theory, we would be safe against unitentional channel-closure, if we only required a margin of LATENCY_GRACE_PERIOD_BLOCKS. + // But, to be safe against policy reception, we use a longuer delay. + if (*outgoing_cltv_value) as u64 <= (cur_height + HTLC_FAIL_BACK_BUFFER) as u64 { + break Some(("Outgoing CLTV value is too soon", 0x1000 | 14, Some(self.get_channel_update(chan).unwrap()))); + } + break None; } {