mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-18 05:42:09 +01:00
invoices: exit early when the subscriber chan is nil
When calling `NotifyExitHopHtlc` it is allowed to pass a chan to subscribe to the HTLC's resolution when it's settled. However, this method will also return immediately if there's already a resolution, which means it behaves like a notifier and a getter. If the caller decides to only use the getter to do a non-blocking lookup, it can pass a nil subscriber chan to bypass the notification.
This commit is contained in:
parent
71aec7bd94
commit
025d787fd2
@ -29,6 +29,11 @@ func (r *mockRegistry) NotifyExitHopHtlc(payHash lntypes.Hash,
|
||||
wireCustomRecords lnwire.CustomRecords,
|
||||
payload invoices.Payload) (invoices.HtlcResolution, error) {
|
||||
|
||||
// Exit early if the notification channel is nil.
|
||||
if hodlChan == nil {
|
||||
return r.notifyResolution, r.notifyErr
|
||||
}
|
||||
|
||||
r.notifyChan <- notifyExitHopData{
|
||||
hodlChan: hodlChan,
|
||||
payHash: payHash,
|
||||
|
@ -1275,7 +1275,11 @@ func (i *InvoiceRegistry) notifyExitHopHtlcLocked(
|
||||
invoiceToExpire = makeInvoiceExpiry(ctx.hash, invoice)
|
||||
}
|
||||
|
||||
i.hodlSubscribe(hodlChan, ctx.circuitKey)
|
||||
// Subscribe to the resolution if the caller specified a
|
||||
// notification channel.
|
||||
if hodlChan != nil {
|
||||
i.hodlSubscribe(hodlChan, ctx.circuitKey)
|
||||
}
|
||||
|
||||
default:
|
||||
panic("unknown action")
|
||||
|
Loading…
x
Reference in New Issue
Block a user