mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-24 09:03:14 +01:00
[relay-server] Always close ws conn when work thread exit (#2879)
Close ws conn when work thread exit
This commit is contained in:
parent
39329e12a1
commit
b48afd92fd
@ -16,6 +16,8 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
bufferSize = 8820
|
bufferSize = 8820
|
||||||
|
|
||||||
|
errCloseConn = "failed to close connection to peer: %s"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Peer represents a peer connection
|
// Peer represents a peer connection
|
||||||
@ -46,6 +48,12 @@ func NewPeer(metrics *metrics.Metrics, id []byte, conn net.Conn, store *Store) *
|
|||||||
// It manages the protocol (healthcheck, transport, close). Read the message and determine the message type and handle
|
// It manages the protocol (healthcheck, transport, close). Read the message and determine the message type and handle
|
||||||
// the message accordingly.
|
// the message accordingly.
|
||||||
func (p *Peer) Work() {
|
func (p *Peer) Work() {
|
||||||
|
defer func() {
|
||||||
|
if err := p.conn.Close(); err != nil && !errors.Is(err, net.ErrClosed) {
|
||||||
|
p.log.Errorf(errCloseConn, err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
@ -97,7 +105,7 @@ func (p *Peer) handleMsgType(ctx context.Context, msgType messages.MsgType, hc *
|
|||||||
case messages.MsgTypeClose:
|
case messages.MsgTypeClose:
|
||||||
p.log.Infof("peer exited gracefully")
|
p.log.Infof("peer exited gracefully")
|
||||||
if err := p.conn.Close(); err != nil {
|
if err := p.conn.Close(); err != nil {
|
||||||
log.Errorf("failed to close connection to peer: %s", err)
|
log.Errorf(errCloseConn, err)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
p.log.Warnf("received unexpected message type: %s", msgType)
|
p.log.Warnf("received unexpected message type: %s", msgType)
|
||||||
@ -121,9 +129,8 @@ func (p *Peer) CloseGracefully(ctx context.Context) {
|
|||||||
p.log.Errorf("failed to send close message to peer: %s", p.String())
|
p.log.Errorf("failed to send close message to peer: %s", p.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
err = p.conn.Close()
|
if err := p.conn.Close(); err != nil {
|
||||||
if err != nil {
|
p.log.Errorf(errCloseConn, err)
|
||||||
p.log.Errorf("failed to close connection to peer: %s", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,7 +139,7 @@ func (p *Peer) Close() {
|
|||||||
defer p.connMu.Unlock()
|
defer p.connMu.Unlock()
|
||||||
|
|
||||||
if err := p.conn.Close(); err != nil {
|
if err := p.conn.Close(); err != nil {
|
||||||
p.log.Errorf("failed to close connection to peer: %s", err)
|
p.log.Errorf(errCloseConn, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user