Merge pull request #19178 from hashicorp/backport/b-websocket-close-messages/eminently-concise-fly
Backport of agent: ignore websocket statuses 1000, 1001 and 1005 correctly into release/1.6.x
This commit is contained in:
commit
2c25d302a7
|
@ -0,0 +1,3 @@
|
|||
```release-note:bug
|
||||
agent: Correct websocket status code handling
|
||||
```
|
|
@ -10,6 +10,7 @@ import (
|
|||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
|
@ -671,6 +672,15 @@ func isClosedError(err error) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// check if the websocket "error" is one of the benign "close" status codes
|
||||
if codedErr, ok := err.(HTTPCodedError); ok {
|
||||
return slices.ContainsFunc([]string{
|
||||
"close 1000", // CLOSE_NORMAL
|
||||
"close 1001", // CLOSE_GOING_AWAY
|
||||
"close 1005", // CLOSED_NO_STATUS
|
||||
}, func(s string) bool { return strings.Contains(codedErr.Error(), s) })
|
||||
}
|
||||
|
||||
return err == io.EOF ||
|
||||
err == io.ErrClosedPipe ||
|
||||
strings.Contains(err.Error(), "closed") ||
|
||||
|
|
Loading…
Reference in New Issue