@@ -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