diff options
Diffstat (limited to 'm4p')
-rw-r--r-- | m4p/client.go | 9 | ||||
-rw-r--r-- | m4p/discover.go | 5 |
2 files changed, 14 insertions, 0 deletions
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 } |