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"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -671,6 +672,15 @@ func isClosedError(err error) bool {
|
||||||
return false
|
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 ||
|
return err == io.EOF ||
|
||||||
err == io.ErrClosedPipe ||
|
err == io.ErrClosedPipe ||
|
||||||
strings.Contains(err.Error(), "closed") ||
|
strings.Contains(err.Error(), "closed") ||
|
||||||
|
|
Loading…
Reference in New Issue