mirror of
https://github.com/lightningnetwork/lnd.git
synced 2024-11-19 09:53:54 +01:00
peer: extend SendMessage to allow callers to block until msg is sent
This commit is contained in:
parent
b3bc374ba1
commit
ca9174e166
@ -111,10 +111,9 @@ type ChannelLink interface {
|
||||
// Peer is an interface which represents the remote lightning node inside our
|
||||
// system.
|
||||
type Peer interface {
|
||||
// SendMessage sends message to remote peer. The second arguments
|
||||
// denote if the method should block until the message has been sent to
|
||||
// the remote peer. If set, this allows the caller to more strongly
|
||||
// synchronize.
|
||||
// SendMessage sends message to remote peer. The second argument
|
||||
// denotes if the method should block until the message has been sent
|
||||
// to the remote peer.
|
||||
SendMessage(msg lnwire.Message, sync bool) error
|
||||
|
||||
// WipeChannel removes the channel uniquely identified by its channel
|
||||
|
21
peer.go
21
peer.go
@ -1874,10 +1874,23 @@ func (p *peer) sendInitMsg() error {
|
||||
return p.writeMessage(msg)
|
||||
}
|
||||
|
||||
// SendMessage queues a message for sending to the target peer.
|
||||
func (p *peer) SendMessage(msg lnwire.Message) error {
|
||||
p.queueMsg(msg, nil)
|
||||
return nil
|
||||
// SendMessage sends message to remote peer. The second argument denotes if the
|
||||
// method should block until the message has been sent to the remote peer.
|
||||
func (p *peer) SendMessage(msg lnwire.Message, sync bool) error {
|
||||
if !sync {
|
||||
p.queueMsg(msg, nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
errChan := make(chan error, 1)
|
||||
p.queueMsg(msg, errChan)
|
||||
|
||||
select {
|
||||
case err := <-errChan:
|
||||
return err
|
||||
case <-p.quit:
|
||||
return fmt.Errorf("peer shutting down")
|
||||
}
|
||||
}
|
||||
|
||||
// PubKey returns the pubkey of the peer in compressed serialized format.
|
||||
|
Loading…
Reference in New Issue
Block a user