github.com/outbrain/consul@v1.4.5/lib/eof.go (about) 1 package lib 2 3 import ( 4 "io" 5 "strings" 6 7 "github.com/hashicorp/yamux" 8 ) 9 10 var yamuxStreamClosed = yamux.ErrStreamClosed.Error() 11 var yamuxSessionShutdown = yamux.ErrSessionShutdown.Error() 12 13 // IsErrEOF returns true if we get an EOF error from the socket itself, or 14 // an EOF equivalent error from yamux. 15 func IsErrEOF(err error) bool { 16 if err == io.EOF { 17 return true 18 } 19 20 errStr := err.Error() 21 if strings.Contains(errStr, yamuxStreamClosed) || 22 strings.Contains(errStr, yamuxSessionShutdown) { 23 return true 24 } 25 26 return false 27 }