mirror of
https://github.com/Ride-The-Lightning/RTL.git
synced 2026-08-13 12:33:07 +02:00
Address review: coerce timeout_seconds to a positive finite number
The transport timeout added for the sendPayment race was derived from req.body.timeout_seconds, which was only guarded by "|| 600": a non-numeric value became NaN, which axios treats as no timeout, silently dropping the transport ceiling for this endpoint. timeout_seconds is now coerced to a positive finite number (falling back to 600), which also normalizes the value sent to LND. Large values are intentionally not capped: the transport bound must stay above LND's own timeout_seconds bound or the race the margin fixes would return. Verified on the fixture: a payment sent with timeout_seconds "abc" falls back to 600 and completes; the write suite re-passes.
This commit is contained in:
parent
89b6313a5b
commit
6e61d1b759
2 changed files with 2 additions and 2 deletions
|
|
@ -111,7 +111,7 @@ export const sendPayment = (req, res, next) => {
|
|||
req.body.last_hop_pubkey = Buffer.from(req.body.last_hop_pubkey, 'hex').toString('base64');
|
||||
}
|
||||
req.body.amp = req.body.amp ?? false;
|
||||
req.body.timeout_seconds = req.body.timeout_seconds || 600;
|
||||
req.body.timeout_seconds = (Number.isFinite(+req.body.timeout_seconds) && +req.body.timeout_seconds > 0) ? +req.body.timeout_seconds : 600;
|
||||
options.form = JSON.stringify(req.body);
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Options', data: options.form });
|
||||
// LND ends the stream at timeout_seconds with a FAILURE_REASON_TIMEOUT result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue