@@ -60,16 +60,18 @@ type InterceptorService struct {
60
60
invoiceToAccount map [lntypes.Hash ]AccountID
61
61
pendingPayments map [lntypes.Hash ]* trackedPayment
62
62
63
- mainErrChan chan <- error
64
- wg sync.WaitGroup
65
- quit chan struct {}
63
+ mainErrCallback func ( error )
64
+ wg sync.WaitGroup
65
+ quit chan struct {}
66
66
67
67
isEnabled bool
68
68
}
69
69
70
70
// NewService returns a service backed by the macaroon Bolt DB stored in the
71
71
// passed-in directory.
72
- func NewService (dir string , errChan chan <- error ) (* InterceptorService , error ) {
72
+ func NewService (dir string ,
73
+ errCallback func (error )) (* InterceptorService , error ) {
74
+
73
75
accountStore , err := NewBoltStore (dir , DBFilename )
74
76
if err != nil {
75
77
return nil , err
@@ -83,7 +85,7 @@ func NewService(dir string, errChan chan<- error) (*InterceptorService, error) {
83
85
contextCancel : contextCancel ,
84
86
invoiceToAccount : make (map [lntypes.Hash ]AccountID ),
85
87
pendingPayments : make (map [lntypes.Hash ]* trackedPayment ),
86
- mainErrChan : errChan ,
88
+ mainErrCallback : errCallback ,
87
89
quit : make (chan struct {}),
88
90
isEnabled : false ,
89
91
}, nil
@@ -184,11 +186,7 @@ func (s *InterceptorService) Start(lightningClient lndclient.LightningClient,
184
186
log .Errorf ("Error processing invoice " +
185
187
"update: %v" , err )
186
188
187
- select {
188
- case s .mainErrChan <- err :
189
- case <- s .mainCtx .Done ():
190
- case <- s .quit :
191
- }
189
+ s .mainErrCallback (err )
192
190
return
193
191
}
194
192
@@ -199,11 +197,7 @@ func (s *InterceptorService) Start(lightningClient lndclient.LightningClient,
199
197
err = s .disableAndErrorf ("Error in invoice " +
200
198
"subscription: %w" , err )
201
199
202
- select {
203
- case s .mainErrChan <- err :
204
- case <- s .mainCtx .Done ():
205
- case <- s .quit :
206
- }
200
+ s .mainErrCallback (err )
207
201
return
208
202
209
203
case <- s .mainCtx .Done ():
@@ -581,11 +575,7 @@ func (s *InterceptorService) TrackPayment(id AccountID, hash lntypes.Hash,
581
575
hash , paymentUpdate ,
582
576
)
583
577
if err != nil {
584
- select {
585
- case s .mainErrChan <- err :
586
- case <- s .mainCtx .Done ():
587
- case <- s .quit :
588
- }
578
+ s .mainErrCallback (err )
589
579
return
590
580
}
591
581
@@ -614,11 +604,7 @@ func (s *InterceptorService) TrackPayment(id AccountID, hash lntypes.Hash,
614
604
"error from TrackPayment RPC " +
615
605
"for payment %v: %w" , hash , err )
616
606
617
- select {
618
- case s .mainErrChan <- err :
619
- case <- s .mainCtx .Done ():
620
- case <- s .quit :
621
- }
607
+ s .mainErrCallback (err )
622
608
}
623
609
return
624
610
0 commit comments