From eb2617ac12b2432e8d8d22c7cae64b887d1c70e5 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Tue, 8 Feb 2022 22:05:31 +0200 Subject: m4p: Avoid spamming use of closed network connection --- m4p/client.go | 9 +++++++++ m4p/discover.go | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/m4p/client.go b/m4p/client.go index 526e6c2..45f8b77 100644 --- a/m4p/client.go +++ b/m4p/client.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "encoding/json" + "errors" "fmt" "log" "net" @@ -102,6 +103,10 @@ recvLoop: n, err := c.conn.Read(buf[:]) if err != nil { + if errors.Is(err, net.ErrClosed) { + log.Printf("m4p: Client: recv: connection closed: %v", err) + return + } log.Printf("m4p: Client: recv: read udp packet failed: %v", err) continue } @@ -163,6 +168,10 @@ func (c *Client) keepalive() { case <-clientKeepalive: _, err := c.conn.Write([]byte("{}")) if err != nil { + if errors.Is(err, net.ErrClosed) { + log.Printf("m4p: Client: keepalive: connection closed: %v", err) + return + } log.Printf("m4p: Client: keepalive: send client keepalive failed, disconnecting...") return } diff --git a/m4p/discover.go b/m4p/discover.go index a63dde2..4652939 100644 --- a/m4p/discover.go +++ b/m4p/discover.go @@ -1,6 +1,7 @@ package m4p import ( + "errors" "log" "net" ) @@ -37,6 +38,10 @@ func (d *Discoverer) discover() { for { n, addr, err := d.ln.ReadFromUDP(buf[:]) if err != nil { + if errors.Is(err, net.ErrClosed) { + log.Printf("m4p: Discoverer: discover: connection closed: %v", err) + return + } log.Printf("m4p: Discoverer: discover: read udp packet failed: %v", err) continue } -- cgit v1.2.3