From 6d9194cfaf769ac984b256dfeda65266278cd309 Mon Sep 17 00:00:00 2001
From: Matthias Radestock <matthias.radestock@gmail.com>
Date: Fri, 5 Aug 2016 23:32:34 +0100
Subject: [PATCH] treat EOF and ErrClosedPipe in websocket connections as
 uninteresting

both occur in various states of disconnectedness
---
 app/controls.go          | 3 +--
 common/xfer/websocket.go | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/app/controls.go b/app/controls.go
index d5ef4440d..58eae55ab 100644
--- a/app/controls.go
+++ b/app/controls.go
@@ -1,7 +1,6 @@
 package app
 
 import (
-	"io"
 	"net/http"
 	"net/rpc"
 
@@ -84,7 +83,7 @@ func handleProbeWS(cr ControlRouter) CtxHandlerFunc {
 			return
 		}
 		defer cr.Deregister(ctx, probeID, id)
-		if err := codec.WaitForReadError(); err != nil && err != io.EOF && !xfer.IsExpectedWSCloseError(err) {
+		if err := codec.WaitForReadError(); err != nil && !xfer.IsExpectedWSCloseError(err) {
 			log.Errorf("Error on websocket: %v", err)
 		}
 	}
diff --git a/common/xfer/websocket.go b/common/xfer/websocket.go
index 3df3a533f..7aaeb791d 100644
--- a/common/xfer/websocket.go
+++ b/common/xfer/websocket.go
@@ -167,8 +167,7 @@ func (p *pingingWebsocket) Close() error {
 // IsExpectedWSCloseError returns boolean indicating whether the error is a
 // clean disconnection.
 func IsExpectedWSCloseError(err error) bool {
-	return websocket.IsCloseError(
-		err,
+	return err == io.EOF || err == io.ErrClosedPipe || websocket.IsCloseError(err,
 		websocket.CloseNormalClosure,
 		websocket.CloseGoingAway,
 		websocket.CloseNoStatusReceived,
-- 
GitLab