@@ -60,16 +60,18 @@ type InterceptorService struct {
6060 invoiceToAccount map [lntypes.Hash ]AccountID
6161 pendingPayments map [lntypes.Hash ]* trackedPayment
6262
63- mainErrChan chan <- error
64- wg sync.WaitGroup
65- quit chan struct {}
63+ mainErrCallback func ( error )
64+ wg sync.WaitGroup
65+ quit chan struct {}
6666
6767 isEnabled bool
6868}
6969
7070// NewService returns a service backed by the macaroon Bolt DB stored in the
7171// 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+
7375 accountStore , err := NewBoltStore (dir , DBFilename )
7476 if err != nil {
7577 return nil , err
@@ -83,7 +85,7 @@ func NewService(dir string, errChan chan<- error) (*InterceptorService, error) {
8385 contextCancel : contextCancel ,
8486 invoiceToAccount : make (map [lntypes.Hash ]AccountID ),
8587 pendingPayments : make (map [lntypes.Hash ]* trackedPayment ),
86- mainErrChan : errChan ,
88+ mainErrCallback : errCallback ,
8789 quit : make (chan struct {}),
8890 isEnabled : false ,
8991 }, nil
@@ -184,11 +186,7 @@ func (s *InterceptorService) Start(lightningClient lndclient.LightningClient,
184186 log .Errorf ("Error processing invoice " +
185187 "update: %v" , err )
186188
187- select {
188- case s .mainErrChan <- err :
189- case <- s .mainCtx .Done ():
190- case <- s .quit :
191- }
189+ s .mainErrCallback (err )
192190 return
193191 }
194192
@@ -199,11 +197,7 @@ func (s *InterceptorService) Start(lightningClient lndclient.LightningClient,
199197 err = s .disableAndErrorf ("Error in invoice " +
200198 "subscription: %w" , err )
201199
202- select {
203- case s .mainErrChan <- err :
204- case <- s .mainCtx .Done ():
205- case <- s .quit :
206- }
200+ s .mainErrCallback (err )
207201 return
208202
209203 case <- s .mainCtx .Done ():
@@ -581,11 +575,7 @@ func (s *InterceptorService) TrackPayment(id AccountID, hash lntypes.Hash,
581575 hash , paymentUpdate ,
582576 )
583577 if err != nil {
584- select {
585- case s .mainErrChan <- err :
586- case <- s .mainCtx .Done ():
587- case <- s .quit :
588- }
578+ s .mainErrCallback (err )
589579 return
590580 }
591581
@@ -614,11 +604,7 @@ func (s *InterceptorService) TrackPayment(id AccountID, hash lntypes.Hash,
614604 "error from TrackPayment RPC " +
615605 "for payment %v: %w" , hash , err )
616606
617- select {
618- case s .mainErrChan <- err :
619- case <- s .mainCtx .Done ():
620- case <- s .quit :
621- }
607+ s .mainErrCallback (err )
622608 }
623609 return
624610
0 commit comments