@@ -3443,9 +3443,13 @@ func (l *channelLink) canSendHtlc(policy models.ForwardingPolicy,
34433443 return NewLinkError (& lnwire.FailTemporaryNodeFailure {})
34443444 }
34453445
3446- auxBandwidth .WhenSome (func (bandwidth lnwire.MilliSatoshi ) {
3447- availableBandwidth = bandwidth
3448- })
3446+ if auxBandwidth .IsHandled && auxBandwidth .Bandwidth .IsSome () {
3447+ auxBandwidth .Bandwidth .WhenSome (
3448+ func (bandwidth lnwire.MilliSatoshi ) {
3449+ availableBandwidth = bandwidth
3450+ },
3451+ )
3452+ }
34493453
34503454 // Check to see if there is enough balance in this channel.
34513455 if amt > availableBandwidth {
@@ -3471,8 +3475,6 @@ func (l *channelLink) AuxBandwidth(amount lnwire.MilliSatoshi,
34713475 cid lnwire.ShortChannelID , htlcBlob fn.Option [tlv.Blob ],
34723476 ts AuxTrafficShaper ) fn.Result [OptionalBandwidth ] {
34733477
3474- unknownBandwidth := fn .None [lnwire.MilliSatoshi ]()
3475-
34763478 fundingBlob := l .FundingCustomBlob ()
34773479 shouldHandle , err := ts .ShouldHandleTraffic (cid , fundingBlob )
34783480 if err != nil {
@@ -3486,7 +3488,9 @@ func (l *channelLink) AuxBandwidth(amount lnwire.MilliSatoshi,
34863488 // If this channel isn't handled by the aux traffic shaper, we'll return
34873489 // early.
34883490 if ! shouldHandle {
3489- return fn .Ok (unknownBandwidth )
3491+ return fn .Ok (OptionalBandwidth {
3492+ IsHandled : false ,
3493+ })
34903494 }
34913495
34923496 // Ask for a specific bandwidth to be used for the channel.
@@ -3502,7 +3506,10 @@ func (l *channelLink) AuxBandwidth(amount lnwire.MilliSatoshi,
35023506 log .Debugf ("ShortChannelID=%v: aux traffic shaper reported available " +
35033507 "bandwidth: %v" , cid , auxBandwidth )
35043508
3505- return fn .Ok (fn .Some (auxBandwidth ))
3509+ return fn .Ok (OptionalBandwidth {
3510+ IsHandled : false ,
3511+ Bandwidth : fn .Some (auxBandwidth ),
3512+ })
35063513}
35073514
35083515// Stats returns the statistics of channel link.
0 commit comments