diff --git a/discovery/gossiper.go b/discovery/gossiper.go index 4b2f4f220..0b59c8af9 100644 --- a/discovery/gossiper.go +++ b/discovery/gossiper.go @@ -860,8 +860,6 @@ func (d *AuthenticatedGossiper) stop() { func (d *AuthenticatedGossiper) ProcessRemoteAnnouncement(ctx context.Context, msg lnwire.Message, peer lnpeer.Peer) chan error { - log.Debugf("Processing remote msg %T from peer=%x", msg, peer.PubKey()) - errChan := make(chan error, 1) // For messages in the known set of channel series queries, we'll diff --git a/peer/brontide.go b/peer/brontide.go index cd7645aee..26d02d3e7 100644 --- a/peer/brontide.go +++ b/peer/brontide.go @@ -1995,9 +1995,32 @@ func newDiscMsgStream(p *Brontide) *msgStream { // so that a parent context can be passed in here. ctx := context.TODO() - // TODO(yy): `ProcessRemoteAnnouncement` returns an error chan - // and we need to process it. - p.cfg.AuthGossiper.ProcessRemoteAnnouncement(ctx, msg, p) + p.log.Debugf("Processing remote msg %T", msg) + + errChan := p.cfg.AuthGossiper.ProcessRemoteAnnouncement( + ctx, msg, p, + ) + + // Start a goroutine to process the error channel for logging + // purposes. + // + // TODO(ziggie): Maybe use the error to potentially punish the + // peer depending on the error ? + go func() { + select { + case <-p.cg.Done(): + return + + case err := <-errChan: + if err != nil { + p.log.Warnf("Error processing remote "+ + "msg %T: %v", msg, + err) + } + } + + p.log.Debugf("Processed remote msg %T", msg) + }() } return newMsgStream(