When paying through a direct channel, direct_pay_override() creates a route bypassing the normal routing path, which skips the CLTV budget check in payment_getroute(). This allows payments to succeed even when maxdelay is set below the required min_final_cltv_expiry. Add a check in direct_pay_override() to verify the required CLTV doesn't exceed cltv_budget before using the direct channel shortcut. If it exceeds, skip the direct channel and let normal routing handle the failure with a proper error message. Fixes: #8609 Changelog-Fixed: pay: `maxdelay` parameter now enforced for direct channel payments
121 KiB
121 KiB