server: add new errPeerAlreadyConnected error type

This commit is contained in:
Olaoluwa Osuntokun 2019-04-09 19:45:48 -07:00
parent 58aa32035c
commit 4b57fb199f

@ -89,6 +89,19 @@ var (
validColorRegexp = regexp.MustCompile("^#[A-Fa-f0-9]{6}$") validColorRegexp = regexp.MustCompile("^#[A-Fa-f0-9]{6}$")
) )
// errPeerAlreadyConnected is an error returned by the server when we're
// commanded to connect to a peer, but they're already connected.
type errPeerAlreadyConnected struct {
peer *peer
}
// Error returns the human readable version of this error type.
//
// NOTE: Part of the error interface.
func (e *errPeerAlreadyConnected) Error() string {
return fmt.Sprintf("already connected to peer: %v", e.peer)
}
// server is the main server of the Lightning Network Daemon. The server houses // server is the main server of the Lightning Network Daemon. The server houses
// global state pertaining to the wallet, database, and the rpcserver. // global state pertaining to the wallet, database, and the rpcserver.
// Additionally, the server is also used as a central messaging bus to interact // Additionally, the server is also used as a central messaging bus to interact
@ -2875,7 +2888,7 @@ func (s *server) ConnectToPeer(addr *lnwire.NetAddress, perm bool) error {
peer, err := s.findPeerByPubStr(targetPub) peer, err := s.findPeerByPubStr(targetPub)
if err == nil { if err == nil {
s.mu.Unlock() s.mu.Unlock()
return fmt.Errorf("already connected to peer: %v", peer) return &errPeerAlreadyConnected{peer: peer}
} }
// Peer was not found, continue to pursue connection with peer. // Peer was not found, continue to pursue connection with peer.