• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 12293715361

12 Dec 2024 09:38AM UTC coverage: 57.483% (+7.9%) from 49.538%
12293715361

Pull #9348

github

ziggie1984
github: update goveralls tool

The goverall tool had a bug regarding the module versioning of
golang packages see also
https://github.com/mattn/goveralls/pull/222 for more background.
Goveralls is wrapped by another library to make it available for
github actions. So the relevant PR which is referenced here in
LND is:
https://github.com/shogo82148/actions-goveralls/pull/521.
Pull Request #9348: github: update goveralls tool

101897 of 177264 relevant lines covered (57.48%)

24982.4 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/peernotifier/peernotifier.go
1
package peernotifier
2

3
import (
4
        "sync"
5

6
        "github.com/lightningnetwork/lnd/subscribe"
7
)
8

9
// PeerNotifier is a subsystem which observes peer offline and online events.
10
// It takes subscriptions for its events, and whenever it observes a new event
11
// it notifies its subscribers over the proper channel.
12
type PeerNotifier struct {
13
        started sync.Once
14
        stopped sync.Once
15

16
        ntfnServer *subscribe.Server
17
}
18

19
// PeerOnlineEvent represents a new event where a peer comes online.
20
type PeerOnlineEvent struct {
21
        // PubKey is the peer's compressed public key.
22
        PubKey [33]byte
23
}
24

25
// PeerOfflineEvent represents a new event where a peer goes offline.
26
type PeerOfflineEvent struct {
27
        // PubKey is the peer's compressed public key.
28
        PubKey [33]byte
29
}
30

31
// New creates a new peer notifier which notifies clients of peer online
32
// and offline events.
33
func New() *PeerNotifier {
×
34
        return &PeerNotifier{
×
35
                ntfnServer: subscribe.NewServer(),
×
36
        }
×
37
}
×
38

39
// Start starts the PeerNotifier's subscription server.
40
func (p *PeerNotifier) Start() error {
×
41
        var err error
×
42

×
43
        p.started.Do(func() {
×
44
                log.Info("PeerNotifier starting")
×
45
                err = p.ntfnServer.Start()
×
46
        })
×
47

48
        return err
×
49
}
50

51
// Stop signals the notifier for a graceful shutdown.
52
func (p *PeerNotifier) Stop() error {
×
53
        var err error
×
54
        p.stopped.Do(func() {
×
55
                log.Info("PeerNotifier shutting down...")
×
56
                defer log.Debug("PeerNotifier shutdown complete")
×
57

×
58
                err = p.ntfnServer.Stop()
×
59
        })
×
60
        return err
×
61
}
62

63
// SubscribePeerEvents returns a subscribe.Client that will receive updates
64
// any time the Server is informed of a peer event.
65
func (p *PeerNotifier) SubscribePeerEvents() (*subscribe.Client, error) {
×
66
        return p.ntfnServer.Subscribe()
×
67
}
×
68

69
// NotifyPeerOnline sends a peer online event to all clients subscribed to the
70
// peer notifier.
71
func (p *PeerNotifier) NotifyPeerOnline(pubKey [33]byte) {
×
72
        event := PeerOnlineEvent{PubKey: pubKey}
×
73

×
74
        log.Debugf("PeerNotifier notifying peer: %x online", pubKey)
×
75

×
76
        if err := p.ntfnServer.SendUpdate(event); err != nil {
×
77
                log.Warnf("Unable to send peer online update: %v", err)
×
78
        }
×
79
}
80

81
// NotifyPeerOffline sends a peer offline event to all the clients subscribed
82
// to the peer notifier.
83
func (p *PeerNotifier) NotifyPeerOffline(pubKey [33]byte) {
×
84
        event := PeerOfflineEvent{PubKey: pubKey}
×
85

×
86
        log.Debugf("PeerNotifier notifying peer: %x offline", pubKey)
×
87

×
88
        if err := p.ntfnServer.SendUpdate(event); err != nil {
×
89
                log.Warnf("Unable to send peer offline update: %v", err)
×
90
        }
×
91
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc