|
@@ -502,6 +502,8 @@ func (s *containerRouter) wsContainersAttach(ctx context.Context, w http.Respons
|
|
done := make(chan struct{})
|
|
done := make(chan struct{})
|
|
started := make(chan struct{})
|
|
started := make(chan struct{})
|
|
|
|
|
|
|
|
+ version := httputils.VersionFromContext(ctx)
|
|
|
|
+
|
|
setupStreams := func() (io.ReadCloser, io.Writer, io.Writer, error) {
|
|
setupStreams := func() (io.ReadCloser, io.Writer, io.Writer, error) {
|
|
wsChan := make(chan *websocket.Conn)
|
|
wsChan := make(chan *websocket.Conn)
|
|
h := func(conn *websocket.Conn) {
|
|
h := func(conn *websocket.Conn) {
|
|
@@ -516,6 +518,11 @@ func (s *containerRouter) wsContainersAttach(ctx context.Context, w http.Respons
|
|
}()
|
|
}()
|
|
|
|
|
|
conn := <-wsChan
|
|
conn := <-wsChan
|
|
|
|
+ // In case version is higher than 1.26, a binary frame will be sent.
|
|
|
|
+ // See 28176 for details.
|
|
|
|
+ if versions.GreaterThanOrEqualTo(version, "1.26") {
|
|
|
|
+ conn.PayloadType = websocket.BinaryFrame
|
|
|
|
+ }
|
|
return conn, conn, conn, nil
|
|
return conn, conn, conn, nil
|
|
}
|
|
}
|
|
|
|
|