htlcswitch/switch: adds concrete ErrSwitchExisting

This commit is contained in:
Conner Fromknecht 2018-07-27 03:29:16 -07:00
parent 0d49a60924
commit 9047eee2f1
No known key found for this signature in database
GPG Key ID: E7D737B67FA592C7

@ -47,6 +47,10 @@ var (
// txn. // txn.
ErrIncompleteForward = errors.New("incomplete forward detected") ErrIncompleteForward = errors.New("incomplete forward detected")
// ErrSwitchExiting signaled when the switch has received a shutdown
// request.
ErrSwitchExiting = errors.New("htlcswitch shutting down")
// zeroPreimage is the empty preimage which is returned when we have // zeroPreimage is the empty preimage which is returned when we have
// some errors. // some errors.
zeroPreimage [sha256.Size]byte zeroPreimage [sha256.Size]byte
@ -322,13 +326,13 @@ func (s *Switch) ProcessContractResolution(msg contractcourt.ResolutionMsg) erro
doneChan: done, doneChan: done,
}: }:
case <-s.quit: case <-s.quit:
return fmt.Errorf("switch shutting down") return ErrSwitchExiting
} }
select { select {
case <-done: case <-done:
case <-s.quit: case <-s.quit:
return fmt.Errorf("switch shutting down") return ErrSwitchExiting
} }
return nil return nil
@ -383,24 +387,21 @@ func (s *Switch) SendHTLC(nextNode [33]byte, htlc *lnwire.UpdateAddHTLC,
case e := <-payment.err: case e := <-payment.err:
err = e err = e
case <-s.quit: case <-s.quit:
return zeroPreimage, errors.New("htlc switch have been stopped " + return zeroPreimage, ErrSwitchExiting
"while waiting for payment result")
} }
select { select {
case pkt := <-payment.response: case pkt := <-payment.response:
response = pkt response = pkt
case <-s.quit: case <-s.quit:
return zeroPreimage, errors.New("htlc switch have been stopped " + return zeroPreimage, ErrSwitchExiting
"while waiting for payment result")
} }
select { select {
case p := <-payment.preimage: case p := <-payment.preimage:
preimage = p preimage = p
case <-s.quit: case <-s.quit:
return zeroPreimage, errors.New("htlc switch have been stopped " + return zeroPreimage, ErrSwitchExiting
"while waiting for payment result")
} }
// Remove circuit since we are about to complete an add/fail of this // Remove circuit since we are about to complete an add/fail of this
@ -722,14 +723,14 @@ func (s *Switch) route(packet *htlcPacket) error {
select { select {
case s.htlcPlex <- command: case s.htlcPlex <- command:
case <-s.quit: case <-s.quit:
return errors.New("Htlc Switch was stopped") return ErrSwitchExiting
} }
select { select {
case err := <-command.err: case err := <-command.err:
return err return err
case <-s.quit: case <-s.quit:
return errors.New("Htlc Switch was stopped") return ErrSwitchExiting
} }
} }
@ -1374,8 +1375,7 @@ func (s *Switch) CloseLink(chanPoint *wire.OutPoint, closeType ChannelCloseType,
return updateChan, errChan return updateChan, errChan
case <-s.quit: case <-s.quit:
errChan <- errors.New("unable close channel link, htlc " + errChan <- ErrSwitchExiting
"switch already stopped")
close(updateChan) close(updateChan)
return updateChan, errChan return updateChan, errChan
} }